エクセル MAKEARRAY 関数:指定した行と列の配列を作成し LAMBDA で値を設定する

はじめに

エクセルの MAKEARRAY 関数の使い方を紹介します。

MAKEARRAY 関数は指定した行と列のサイズの配列を作成し LAMBDA 関数で値を設定します。

=MAKEARRAY(3,3,LAMBDA(row,col,(row-1)*3+col)) のようにして、連番を作成できます。

連番や文字列など好きなように配列を初期化できます。

連続した値の配列を作成するには「SEQUENCE 関数」をご覧ください。
この関数は 365 で使用できます。
  • 目次
    • MAKEARRAY 関数
    • 使用例
    • 解説

MAKEARRAY 関数

MAKEARRAY(行数, 列数, LAMBDA)
行数列数の範囲にLAMBDAで計算した値の配列を返します。

引数「行数」配列の行数を指定します。
引数「列数」配列の列数を指定します。
引数「LAMBDA」LAMBDA 関数を指定します。LAMBDA 関数の第 1 引数に引数「行数」のインデックスが順番に渡されます。第 2 引数に引数「列数」のインデックスが順番に渡されます。

使用例

行と列のインデックスを作成する

行と列のインデックスを文字列にして配列を作成します。

=MAKEARRAY(2,3,LAMBDA(row,col,"行"&row&",列"&col))

引数「LAMBDA」の第 1 引数と第 2 引数に引数「行数」と「列数」のインデックスを順番に渡します。引数「LAMBDA」の結果が配列の要素になります。次のように処理されます。

"行"&1&",列"&1
"行"&1&",列"&2
"行"&1&",列"&3
"行"&2&",列"&1
"行"&2&",列"&2
"行"&2&",列"&3
1

連番を作成する

3 行 3 列の範囲に 1 からの連番を配列で作成します。

=MAKEARRAY(3,3,LAMBDA(row,col,(row-1)*3+col))

引数「LAMBDA」は次のように処理されます。

(1-1)*3+1
(1-1)*3+2
(1-1)*3+3
(2-1)*3+1
(2-1)*3+2
(2-1)*3+3
2

ランダムな値を作成する

3 行 3 列の範囲に「RANDBETWEEN 関数」を使用して 1 から 9 のランダムな値を配列で作成します。

=MAKEARRAY(3,3,LAMBDA(row,col,RANDBETWEEN(1,9)))
3

干支を作成する

行のインデックスに「CHOOSE 関数」を使用して対応した干支を配列で作成します。

=MAKEARRAY(5,1,LAMBDA(row,col,CHOOSE(row,"子","丑","寅","卯","辰")))

引数「LAMBDA」は次のように処理されます。

CHOOSE(1,"子","丑","寅","卯","辰")))
CHOOSE(2,"子","丑","寅","卯","辰")))
CHOOSE(3,"子","丑","寅","卯","辰")))
CHOOSE(4,"子","丑","寅","卯","辰")))
CHOOSE(5,"子","丑","寅","卯","辰")))
4

解説

引数「行数」と「列数」には 1 以上の整数を指定します。

引数「行数」または「列数」に 0 以下や文字列などを指定したときはエラー #VALUE! になります。

引数「LAMBDA」の第 1 引数に引数「行数」のインデックスが 1, 2, 3 … のように順番に渡されます。

引数「LAMBDA」の第 2 引数に引数「列数」のインデックスが 1, 2, 3 … のように順番に渡されます。

引数「LAMBDA」で計算した結果が、結果として返す配列の要素になります。

引数「LAMBDA」の引数の数が 2 つないときはエラー #VALUE! になります。

引数「LAMBDA」に「LAMBDA 関数」を指定していないときはエラー #VALUE! になります。