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

はじめに

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

MAKEARRAY 関数は LAMBDA 関数で値を設定した配列を作成します。

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

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

連番を作成するには「SEQUENCE 関数」を使用します。
この関数は 365 で使用できます。
  • 目次
    • MAKEARRAY 関数の引数
    • 使い方
    • 解説

MAKEARRAY 関数の引数

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

引数「行数」配列の行数を指定します。スピル化
引数「列数」配列の列数を指定します。スピル化
引数「LAMBDA」LAMBDA 関数を指定します。LAMBDA 関数の第 1 引数に引数「行数」の番号が順番に渡されます。第 2 引数に引数「列数」の番号が順番に渡されます。

スピル化:セルの範囲や配列を指定すると結果が「スピル」します。

結果が最初から配列のため、セルの範囲や配列を指定してもその通りにはスピルされません。

LAMBDA 関数

LAMBDA 関数」の引数は次のようになっています。

LAMBDA(行番号,列番号,計算)

引数「行番号」に MAKEARRAY 関数の引数「行数」が 1 から順番に渡されます。

引数「列番号」に MAKEARRAY 関数の引数「列数」が 1 から順番に渡されます。

引数「計算」の結果が MAKEARRAY 関数が返す配列の要素になります。

使い方

MAKEARRAY 関数の使い方を紹介します。

結果は配列になり複数のセルに表示されます。これはスピルという機能によるものです。詳しくは「スピル、動的配列数式の使い方」をご覧ください。

行と列の番号を作成する

行と列の番号を文字列にして配列を作成します。

=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 からの連番を配列で作成します。「SEQUENCE 関数」を使用しても連番を作成できます。

=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 列の範囲に 1 から 9 のランダムな値を配列で作成します。「RANDBETWEEN 関数」を使用してランダムな値を取得できます。

=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! になります。