この関数は、LAMBDA 関数を適用して計算された値を含む、指定したディメンションの配列を返します。
使用例
MAKEARRAY(2, 3, LAMBDA(行番号, 列番号, 行番号+列番号))
MAKEARRAY(2, 3, LAMBDA(行番号, 列番号, 行番号*列番号))
構文
MAKEARRAY(行数, 列数, LAMBDA)
行数
: 返す行数。列数
: 返す列数。LAMBDA
: 配列を作成するために適用するLAMBDA
関数。- 構文:
LAMBDA(名前 1, 名前 2, 数式)
- LAMBDA 関数についてのページをご覧ください。
- 要件:
- この
LAMBDA
関数には、2 個の名前
引数と、それらの名前
引数を使用する数式
を指定する必要があります。LAMBDA
関数を適用するときに、名前 1
は現在の行番号
に、名前 2
は現在の列番号
にそれぞれ解決されます。
- この
- 構文:
備考
-
渡された
LAMBDA
関数は、2 個の名前
引数を受け入れる必要があります。そうでない場合、#N/A
エラーが返されます。これらの引数は、行番号
と列番号
に、この順序で対応しています。引数について次に説明します。名前 1
: 値が作成される現在の行番号
に解決されます。名前 2
: 値が作成される現在の列番号
に解決されます。
- インデックスに適用する
LAMBDA
関数によって作成される値はすべて、単一の値である必要があります。作成された値の配列の結果は返されません。 行番号
と列番号
は 1 から開始します。名前付き関数
はLAMBDA
関数のパラメータとして渡すことができ、この場合はLAMBDA
関数と同様に動作します。詳しくは、名前付き関数についてのページをご覧ください。名前付き関数
は、MAKEARRAY
関数のLAMBDA
構文に従っているとともに、2 個の引数プレースホルダが定義されている必要があります。名前付き関数
の後に丸かっこを続けることはできません。
例
行インデックス × 列インデックスをセル値として 2 行 × 3 列の配列を返す
例: =MAKEARRAY(2, 3, LAMBDA(行番号, 列番号, 行番号*列番号))
結果:
1 |
2 |
3 |
2 |
4 |
6 |
1~100 の乱数を使用して 2 行 × 3 列の配列を返す
例: =MAKEARRAY(2, 3, LAMBDA(行番号, 列番号, RANDBETWEEN(1,100)))
結果:
53 |
70 |
38 |
6 |
47 |
78 |
この例の関数は、セルごとに 1~100 の数値を含む、ランダムな 2 行 × 3 列の配列を作成します。
名前付き関数を LAMBDA 関数として使用して、4 行 × 4 列の配列を返す
名前付き関数
を LAMBDA
関数として使用して、ウォーターフォール形式のデータを含む 4 行 × 4 列の配列を返します。開始値を行 1 の 100 とすると、追加の行の値は直前の行の値 +1 と等しくなります。
名前付き関数: WATERFALL
が名前付き関数
であり、セルの行番号
が列番号
以下の場合に 100 + 行番号
- 1 の値を出力します。それ以外の場合は、セルを空白のままにします。
数式の定義: =if(行番号<=列番号, 100+行番号-1, "")
。ここで、行番号
と列番号
は WATERFALL
について定義された引数プレースホルダです。
例: =MAKEARRAY(4,4,WATERFALL)
結果:
100 |
100 |
100 |
100 |
101 |
101 |
101 |
|
102 |
102 |
||
103 |
名前付き関数を LAMBDA 関数として使用して、従業員数を求める
名前付き関数
を LAMBDA
関数として使用して、特定の年の、特定の四半期に入社した従業員の数を求めます。
サンプルデータ:
A |
B |
C |
D |
E |
F |
G |
H |
|
---|---|---|---|---|---|---|---|---|
1 |
2020 |
城田,阿部,佐藤,百田,林,木村,真下,坂田 |
Q1 |
Q2 |
Q3 |
Q4 |
||
2 |
2021 |
内藤,武井,新井,渡辺,角田,加藤,木田 |
2020 |
|||||
3 |
2021 |
|||||||
4 |
||||||||
5 |
Q1 |
城田,阿部,内藤,武井 |
||||||
6 |
Q2 |
佐藤,百田,林,新井 |
||||||
7 |
Q3 |
木村,渡辺,角田,加藤 |
||||||
8 |
Q4 |
真下,坂田,木田 |
配列 A1:B2
には、特定の年に入社した従業員が示されます。配列 A5:B8
には、特定の四半期に入社した従業員が示されます。配列 E2:H3
には、特定の年と四半期に入社した従業員の数を入力する必要があります。
名前付き関数: FIND_COMMON_EMPLOYEES_COUNT
が名前付き関数
であり、四半期の番号と年のインデックスに基づいて一般従業員の数を返します。
数式の定義: =COUNT(ARRAYFORMULA(MATCH(SPLIT(INDEX(Sheet1!$B$5:$B$8, 四半期番号),","), SPLIT(INDEX(Sheet1!$B$1:$B$2, 年インデックス), ","), 0)))
。ここで、年インデックス
と四半期番号
は、この順序で FIND_COMMON_EMPLOYEES_COUNT
について定義された引数プレースホルダです。
例: この式を E2
に入力する: =MAKEARRAY(2, 4, FIND_COMMON_EMPLOYEES_COUNT)
結果:
A |
B |
C |
D |
E |
F |
G |
H |
|
---|---|---|---|---|---|---|---|---|
1 |
2020 |
城田,阿部,佐藤,百田,林,木村,真下,坂田 |
Q1 |
Q2 |
Q3 |
Q4 |
||
2 |
2021 |
内藤,武井,新井,渡辺,角田,加藤,木田 |
2020 |
2 |
3 |
1 |
2 |
|
3 |
2021 |
2 |
1 |
3 |
1 |
|||
4 |
||||||||
5 |
Q1 |
城田,阿部,内藤,武井 |
||||||
6 |
Q2 |
佐藤,百田,林,新井 |
||||||
7 |
Q3 |
木村,渡辺,角田,加藤 |
||||||
8 |
Q4 |
真下,坂田,木田 |
一般的なエラー
渡された LAMBDA 関数の名前引数の個数が 2 個ではないLAMBDA
関数の名前
引数の個数が 2 個でない場合、次のエラーが発生します。
「LAMBDA の引数の個数が間違っています。3 個の引数を指定する必要がありますが、2 個を指定しています。」
例: =MAKEARRAY(2, 3, LAMBDA(現在の値, 現在の値+1))
この例では、LAMBDA
関数に必要な名前
引数が 2 個であるにもかかわらず、1 個しか指定されていません。
MAKEARRAY
関数の最後のパラメータが LAMBDA
関数でなかった場合、次のエラーが発生します。
「引数は LAMBDA 関数にする必要があります。」
例: =MAKEARRAY(2, 3, 3)
MAKEARRAY
関数に渡された LAMBDA
関数の名前
引数に誤りがあると、次のエラーが発生します。
「関数 LAMBDA の引数 1 は有効な名前ではありません。」
例: =MAKEARRAY(2,3, LAMBDA(C1, 値, C1*値))
この例では、C1 は範囲と競合するため、無効な名前
引数です。
行と列に LAMBDA
関数を適用して複数の値が作成される場合、次のエラーが発生します。
「単一の値が返されます。ネストされた配列の結果は返されません。」
例: =MAKEARRAY(2,3, LAMBDA(i, j, {i, j} ))
行番号
と列番号
に LAMBDA
関数を適用するときは常に、単一の値のみ作成される必要があり、別の配列であってはいけません。