<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>MAKEARRAY関数 &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/makearray%E9%96%A2%E6%95%B0/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Sun, 12 Apr 2026 15:36:49 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://mashukabu.com/wp-content/uploads/2022/04/cropped-site-icon-32x32.png</url>
	<title>MAKEARRAY関数 &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>ExcelのMAKEARRAY関数の使い方｜配列を自由に生成</title>
		<link>https://mashukabu.com/excel-function-howto-use-makearray/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-makearray/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sun, 12 Apr 2026 15:36:49 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[LAMBDA]]></category>
		<category><![CDATA[MAKEARRAY関数]]></category>
		<category><![CDATA[Microsoft 365]]></category>
		<category><![CDATA[配列]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=5916</guid>

					<description><![CDATA[ExcelのMAKEARRAY関数の使い方を中級者向けに解説。構文・引数の意味から九九表や連番配列などの実務パターン、SEQUENCE関数との違い・使い分け、LAMBDAヘルパー関数の比較表まで紹介します。Microsoft 365対応。]]></description>
										<content:encoded><![CDATA[

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-1" checked><label class="toc-title" for="toc-checkbox-1">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ExcelのMAKEARRAY関数とは？</a></li><li><a href="#toc2" tabindex="0">MAKEARRAY関数の書き方（構文と引数）</a><ol><li><a href="#toc3" tabindex="0">基本構文</a></li><li><a href="#toc4" tabindex="0">引数の詳細</a></li><li><a href="#toc5" tabindex="0">行番号(r)・列番号(c)の動き方</a></li></ol></li><li><a href="#toc6" tabindex="0">MAKEARRAY関数の基本的な使い方</a><ol><li><a href="#toc7" tabindex="0">定数で埋めた配列を作る</a></li><li><a href="#toc8" tabindex="0">九九表（掛け算表）を作る</a></li></ol></li><li><a href="#toc9" tabindex="0">MAKEARRAY関数の実務活用パターン</a><ol><li><a href="#toc10" tabindex="0">パターン1: 連番配列を生成する</a></li><li><a href="#toc11" tabindex="0">パターン2: 条件付き配列を作る（IF組み合わせ）</a></li><li><a href="#toc12" tabindex="0">パターン3: ランダムデータを生成する</a></li></ol></li><li><a href="#toc13" tabindex="0">SEQUENCE関数との違い・使い分け</a></li><li><a href="#toc14" tabindex="0">LAMBDAヘルパー関数の比較表</a></li><li><a href="#toc15" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc16" tabindex="0">#NAME?エラー</a></li><li><a href="#toc17" tabindex="0">#VALUE!エラー</a></li><li><a href="#toc18" tabindex="0">#CALC!エラー</a></li></ol></li><li><a href="#toc19" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ExcelのMAKEARRAY関数とは？</span></h2>



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



<p>最大の特徴は、各セルの値を自分で決められることです。<a href="https://mashukabu.com/excel-function-howto-use-lambda/">LAMBDA関数</a>の中に計算式を書きます。行番号と列番号に応じた値を自由に設定できます。</p>



<p>MAKEARRAY関数は「LAMBDAヘルパー関数」の1つです。<a href="https://mashukabu.com/excel-function-howto-use-map/">MAP関数</a>や<a href="https://mashukabu.com/excel-function-howto-use-reduce/">REDUCE関数</a>などの仲間がいます。他のヘルパー関数は既存の配列を加工します。一方、MAKEARRAYだけは「ゼロから配列を作る」役割を担います。</p>



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



<h2 class="wp-block-heading"><span id="toc2">MAKEARRAY関数の書き方（構文と引数）</span></h2>



<h3 class="wp-block-heading"><span id="toc3">基本構文</span></h3>



<pre class="wp-block-code"><code>=MAKEARRAY(rows, cols, LAMBDA(r, c, 計算式))</code></pre>



<p>3つの引数はすべて必須です。</p>



<h3 class="wp-block-heading"><span id="toc4">引数の詳細</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須</th><th>説明</th></tr></thead><tbody><tr><td>rows</td><td>はい</td><td>生成する配列の行数（1以上の整数）</td></tr><tr><td>cols</td><td>はい</td><td>生成する配列の列数（1以上の整数）</td></tr><tr><td>LAMBDA(r, c, 計算式)</td><td>はい</td><td>各セルの値を決定する関数</td></tr></tbody></table></figure>



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



<h3 class="wp-block-heading"><span id="toc5">行番号(r)・列番号(c)の動き方</span></h3>



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



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>列1 (c=1)</th><th>列2 (c=2)</th></tr></thead><tbody><tr><td>行1</td><td>r=1, c=1</td><td>r=1, c=2</td></tr><tr><td>行2</td><td>r=2, c=1</td><td>r=2, c=2</td></tr><tr><td>行3</td><td>r=3, c=1</td><td>r=3, c=2</td></tr></tbody></table></figure>



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



<h2 class="wp-block-heading"><span id="toc6">MAKEARRAY関数の基本的な使い方</span></h2>



<h3 class="wp-block-heading"><span id="toc7">定数で埋めた配列を作る</span></h3>



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



<pre class="wp-block-code"><code>=MAKEARRAY(3, 4, LAMBDA(r, c, 0))</code></pre>



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



<h3 class="wp-block-heading"><span id="toc8">九九表（掛け算表）を作る</span></h3>



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



<pre class="wp-block-code"><code>=MAKEARRAY(9, 9, LAMBDA(r, c, r*c))</code></pre>



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



<h2 class="wp-block-heading"><span id="toc9">MAKEARRAY関数の実務活用パターン</span></h2>



<h3 class="wp-block-heading"><span id="toc10">パターン1: 連番配列を生成する</span></h3>



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



<pre class="wp-block-code"><code>=MAKEARRAY(3, 4, LAMBDA(r, c, (r-1)*4+c))</code></pre>



<p>1行目には1〜4、2行目には5〜8が入ります。ただし単純な連番なら<a href="https://mashukabu.com/excel-function-howto-use-sequence/">SEQUENCE関数</a>のほうがシンプルです。</p>



<h3 class="wp-block-heading"><span id="toc11">パターン2: 条件付き配列を作る（IF組み合わせ）</span></h3>



<p><a href="https://mashukabu.com/excel-function-howto-use-if/">IF関数</a>と組み合わせれば、条件で値を変えられます。たとえば5×5の単位行列は次の数式で生成できます。</p>



<pre class="wp-block-code"><code>=MAKEARRAY(5, 5, LAMBDA(r, c, IF(r=c, 1, 0)))</code></pre>



<p>対角線上（行番号＝列番号）のセルだけが1になります。それ以外は0です。</p>



<h3 class="wp-block-heading"><span id="toc12">パターン3: ランダムデータを生成する</span></h3>



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



<pre class="wp-block-code"><code>=MAKEARRAY(10, 5, LAMBDA(r, c, RANDBETWEEN(1, 100)))</code></pre>



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



<h2 class="wp-block-heading"><span id="toc13">SEQUENCE関数との違い・使い分け</span></h2>



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



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>MAKEARRAY</th><th>SEQUENCE</th></tr></thead><tbody><tr><td>生成方法</td><td>LAMBDAで自由計算</td><td>等差数列（開始値+ステップ）</td></tr><tr><td>柔軟性</td><td>各セルで異なる計算が可能</td><td>規則的な連番のみ</td></tr><tr><td>LAMBDA</td><td>必須</td><td>不要</td></tr><tr><td>構文の複雑さ</td><td>やや複雑</td><td>シンプル</td></tr><tr><td>典型用途</td><td>九九表・単位行列・条件付き配列</td><td>連番・通し番号・日付連番</td></tr></tbody></table></figure>



<p><strong>使い分けの目安</strong>はシンプルです。等差数列（1,2,3&#8230;など）ならSEQUENCEを選びます。位置に応じた自由な計算が必要ならMAKEARRAYの出番です。</p>



<h2 class="wp-block-heading"><span id="toc14">LAMBDAヘルパー関数の比較表</span></h2>



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



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>入力</th><th>処理</th><th>出力</th></tr></thead><tbody><tr><td>MAP</td><td>既存配列</td><td>各要素にLAMBDA適用</td><td>同サイズ配列</td></tr><tr><td>REDUCE</td><td>既存配列</td><td>累積処理</td><td>単一値</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-scan/">SCAN</a></td><td>既存配列</td><td>累積処理（途中結果）</td><td>同サイズ配列</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-byrow/">BYROW</a></td><td>既存配列</td><td>行ごとにLAMBDA</td><td>列ベクトル</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-bycol/">BYCOL</a></td><td>既存配列</td><td>列ごとにLAMBDA</td><td>行ベクトル</td></tr><tr><td>MAKEARRAY</td><td>なし（行数×列数指定）</td><td>行番号・列番号から計算</td><td>新規配列</td></tr></tbody></table></figure>



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



<h2 class="wp-block-heading"><span id="toc15">よくあるエラーと対処法</span></h2>



<h3 class="wp-block-heading"><span id="toc16">#NAME?エラー</span></h3>



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



<h3 class="wp-block-heading"><span id="toc17">#VALUE!エラー</span></h3>



<p>次のケースで発生します。</p>



<ul class="wp-block-list"><li>rows/colsに0以下の値や小数を指定した</li><li>LAMBDAの仮引数が2個になっていない</li></ul>



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



<h3 class="wp-block-heading"><span id="toc18">#CALC!エラー</span></h3>



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



<h2 class="wp-block-heading"><span id="toc19">まとめ</span></h2>



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



<p>ポイントを整理します。</p>



<ul class="wp-block-list"><li>構文は <code>=MAKEARRAY(rows, cols, LAMBDA(r, c, 計算式))</code></li><li>行番号(r)と列番号(c)は1から始まる</li><li>等差数列ならSEQUENCE、自由な計算が必要ならMAKEARRAY</li><li>対応環境はMicrosoft 365およびExcel 2021</li></ul>



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



<p><strong>関連記事</strong>:</p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-lambda/">LAMBDA関数の使い方｜カスタム関数を自作する方法</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-sequence/">SEQUENCE関数の使い方｜連番・日付・2次元配列を1関数で</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-map/">MAP関数の使い方｜BYROWとの違いと使い分け</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-reduce/">REDUCE関数の使い方｜配列を1つの値に集約する方法</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-scan/">SCAN関数の使い方｜REDUCEとの違いと累計・残高推移への活用法</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-byrow/">BYROW関数の使い方｜行ごとに関数を適用</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-bycol/">BYCOL関数の使い方｜列ごとに関数適用</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-makearray/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのMAKEARRAY関数の使い方｜計算で配列を自在に生成</title>
		<link>https://mashukabu.com/spreadsheet-makearray-function/</link>
					<comments>https://mashukabu.com/spreadsheet-makearray-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 21 Mar 2026 11:32:45 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[LAMBDA系関数]]></category>
		<category><![CDATA[LAMBDA関数]]></category>
		<category><![CDATA[MAKEARRAY関数]]></category>
		<category><![CDATA[SEQUENCE関数]]></category>
		<category><![CDATA[配列生成]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4813</guid>

					<description><![CDATA[スプレッドシートのMAKEARRAY関数で行×列の計算配列を生成する方法を解説。九九表や距離行列の作成例、SEQUENCE関数との違い、LAMBDA系関数の使い分けまでわかりやすく紹介します。]]></description>
										<content:encoded><![CDATA[
<p>「行と列の位置に応じて、計算した値で配列を作りたい」。スプレッドシートで表を作っていると、こんな場面に出くわすことがあります。</p>



<p>九九表やランダムデータの生成、距離行列の作成など、「行×列の計算結果で埋めた表」を手作業で作るのはかなりの手間です。</p>



<p>MAKEARRAY関数を使えば、行数と列数を指定して、各セルの値をLAMBDA関数で自由に計算できます。この記事では、基本から実務活用パターン、SEQUENCE関数との違いまでわかりやすく解説します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">MAKEARRAY関数とは？</a><ol><li><a href="#toc2" tabindex="0">MAKEARRAY関数の基本構文</a></li><li><a href="#toc3" tabindex="0">LAMBDA関数のおさらい</a></li></ol></li><li><a href="#toc4" tabindex="0">MAKEARRAY関数の基本的な使い方</a><ol><li><a href="#toc5" tabindex="0">九九表を作る</a></li><li><a href="#toc6" tabindex="0">固定値で埋めた配列を作る</a></li><li><a href="#toc7" tabindex="0">行番号・列番号を使った計算で配列を作る</a></li></ol></li><li><a href="#toc8" tabindex="0">MAKEARRAY関数の実務活用パターン</a><ol><li><a href="#toc9" tabindex="0">パターン1: 対角線だけ1の単位行列を作る</a></li><li><a href="#toc10" tabindex="0">パターン2: ランダムなテストデータを生成する</a></li><li><a href="#toc11" tabindex="0">パターン3: 上三角行列を作る</a></li><li><a href="#toc12" tabindex="0">パターン4: セルの値を参照して動的なサイズの配列を作る</a></li><li><a href="#toc13" tabindex="0">パターン5: 連番に名前付きのラベルを付ける</a></li></ol></li><li><a href="#toc14" tabindex="0">SEQUENCE関数との違い・使い分け</a><ol><li><a href="#toc15" tabindex="0">SEQUENCE関数で十分なケース</a></li><li><a href="#toc16" tabindex="0">MAKEARRAY関数でないとできないケース</a></li></ol></li><li><a href="#toc17" tabindex="0">LAMBDA系関数の全体像</a></li><li><a href="#toc18" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc19" tabindex="0">まとめ</a><ol><li><a href="#toc20" tabindex="0">この記事で紹介した関数・関連記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">MAKEARRAY関数とは？</span></h2>



<p>MAKEARRAY関数（読み方: メイクアレイ関数）は、指定した行数×列数の<strong>配列をLAMBDA関数の計算結果で生成する</strong>関数です。「make array（配列を作る）」が名前の由来で、ゼロから計算で配列を作り出すイメージですね。</p>



<p>たとえば、3行×3列の九九表を作りたいとき、MAKEARRAY関数で「行番号×列番号」という計算を指定するだけで、9マスすべてが自動で埋まります。セルをひとつずつ入力する必要はありません。</p>



<p>MAKEARRAY関数にできることをまとめると、次のとおりです。</p>



<ul class="wp-block-list"><li>行数×列数を指定して、任意のサイズの配列を一発で生成する</li><li>各セルの値をLAMBDA関数の計算で自由に決められる</li><li>LAMBDAには行番号と列番号が渡されるため、位置に応じた計算が可能</li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>MAKEARRAY関数はGoogleスプレッドシート独自の関数です。Excelには同じ名前の関数がないため、Excelで同様の処理をしたい場合は、SEQUENCE関数やINDEX関数を組み合わせてください。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc2">MAKEARRAY関数の基本構文</span></h3>



<pre class="wp-block-code"><code>=MAKEARRAY(行数, 列数, LAMBDA(行, 列, 処理))</code></pre>



<p>カッコの中に、生成する配列の行数・列数と、各セルに適用するLAMBDA関数を指定します。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>説明</th></tr></thead><tbody><tr><td>行数</td><td>必須</td><td>生成する配列の行数（1以上の整数）</td></tr><tr><td>列数</td><td>必須</td><td>生成する配列の列数（1以上の整数）</td></tr><tr><td>LAMBDA(行, 列, 処理)</td><td>必須</td><td>各セルに適用する関数。「行」は行番号、「列」は列番号を受け取る仮引数</td></tr></tbody></table></figure>



<p>LAMBDA関数の仮引数（上の例では「行」「列」）には好きな名前を付けられます。<code>r</code>と<code>c</code>や<code>row</code>と<code>col</code>でもOKです。この仮引数に行番号（1から始まる）と列番号（1から始まる）が渡されて、処理が実行されます。</p>



<h3 class="wp-block-heading"><span id="toc3">LAMBDA関数のおさらい</span></h3>



<p>MAKEARRAY関数を理解するには、LAMBDA関数の基本を知っておく必要があります。LAMBDA関数については<a href="https://mashukabu.com/spreadsheet-bycol-function/">BYCOL関数の記事</a>で詳しく解説していますので、ここではポイントだけおさらいします。</p>



<p>LAMBDA関数は「自分だけの関数を作れる」関数です。引数と処理内容を自分で定義できます。</p>



<pre class="wp-block-code"><code>=LAMBDA(引数1, 引数2, 処理)(値1, 値2)</code></pre>



<p>たとえば <code>=LAMBDA(x, y, x<em>y)(3, 4)</code> と書くと、xに3、yに4が入って「3</em>4=12」が返ります。MAKEARRAY関数の中では、このLAMBDA関数に行番号と列番号が自動的に渡される仕組みです。</p>



<h2 class="wp-block-heading"><span id="toc4">MAKEARRAY関数の基本的な使い方</span></h2>



<p>ここでは、MAKEARRAY関数でさまざまな配列を生成する基本パターンを紹介します。</p>



<h3 class="wp-block-heading"><span id="toc5">九九表を作る</span></h3>



<p>MAKEARRAY関数のもっともわかりやすい例が九九表です。任意のセル（たとえばA1）に以下の数式を入力します。</p>



<pre class="wp-block-code"><code>=MAKEARRAY(9, 9, LAMBDA(r, c, r*c))</code></pre>



<p>結果が9行×9列に展開されます。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A</th><th>B</th><th>C</th><th>D</th><th>E</th><th>F</th><th>G</th><th>H</th><th>I</th></tr></thead><tbody><tr><td>1</td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td></tr><tr><td>2</td><td>2</td><td>4</td><td>6</td><td>8</td><td>10</td><td>12</td><td>14</td><td>16</td><td>18</td></tr><tr><td>3</td><td>3</td><td>6</td><td>9</td><td>12</td><td>15</td><td>18</td><td>21</td><td>24</td><td>27</td></tr></tbody></table></figure>



<p>1行目×1列目=1、2行目×3列目=6、9行目×9列目=81。行番号と列番号をかけ算しているだけですが、たった1つの数式で九九表が完成しますよ。</p>



<h3 class="wp-block-heading"><span id="toc6">固定値で埋めた配列を作る</span></h3>



<p>すべてのセルを同じ値で埋めた配列を作ることもできます。</p>



<pre class="wp-block-code"><code>=MAKEARRAY(3, 4, LAMBDA(r, c, 0))</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A</th><th>B</th><th>C</th><th>D</th></tr></thead><tbody><tr><td>1</td><td>0</td><td>0</td><td>0</td><td>0</td></tr><tr><td>2</td><td>0</td><td>0</td><td>0</td><td>0</td></tr><tr><td>3</td><td>0</td><td>0</td><td>0</td><td>0</td></tr></tbody></table></figure>



<p>3行×4列のゼロ埋め配列が生成されます。LAMBDAの処理部分で<code>r</code>や<code>c</code>を使わずに固定値を返しているだけですね。テンプレートの雛形を作りたいときに便利です。</p>



<h3 class="wp-block-heading"><span id="toc7">行番号・列番号を使った計算で配列を作る</span></h3>



<p>行番号と列番号を組み合わせれば、位置に応じた計算結果で配列を埋められます。</p>



<pre class="wp-block-code"><code>=MAKEARRAY(3, 3, LAMBDA(r, c, r + c))</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A</th><th>B</th><th>C</th></tr></thead><tbody><tr><td>1</td><td>2</td><td>3</td><td>4</td></tr><tr><td>2</td><td>3</td><td>4</td><td>5</td></tr><tr><td>3</td><td>4</td><td>5</td><td>6</td></tr></tbody></table></figure>



<p>1行1列目は1+1=2、2行3列目は2+3=5です。足し算・引き算・べき乗など、自由に計算式を組み立てられるのがMAKEARRAY関数の強みですね。</p>



<h2 class="wp-block-heading"><span id="toc8">MAKEARRAY関数の実務活用パターン</span></h2>



<h3 class="wp-block-heading"><span id="toc9">パターン1: 対角線だけ1の単位行列を作る</span></h3>



<p>数値分析で使う単位行列（対角成分が1、それ以外が0）をワンステップで作れます。</p>



<pre class="wp-block-code"><code>=MAKEARRAY(4, 4, LAMBDA(r, c, IF(r=c, 1, 0)))</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A</th><th>B</th><th>C</th><th>D</th></tr></thead><tbody><tr><td>1</td><td>1</td><td>0</td><td>0</td><td>0</td></tr><tr><td>2</td><td>0</td><td>1</td><td>0</td><td>0</td></tr><tr><td>3</td><td>0</td><td>0</td><td>1</td><td>0</td></tr><tr><td>4</td><td>0</td><td>0</td><td>0</td><td>1</td></tr></tbody></table></figure>



<p>行番号と列番号が同じなら1、違えば0を返しています。<a href="https://mashukabu.com/spreadsheet-if-function/">IF関数</a>と組み合わせれば、条件に応じた値を配置できますよ。</p>



<h3 class="wp-block-heading"><span id="toc10">パターン2: ランダムなテストデータを生成する</span></h3>



<p>動作確認用のダミーデータを一括で作りたいときに便利です。</p>



<pre class="wp-block-code"><code>=MAKEARRAY(5, 3, LAMBDA(r, c, RANDBETWEEN(1, 100)))</code></pre>



<p>5行×3列に、1から100までのランダムな整数が入ります。シートを再計算するたびに値が変わるので、固定したい場合は結果をコピーして「値のみ貼り付け」してください。</p>



<h3 class="wp-block-heading"><span id="toc11">パターン3: 上三角行列を作る</span></h3>



<p>行番号が列番号以下の部分だけ値を入れ、残りを空白にする上三角行列です。</p>



<pre class="wp-block-code"><code>=MAKEARRAY(4, 4, LAMBDA(r, c, IF(r&lt;=c, r*c, &quot;&quot;)))</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A</th><th>B</th><th>C</th><th>D</th></tr></thead><tbody><tr><td>1</td><td>1</td><td>2</td><td>3</td><td>4</td></tr><tr><td>2</td><td>&nbsp;</td><td>4</td><td>6</td><td>8</td></tr><tr><td>3</td><td>&nbsp;</td><td>&nbsp;</td><td>9</td><td>12</td></tr><tr><td>4</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>16</td></tr></tbody></table></figure>



<p>行番号が列番号以下のセルだけ計算結果を入れ、それ以外は空文字を返しています。マトリクス表の作成に応用できるパターンですよ。</p>



<h3 class="wp-block-heading"><span id="toc12">パターン4: セルの値を参照して動的なサイズの配列を作る</span></h3>



<p>行数や列数をセル参照にすれば、配列のサイズを動的に変えられます。</p>



<pre class="wp-block-code"><code>=MAKEARRAY(A1, B1, LAMBDA(r, c, r*c))</code></pre>



<p>A1に5、B1に3と入力すると、5行×3列の九九表が生成されます。A1やB1の値を変えるだけで配列のサイズが自動で変わるため、可変サイズのテンプレートを作りたいときに重宝します。</p>



<h3 class="wp-block-heading"><span id="toc13">パターン5: 連番に名前付きのラベルを付ける</span></h3>



<p>MAKEARRAY関数の中で文字列を返すこともできます。</p>



<pre class="wp-block-code"><code>=MAKEARRAY(5, 1, LAMBDA(r, c, &quot;項目&quot;&amp;r))</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A</th></tr></thead><tbody><tr><td>1</td><td>項目1</td></tr><tr><td>2</td><td>項目2</td></tr><tr><td>3</td><td>項目3</td></tr><tr><td>4</td><td>項目4</td></tr><tr><td>5</td><td>項目5</td></tr></tbody></table></figure>



<p>「項目1」「項目2」&#8230;と連番付きのラベルが自動生成されます。列方向に展開したい場合は行数と列数を入れ替えてください。</p>



<h2 class="wp-block-heading"><span id="toc14">SEQUENCE関数との違い・使い分け</span></h2>



<p>MAKEARRAY関数と混同しやすいのが<a href="https://mashukabu.com/spreadsheet-sequence-function/">SEQUENCE関数</a>です。どちらも「配列を生成する」関数ですが、生成できる配列の自由度が異なります。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>MAKEARRAY関数</th><th>SEQUENCE関数</th></tr></thead><tbody><tr><td>生成方法</td><td>LAMBDAで各セルを自由に計算</td><td>開始値・ステップの等差数列</td></tr><tr><td>引数</td><td>行数, 列数, LAMBDA</td><td>行数, 列数, 開始値, ステップ</td></tr><tr><td>柔軟性</td><td>各セルで異なる計算が可能</td><td>規則的な連番のみ</td></tr><tr><td>LAMBDA</td><td>必須</td><td>不要</td></tr><tr><td>典型的な用途</td><td>九九表・単位行列・条件付き配列</td><td>連番・日付連番・通し番号</td></tr></tbody></table></figure>



<p><strong>使い分けの目安はこうです。</strong></p>



<ul class="wp-block-list"><li><strong>規則的な連番を作りたい</strong> → SEQUENCE関数（シンプルで高速）</li><li><strong>位置に応じた計算で配列を作りたい</strong> → MAKEARRAY関数（柔軟性が高い）</li></ul>



<h3 class="wp-block-heading"><span id="toc15">SEQUENCE関数で十分なケース</span></h3>



<p>1, 2, 3&#8230;のような等差数列や、日付の連番ならSEQUENCE関数のほうが適しています。</p>



<pre class="wp-block-code"><code>=SEQUENCE(5, 1, 1, 1)</code></pre>



<p>この数式は1から始まる5行の連番を返します。MAKEARRAY関数でも <code>=MAKEARRAY(5, 1, LAMBDA(r, c, r))</code> と書けば同じ結果になりますが、SEQUENCE関数のほうが簡潔ですよね。</p>



<h3 class="wp-block-heading"><span id="toc16">MAKEARRAY関数でないとできないケース</span></h3>



<p>九九表のように「行番号×列番号」で値を決めたい場合や、条件に応じてセルの値を変えたい場合は、MAKEARRAY関数の出番です。</p>



<pre class="wp-block-code"><code>=MAKEARRAY(5, 5, LAMBDA(r, c, IF(r=c, &quot;X&quot;, &quot;-&quot;)))</code></pre>



<p>この数式は対角線に「X」、それ以外に「-」を入れた5×5のマトリクスを返します。SEQUENCE関数にはこうした条件分岐の機能がないため、MAKEARRAY関数が必要になります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>「連番ならSEQUENCE、計算ならMAKEARRAY」と覚えておくと迷いません。迷ったときは、LAMBDAの中で行番号・列番号を使った計算が必要かどうかで判断してください。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc17">LAMBDA系関数の全体像</span></h2>



<p>スプレッドシートには、LAMBDA関数と組み合わせて使う関数が複数あります。全体像を把握しておくと、どの場面でどの関数を使うか判断しやすくなりますよ。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>処理単位</th><th>結果の形</th><th>主な用途</th></tr></thead><tbody><tr><td><a href="https://mashukabu.com/spreadsheet-bycol-function/">BYCOL</a></td><td>列ごと</td><td>横1行</td><td>列ごとの集計</td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-byrow-function/">BYROW</a></td><td>行ごと</td><td>縦1列</td><td>行ごとの集計</td></tr><tr><td>MAP</td><td>セルごと</td><td>元と同じ形</td><td>セルごとの変換・加工</td></tr><tr><td>REDUCE</td><td>配列全体</td><td>1つの値</td><td>全体を1つに集約</td></tr><tr><td>SCAN</td><td>累積</td><td>縦1列</td><td>累積計算の中間結果</td></tr><tr><td>MAKEARRAY</td><td>行×列</td><td>新しい配列</td><td>計算で配列を生成</td></tr></tbody></table></figure>



<p>MAKEARRAY関数は他の5関数と性質が異なります。BYCOL・BYROW・MAP・REDUCE・SCANが「既存のデータに処理を適用する」のに対し、MAKEARRAY関数は「ゼロからデータを生成する」関数です。そのぶん用途が明確で、「配列を計算で作りたい」ときはMAKEARRAY一択ですよ。</p>



<h2 class="wp-block-heading"><span id="toc18">よくあるエラーと対処法</span></h2>



<p>MAKEARRAY関数はLAMBDA関数と組み合わせるため、構文のミスが起こりやすいです。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td><code>#NAME?</code></td><td>関数名のスペルミス</td><td>「MAKEARRAY」のスペルを確認してください</td></tr><tr><td><code>#NAME?</code></td><td>Excelで使用しようとした</td><td>MAKEARRAY関数はGoogleスプレッドシート専用です</td></tr><tr><td><code>#NAME?</code></td><td>LAMBDA関数の仮引数名が不正</td><td>仮引数名にセル参照（A1等）やスペースは使えません</td></tr><tr><td><code>#VALUE!</code></td><td>LAMBDAの引数が2つでない</td><td>MAKEARRAY関数のLAMBDAは行番号と列番号の2つの仮引数が必要です</td></tr><tr><td><code>#ERROR!</code></td><td>行数または列数が0以下</td><td>行数・列数には1以上の整数を指定してください</td></tr><tr><td><code>#REF!</code></td><td>出力先のセルにデータがある</td><td>結果が展開されるため、出力先の周囲のセルを空にしてください</td></tr></tbody></table></figure>



<p>特に多いのが「LAMBDAの引数が2つでない」エラーです。BYCOL関数やBYROW関数のLAMBDAは仮引数が1つですが、MAKEARRAY関数では行番号と列番号の2つが必要です。<code>LAMBDA(r, c, r*c)</code> のように必ず2つの仮引数を指定してくださいね。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>LAMBDA関数の仮引数名で迷ったら、<code>r</code>（row の略）と<code>c</code>（column の略）を使うのがおすすめです。BYCOL関数では<code>col</code>、BYROW関数では<code>row</code>を使うと、どの関数を使っているか一目でわかります。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc19">まとめ</span></h2>



<p>MAKEARRAY関数は、指定した行数×列数の配列をLAMBDA関数の計算結果で生成する関数です。位置に応じた自由な計算ができるので、九九表・単位行列・条件付きマトリクスなどを一発で作成できます。</p>



<p>この記事のポイントをおさらいしておきましょう。</p>



<ul class="wp-block-list"><li>MAKEARRAY関数は<code>=MAKEARRAY(行数, 列数, LAMBDA(r, c, 処理))</code>で、計算結果の配列を生成する</li><li>LAMBDAの仮引数には行番号と列番号が渡されるため、位置に応じた計算が可能</li><li>連番の生成ならSEQUENCE関数のほうがシンプル。計算が必要な配列にはMAKEARRAY関数を使う</li><li>LAMBDAの仮引数は必ず2つ（行番号と列番号）を指定する</li><li>Googleスプレッドシート独自の関数で、Excelでは使えない</li></ul>



<p>まずは<code>=MAKEARRAY(9, 9, LAMBDA(r, c, r*c))</code>の九九表から試してみてください。一度使い方を覚えれば、IF関数やRANDBETWEEN関数と組み合わせて、さまざまな配列を自在に生成できますよ。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc20">この記事で紹介した関数・関連記事</span></h3>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/spreadsheet-bycol-function/">スプレッドシートのBYCOL関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-byrow-function/">スプレッドシートのBYROW関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-sequence-function/">スプレッドシートのSEQUENCE関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-if-function/">スプレッドシートのIF関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-arrayformula-function/">スプレッドシートのARRAYFORMULA関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-unique-function/">スプレッドシートのUNIQUE関数の使い方</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-makearray-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
