STEP 1 入門編

5.配列数式

Excelでは、セルに数式を入力し、普通にEnterを押す代わりに、CtrlキーとShiftキーを押しながらEnterキーを押すことで、「配列数式」として確定することができます。
配列数式は式全体が「{ }」で囲まれますが、この「{ }」をキーボードから入力しても配列数式とは見なされません。

配列数式には2つの機能があります。
1つは、1つの数式の結果を複数のセルに表示させる機能。もう1つは、数式内のセル範囲を配列と見なす機能です。

前者の「1つの数式の結果を複数のセルに表示させる機能」というのは、ある数式の計算結果が配列で、複数の値が含まれている場合、連続するセル範囲を利用して、その結果をすべて表示させるものです。
たとえば配列定数のところで例として挙げた「={2,3,"a";4,5,"b"}」は、2行×3列のセル範囲を選択し、この数式を入力してCtrl+Shift+Enterすることによって、6つのデータをすべて表示させることができます。

同様に、配列の計算の例として挙げた「={1,2;3,4;5,6}+{2,3;4,5;6,7}」についても、3行×2列のセル範囲を選択してCtrl+Shift+Enterすれば、すべての計算結果が表示されます。

なお、複数のセルに対して設定された配列数式の場合、その一部だけを編集・削除することはできず、必ずセル範囲全体に対して操作を行う必要があります。

一方、後者の「数式内のセル範囲を配列と見なす機能」というのは、たとえば「=COUNTIF(A1:A10,C1)」の「C1」のように本来単一のデータだけを指定する部分で、「=COUNTIF(A1:A10,C1:C3)」のようにセル範囲を指定して、C1:C3の各セルをそれぞれ単一で指定した場合に求められる計算の結果を、1列×3行の配列として取得するものです。
これについても、やはり1列×3行のセル範囲を選択してCtrl+Shift+Enterすれば、そのすべての答えが表示されます。

複数の答えをすべて表示させるのではなく、「配列を処理できる関数」を利用すれば、最終的に1つの答えを求めることも可能です。
「配列を処理できる関数」については、詳しくは後で説明しますが、身近な例ではSUMがそうです。先に挙げたCOUNTIF関数の例の場合、全体をSUM関数で囲むことで、求められた配列の合計が求められます。
すなわち、A1:A10のセル範囲の中で、C1、C2、C3のいずれかと同じ文字が入力されているセルの数が求められるわけです。

=SUM(COUNTIF(A1:A10,C1:C3))

この数式をCtrl+Shift+Enterではなく普通にEnterした場合、C1:C3が配列と見なされないため、意図通りに計算が行われません。
この場合は計算結果が「0」になってしまいますが、使用する関数や、数式を入力する位置によっては、エラー値になることもあります。
また、この例で、COUNTIF関数の第一引数の「A1:A10」もセル範囲ですが、この部分のようにもともとセル範囲を対象とする引数は、配列とは見なされません。

なお、配列の計算のところで紹介した「={1,2;3,4;5,6}*{2,3;4,5}」のように答えに#N/Aを含む配列の場合、SUMで囲むとその答えも#N/Aになってしまいます。
個人的には、ここはエラー値を無視して合計を出してほしいところなのですが、ヘルプの解説とは異なり、SUMはそのような仕様にはなっていないようです。

配列数式の具体的な応用例についても、STEP 2でいくつか紹介していくことにします。

<4.配列の計算    6.配列を扱える関数>