GoogleスプレッドシートのMAKEARRAY関数は、指定したサイズの配列を自由に生成できる便利な関数です。
ランダムデータの生成や表の自動作成、ダミー表の整備など、ちょっとした自動化にも大活躍します。
この記事では、基本的な使い方から、実務で使える事例までわかりやすく解説します。
MAKEARRAY関数とは?
MAKEARRAY
関数は、行数と列数を指定して、各セルに計算された値を入れた配列を生成する関数です。
=MAKEARRAY(行数, 列数, LAMBDA(行番号, 列番号, 計算式))
引数 | 説明 |
---|---|
行数 | 作成する行数(例:5) |
列数 | 作成する列数(例:4) |
LAMBDA | 各セルに入れる値の計算式 |

基本の使い方
1〜9の表を生成する例
=MAKEARRAY(3, 3, LAMBDA(r, c, (r - 1) * 3 + c))
A1セルに入れると以下のように出力されます!

r
は行番号、c
は列番号- 行×列の計算式で、連番や表のパターンを自由に作れます
実務での活用例3選
① シフト表に曜日を自動で並べる
目的: シフト表や週報で、「今週の曜日」を自動で表示したい
=MAKEARRAY(1, 7, LAMBDA(r, c, TEXT(DATE(2025, 6, 1) + c - 1, "ddd")))
以下のように曜日が自動ででてきます。A2セルに関数を入れています。

DATE(2025, 6, 1)
:週の開始日を設定TEXT(..., "ddd")
:曜日(日本語)を表示
応用: DATE
を TODAY()
に変えると、毎週更新される曜日表に!
② 社員の勤怠チェック表の自動作成
目的: 1週間の勤務日・休日日を自動で表示し、勤怠管理の手間を軽減したいときに使えます。
=MAKEARRAY(5, 7, LAMBDA(r, c, IF(MOD(r+c, 3)=0, "休み", "出勤")))
この数式は、5行7列(例えば5人分の1週間の勤務日数)を対象に、行番号(r
)と列番号(c
)の合計を3で割った余りが0の時に「休み」、そうでなければ「出勤」と表示します。
出力結果は以下のような形になります。B3セルに関数を入れています。

どう役立つの?
- 規則的な休暇パターンを自動生成できるので、手動で入力するミスや手間を減らせます。
- 実際の勤務データがない段階でも、仮のスケジュールを作るのに便利です。
- もちろん、この「MOD」部分を別の条件に置き換えれば、シフトパターンや特定の条件に沿った出勤管理表に応用可能です。
実務での応用例
- 予定がまだ決まっていない段階の仮スケジュール作成や研修計画。
- 小規模オフィスやチームの週間勤務予定を作成し、共有資料として使う。
- 出勤・休暇が規則的な現場での勤怠表作成の自動化。
③ テストデータとして金額表を自動生成
目的: 数量や単価の掛け算による「仮の売上金額表」を手軽に作りたいときに便利です。
=MAKEARRAY(5, 4, LAMBDA(r, c, r * c * 100))
この数式は、5行4列の表を作成し、行番号(r
)と列番号(c
)を掛け合わせ、さらに100をかけて数値を生成します。

どう役立つの?
- 架空の売上データやテストデータを簡単に作成でき、システムテストやマクロ検証の際に活用可能。
- 実際の業務データがまだ用意できない段階でも、データ形式や集計方法のテストに使えます。
- 手動でデータを入力する手間を省き、スプレッドシートの動作確認を効率化します。
実務での応用例
- 新システム導入時のデータ連携テスト用の仮データ作成。
- 売上集計関数やグラフの動作確認。
- 社内研修用に用いる架空の販売データ表の作成。
MAKEARRAY関数のメリット・注意点
メリット | 注意点 |
---|---|
自由にサイズ・内容を設計できる | LAMBDAに慣れていないと難しく感じる |
テストデータの作成が一瞬でできる | 配列サイズが大きすぎると処理が重い |
他関数と組み合わせて柔軟に拡張できる | LAMBDAの構文ミスはエラーになる |
よくある質問(FAQ)
Q. 値が「#CALC!」になるのはなぜ?
→ LAMBDA内の式でエラーがある、または計算量が大きすぎる可能性があります。
Q. ランダムなデータも作れますか?
→ はい。RANDBETWEEN()
や RAND()
をLAMBDA内で使えば、乱数表も作れます。
関連記事
まとめ
MAKEARRAY関数は、「表をまるごと自動生成したい」「パターンデータをまとめて作りたい」といった場面にぴったりの強力な関数です。
初心者には少しとっつきづらいかもしれませんが、パターンを覚えておけば、自由自在なデータ操作が可能になります。
ぜひこの記事の関数をそのままコピペして、あなたのスプレッドシートで試してみてください!