Excelの比較的新しいバージョンでは、データ処理がより効率的に行える動的配列機能が使用できます。
この機能を使うと、一つの数式から自動的に複数のセルに結果を展開させることができ、従来よりも簡単に複雑な計算やデータ処理が可能になります。
1つのセルに入力された数式が、自動的に複数のセルに結果を広げる動作を「スピル」と呼びます。
今回は、中でも便利な動的配列関数いくつかご紹介します。
FILTER関数
概要
FILTER関数は、特定の条件に一致するデータを抽出するために使用します。従来の「フィルタ機能」や「IF関数」による複雑な条件設定を使うよりも、シンプルで効率的です。
構文
=FILTER(配列, 条件[, 空の場合の値])
例
「=FILTER(A1, B1=”完了”)」と入力すると、列Bで「完了」となっている行の列Aの値が抽出され、複数のセルにスピルされます。
Filter関数については、以下の記事で詳しく紹介しています。
UNIQUE関数
概要
UNIQUE関数は、範囲内の重複を取り除いて、ユニークな値だけをリストアップします。
これまでのVBAや手動でのフィルタリングが必要だった重複削除を、ワンクリックで実現します。
構文
=UNIQUE(配列[, 行または列[, 完全一意]])
例
「=UNIQUE(A1:A10)」を使うと、A1:A10内の重複を自動的に除去し、ユニークな値だけがスピルされます。
SEQUENCE関数
概要
SEQUENCE関数は、連続する数値の配列を生成します。
指定した行数や列数に従って、自動的に数値が配置されるため、リスト作成や順序付けが簡単に行えます。
構文
=SEQUENCE(行数, 列数[, 開始値[, 増分]])
例
「=SEQUENCE(10, 1)」と入力すると、1から10までの数字が縦に並んでスピルされます。
開始と増分のデフォルトは、1です。
SORT関数
概要
SORT関数は、指定した範囲を昇順や降順に並び替えます。これにより、データの並び替えが動的に行われ、数式を使ってリアルタイムに結果を更新できます。
構文
=SORT(配列, 並べ替えの基準[, 昇順/降順[, 並べ替え基準の列]])
例
「=SORT(A1:A3, 1, TRUE)」で、A1:A3のデータを昇順に並び替えた結果がスピルされます。
SORTBY関数
概要
SORTBY関数は、並び替えの基準となる列や範囲を別途指定して、配列を並び替えることができます。
これにより、複数の列にまたがるデータのカスタムソートが可能です。
構文
=SORTBY(配列, 並べ替えの基準1, 並べ替えの順序1[, 並べ替えの基準2, 並べ替えの順序2, ...])
例
「=SORTBY(A1:B3, B1:B3, 1)」で、列Bに基づいて、A1:B3の表を並び替えられます。
RANDARRAY関数
概要
RANDARRAY関数は、指定した範囲にランダムな数値を生成します。
従来のRAND関数と違い、複数のセルに同時にランダムな数値をスピルさせることができます。
構文
=RANDARRAY(行数, 列数[, 最小値[, 最大値[, 整数]]])
例
「=RANDARRAY(5, 2, 1, 100, TRUE)」と入力すると、1から100までのランダムな整数を5行2列にスピルします。
TRANSPOSE関数
概要
TRANSPOSE関数は、行と列を入れ替えるために使用します。
従来のコピー&ペーストではなく、動的にデータの形を変えることができるので、元データが変更されても自動で結果が更新されます。
構文
=TRANSPOSE(配列)
例
「=TRANSPOSE(A1:B2)」で、2行2列の範囲が入れ替わり、2列2行としてスピルされます。
まとめ
これらの関数を活用することで、Excelのデータ処理を効率化できます。特に「スピル」機能を使って、リアルタイムで複数のセルにデータを自動反映させることで、より柔軟なレポート作成や分析が可能です。