ExcelのMAKEARRAY関数の使い方|配列を自由に生成

スポンサーリンク

ExcelのMAKEARRAY関数とは?

MAKEARRAY関数は、指定した行数・列数の配列をゼロから生成する関数です。「メイクアレイ」と読みます。名前の由来は「make(作る)+ array(配列)」です。

最大の特徴は、各セルの値を自分で決められることです。LAMBDA関数の中に計算式を書きます。行番号と列番号に応じた値を自由に設定できます。

MAKEARRAY関数は「LAMBDAヘルパー関数」の1つです。MAP関数REDUCE関数などの仲間がいます。他のヘルパー関数は既存の配列を加工します。一方、MAKEARRAYだけは「ゼロから配列を作る」役割を担います。

対応環境はMicrosoft 365およびExcel 2021です。Excel 2019以前では使用できません。

MAKEARRAY関数の書き方(構文と引数)

基本構文

=MAKEARRAY(rows, cols, LAMBDA(r, c, 計算式))

3つの引数はすべて必須です。

引数の詳細

引数必須説明
rowsはい生成する配列の行数(1以上の整数)
colsはい生成する配列の列数(1以上の整数)
LAMBDA(r, c, 計算式)はい各セルの値を決定する関数

LAMBDA内の仮引数は必ず2つ必要です。1つ目に行番号、2つ目に列番号が渡されます。

行番号(r)・列番号(c)の動き方

行番号・列番号はどちらも1から始まります。たとえば3行2列の配列では、各セルに次のようにrとcが渡されます。

 列1 (c=1)列2 (c=2)
行1r=1, c=1r=1, c=2
行2r=2, c=1r=2, c=2
行3r=3, c=1r=3, c=2

このrとcを計算式の中で使うことで、各セルの値を自由に決められます。

MAKEARRAY関数の基本的な使い方

定数で埋めた配列を作る

最もシンプルな例は、すべて同じ値で埋めた配列です。次の数式で3行4列のゼロ埋め配列を作れます。

=MAKEARRAY(3, 4, LAMBDA(r, c, 0))

rやcを使わず、固定値の0を返しています。テンプレートの初期値を作りたいときに便利です。

九九表(掛け算表)を作る

MAKEARRAY関数の定番パターンが九九表です。行番号と列番号を掛けるだけで完成します。

=MAKEARRAY(9, 9, LAMBDA(r, c, r*c))

r=3, c=7のセルには「3×7=21」が入ります。行番号と列番号の組み合わせで値を決められます。これがMAKEARRAYの強みです。

MAKEARRAY関数の実務活用パターン

パターン1: 連番配列を生成する

行番号と列番号を組み合わせて連番を作れます。3行4列の連番配列は次のとおりです。

=MAKEARRAY(3, 4, LAMBDA(r, c, (r-1)*4+c))

1行目には1〜4、2行目には5〜8が入ります。ただし単純な連番ならSEQUENCE関数のほうがシンプルです。

パターン2: 条件付き配列を作る(IF組み合わせ)

IF関数と組み合わせれば、条件で値を変えられます。たとえば5×5の単位行列は次の数式で生成できます。

=MAKEARRAY(5, 5, LAMBDA(r, c, IF(r=c, 1, 0)))

対角線上(行番号=列番号)のセルだけが1になります。それ以外は0です。

パターン3: ランダムデータを生成する

RANDBETWEEN関数と組み合わせると、テストデータを一括で作れます。

=MAKEARRAY(10, 5, LAMBDA(r, c, RANDBETWEEN(1, 100)))

10行5列のランダムな整数が生成されます。ダミーデータが必要なときに重宝します。

SEQUENCE関数との違い・使い分け

MAKEARRAY関数とSEQUENCE関数は、どちらも配列を生成します。ただし得意分野が異なります。

比較項目MAKEARRAYSEQUENCE
生成方法LAMBDAで自由計算等差数列(開始値+ステップ)
柔軟性各セルで異なる計算が可能規則的な連番のみ
LAMBDA必須不要
構文の複雑さやや複雑シンプル
典型用途九九表・単位行列・条件付き配列連番・通し番号・日付連番

使い分けの目安はシンプルです。等差数列(1,2,3…など)ならSEQUENCEを選びます。位置に応じた自由な計算が必要ならMAKEARRAYの出番です。

LAMBDAヘルパー関数の比較表

MAKEARRAY関数を含む6つのLAMBDAヘルパー関数の全体像です。

関数入力処理出力
MAP既存配列各要素にLAMBDA適用同サイズ配列
REDUCE既存配列累積処理単一値
SCAN既存配列累積処理(途中結果)同サイズ配列
BYROW既存配列行ごとにLAMBDA列ベクトル
BYCOL既存配列列ごとにLAMBDA行ベクトル
MAKEARRAYなし(行数×列数指定)行番号・列番号から計算新規配列

他の5つは既存の配列を変換・集計する関数です。MAKEARRAYだけが「配列を新しく生み出す」役割を持っています。

よくあるエラーと対処法

#NAME?エラー

Excel 2019以前で使用すると発生します。MAKEARRAY関数はMicrosoft 365またはExcel 2021が必要です。関数名のスペルミスでも発生するので確認しましょう。

#VALUE!エラー

次のケースで発生します。

  • rows/colsに0以下の値や小数を指定した
  • LAMBDAの仮引数が2個になっていない

行数・列数は1以上の整数を指定してください。LAMBDAの仮引数は必ず2つにしましょう。

#CALC!エラー

配列が大きすぎてメモリ不足になると発生します。行数・列数を小さくして対処してください。

まとめ

MAKEARRAY関数は、行数・列数とLAMBDAを指定して配列を自由に生成できる関数です。

ポイントを整理します。

  • 構文は =MAKEARRAY(rows, cols, LAMBDA(r, c, 計算式))
  • 行番号(r)と列番号(c)は1から始まる
  • 等差数列ならSEQUENCE、自由な計算が必要ならMAKEARRAY
  • 対応環境はMicrosoft 365およびExcel 2021

まずは九九表の例から試してみてください。慣れてきたら、条件付き配列やランダムデータ生成にも挑戦してみましょう。

関連記事:

タイトルとURLをコピーしました