STEP 1 入門編

7.配列を返す関数

配列数式のところで説明した「=COUNTIF(A1:A10,C1:C3)」の例のように、基本的に単一の値だけを扱う引数に配列を指定すると、その戻り値も配列になります。
この場合、配列のサイズ(行数×列数)は、引数に指定された配列と同じです。
単一の引数を2つ以上とる関数で、そのどちらも配列にできる場合もありますが、この場合の戻り値の配列の内容とサイズは、配列の計算で説明した演算の方式と同じになります。
たとえば次の例は、TIME関数の「時」に「1,2」という1行×2列の配列を、「分」に「3;4;5」という3行×1列の配列を指定した数式です(表示形式は時刻形式にしています)。

=TIME({1,2},{3;4;5},0)

このような指定の仕方が可能かどうか、またその場合の結果がどうなるかは、関数によっても異なります。よくわからないときは、実際に試してみてください。

一方、このように「引数が配列だから配列を返す」のではなく、最初から配列を返すことを前提としている関数もあります。
具体的には、FREQUENCYTRANSPOSELINESTLOGESTといった関数です。
これらの関数についての詳細は、Excelのヘルプを参照してください。

これらの関数で得られた戻り値をすべて表示させたい場合は、戻り値の配列のサイズを想定してセル範囲を選択し、Ctrl+Shift+Enterで配列数式として入力します。
次の例は、引数に指定したセル範囲の行と列を反転するTRANSPOSE関数の戻り値を、配列数式として選択範囲に表示させたものです。

また、その戻り値の配列をSUMやMAXといった関数の引数として、さらに計算を行うこともできます。
次の例では、指定した区間ごとの頻度分布を求めるFREQUENCY関数の戻り値の配列から、最も多く分布している区間の値を、MAX関数で求めています。

戻り値の配列から任意の位置にある値を取り出したい場合は、INDEX関数を利用するとよいでしょう。
たとえば、LOGEST関数では、係数や標準誤差、決定係数といった戻り値を2次元配列の形で返します。次の例は、この配列の3行目×1列目の位置にある決定係数の値を取り出す数式です。

<6.配列を扱える関数    STEP 2 応用編>>