<?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>配列関数 &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/%e9%85%8d%e5%88%97%e9%96%a2%e6%95%b0/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Thu, 04 Jun 2026 15:16:54 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1</generator>

<image>
	<url>https://mashukabu.com/wp-content/uploads/2022/04/cropped-site-icon-32x32.png</url>
	<title>配列関数 &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>ExcelのWRAPCOLS関数の使い方｜1列を指定列数の配列に折り返す</title>
		<link>https://mashukabu.com/excel-wrapcols-function/</link>
					<comments>https://mashukabu.com/excel-wrapcols-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sun, 12 Apr 2026 16:09:16 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[Excel中級]]></category>
		<category><![CDATA[Microsoft 365]]></category>
		<category><![CDATA[WRAPCOLS関数]]></category>
		<category><![CDATA[スピル]]></category>
		<category><![CDATA[動的配列]]></category>
		<category><![CDATA[配列関数]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=5924</guid>

					<description><![CDATA[ExcelのWRAPCOLS関数の使い方を丁寧に解説。1列データを指定列数の配列に折り返す構文・引数・WRAPROWS使い分け・エラー対処を実務例付きで紹介。Microsoft 365専用。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「1列のリストを、3列に並べ直したい」──そんな場面、ありませんか？</p>



<p class="wp-block-paragraph">商品リストをカタログ形式に整形するとき、手作業でコピペすると時間がかかります。<br>更新のたびに並べ直すのも、地味に手間ですよね。</p>



<p class="wp-block-paragraph">ExcelのWRAPCOLS関数を使えば、この作業を数式1つで自動化できます。<br>データが増えても更新不要で、常に最新の状態を保てますよ。</p>



<p class="wp-block-paragraph">この記事では、WRAPCOLS関数の構文・引数・使い方から、実務ユースケース・エラー対処まで解説します。</p>




  <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">WRAPCOLS関数とは？Excelでのバージョン確認</a><ol><li><a href="#toc2" tabindex="0">Microsoft 365 / Excel 2024以降のみ使用可能</a></li><li><a href="#toc3" tabindex="0">Excel 2021以前では代替方法が必要</a></li></ol></li><li><a href="#toc4" tabindex="0">WRAPCOLS関数の書き方（構文と引数）</a><ol><li><a href="#toc5" tabindex="0">基本構文</a></li><li><a href="#toc6" tabindex="0">引数の詳細</a></li><li><a href="#toc7" tabindex="0">第1引数 vector（必須）：折り返す元データ</a></li><li><a href="#toc8" tabindex="0">第2引数 wrap_count（必須）：各列の行数を指定</a></li><li><a href="#toc9" tabindex="0">第3引数 pad_with（省略可）：端数セルの埋め方</a></li></ol></li><li><a href="#toc10" tabindex="0">基本的な使い方：1列データを複数列に折り返す</a><ol><li><a href="#toc11" tabindex="0">縦1列リストを3列配列に変換する例</a></li><li><a href="#toc12" tabindex="0">端数が出る場合（pad_withの活用）</a></li><li><a href="#toc13" tabindex="0">横1行データを折り返す場合</a></li></ol></li><li><a href="#toc14" tabindex="0">WRAPROWS関数との違いと使い分け</a><ol><li><a href="#toc15" tabindex="0">折り返し方向の違い（列 vs 行）</a></li><li><a href="#toc16" tabindex="0">結果の形状と典型用途の比較表</a></li></ol></li><li><a href="#toc17" tabindex="0">実務ユースケース3選</a><ol><li><a href="#toc18" tabindex="0">ユースケース①：商品リストを3列カタログ形式に自動整形</a></li><li><a href="#toc19" tabindex="0">ユースケース②：日次データを週単位（4列）に折り返す</a></li><li><a href="#toc20" tabindex="0">ユースケース③：SEQUENCE+WRAPCOLSで連番グリッドを自動生成</a></li></ol></li><li><a href="#toc21" tabindex="0">TOCOL関数と組み合わせた応用テクニック</a><ol><li><a href="#toc22" tabindex="0">2次元データを1次元化してWRAPCOLSで再配置するレシピ</a></li></ol></li><li><a href="#toc23" tabindex="0">エラーの原因と対処法まとめ</a><ol><li><a href="#toc24" tabindex="0">#N/A エラー：端数が出る場合の対処</a></li><li><a href="#toc25" tabindex="0">#VALUE! エラー：2次元配列を渡した場合</a></li><li><a href="#toc26" tabindex="0">#NUM! エラー：wrap_countの値が不正</a></li><li><a href="#toc27" tabindex="0">#REF! エラー：スピル先に値が入っている</a></li></ol></li><li><a href="#toc28" tabindex="0">関連記事</a></li><li><a href="#toc29" tabindex="0">まとめ：WRAPCOLS関数でリスト整形を自動化しよう</a><ol><li><a href="#toc30" tabindex="0">関連関数</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">WRAPCOLS関数とは？Excelでのバージョン確認</span></h2>



<p class="wp-block-paragraph">WRAPCOLS関数は、1次元の配列を「列方向に折り返す」関数です。<br>縦1列や横1行のデータを、指定した列数の2次元配列に変換できます。</p>



<p class="wp-block-paragraph">読み方は「ラップコルズ」です。<br>&#8220;WRAP&#8221;（折り返す）と &#8220;COLS&#8221;（列、複数形）を組み合わせた名前です。</p>



<p class="wp-block-paragraph">たとえば、A列に12個のデータがあるとします。<br><code>=WRAPCOLS(A1:A12, 4)</code> と入力すると、4行×3列の配列が自動生成されます。<br>元のリストを更新すると、出力も自動で再整形されますよ。</p>



<h3 class="wp-block-heading"><span id="toc2">Microsoft 365 / Excel 2024以降のみ使用可能</span></h3>



<p class="wp-block-paragraph">WRAPCOLS関数は、以下の環境でのみ動作します。</p>



<figure class="wp-block-table"><table><thead><tr><th>環境</th><th>対応</th></tr></thead><tbody><tr><td>Microsoft 365（Windows / Mac / Web）</td><td>○</td></tr><tr><td>Excel 2024（Windows / Mac）</td><td>○</td></tr><tr><td>Excel 2021</td><td>×</td></tr><tr><td>Excel 2019 / 2016</td><td>×</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">スピル（数式の結果が複数セルに自動展開される機能）に対応した環境が必要です。<br>バージョンが古い場合は使えませんので、事前に確認してみてください。</p>



<h3 class="wp-block-heading"><span id="toc3">Excel 2021以前では代替方法が必要</span></h3>



<p class="wp-block-paragraph">Excel 2021以前では、WRAPCOLS関数は使えません。<br>INDEX関数やOFFSET関数の組み合わせで同様の処理は可能です。<br>ただし数式が複雑になるため、可能ならMicrosoft 365への移行を検討してみてください。</p>



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



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



<pre class="wp-block-code"><code>=WRAPCOLS(vector, wrap_count, [pad_with])</code></pre>



<p class="wp-block-paragraph">引数は3つで、3つ目のみ省略できます。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/省略可</th><th>説明</th></tr></thead><tbody><tr><td>vector</td><td>必須</td><td>折り返す元の1次元配列またはセル参照</td></tr><tr><td>wrap_count</td><td>必須</td><td>各列の最大行数（1以上の整数）</td></tr><tr><td>pad_with</td><td>省略可</td><td>端数セルに入れる値。省略時は #N/A</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc7">第1引数 vector（必須）：折り返す元データ</span></h3>



<p class="wp-block-paragraph">vectorには、1次元の配列またはセル参照を指定します。<br>A1:A12のような縦1列でも、A1:L1のような横1行でも使えます。</p>



<p class="wp-block-paragraph">注意点があります。<br>A1:C5のような複数行×複数列の2次元範囲を渡すと、#VALUE! エラーになります。<br>vectorは必ず1次元（1行または1列）で指定してください。</p>



<p class="wp-block-paragraph">2次元データを渡したい場合はTOCOL関数（2次元配列を縦1列に変換する関数）と組み合わせます。<br>この活用法は後述の「TOCOL関数との組み合わせ」で解説します。</p>



<h3 class="wp-block-heading"><span id="toc8">第2引数 wrap_count（必須）：各列の行数を指定</span></h3>



<p class="wp-block-paragraph">wrap_countには、各列に何行分のデータを並べるかを指定します。</p>



<p class="wp-block-paragraph">たとえば wrap_count=4 なら、各列に4行分のデータが入ります。<br>12個のデータなら 12÷4=3 なので、4行×3列の配列になります。</p>



<p class="wp-block-paragraph">0以下の値を指定すると #NUM! エラーになります。<br>必ず1以上の整数を指定してください。</p>



<h3 class="wp-block-heading"><span id="toc9">第3引数 pad_with（省略可）：端数セルの埋め方</span></h3>



<p class="wp-block-paragraph">データ件数がwrap_countで割り切れない場合、最終列に空きセルが生じます。<br>pad_withには、その空きセルに表示する値を指定できます。</p>



<ul class="wp-block-list"><li>省略した場合：空きセルに #N/A が表示される</li><li><code>""</code> を指定した場合：空白セルになる</li><li><code>0</code> を指定した場合：0で埋まる</li></ul>



<p class="wp-block-paragraph">端数が出る場面では、<code>pad_with=""</code> を指定するのが見た目にきれいですよ。</p>



<h2 class="wp-block-heading"><span id="toc10">基本的な使い方：1列データを複数列に折り返す</span></h2>



<h3 class="wp-block-heading"><span id="toc11">縦1列リストを3列配列に変換する例</span></h3>



<p class="wp-block-paragraph">A列に果物名が12個あるとします。</p>



<figure class="wp-block-table"><table><thead><tr><th>A列</th></tr></thead><tbody><tr><td>りんご</td></tr><tr><td>みかん</td></tr><tr><td>ぶどう</td></tr><tr><td>もも</td></tr><tr><td>なし</td></tr><tr><td>いちご</td></tr><tr><td>すいか</td></tr><tr><td>メロン</td></tr><tr><td>バナナ</td></tr><tr><td>キウイ</td></tr><tr><td>マンゴー</td></tr><tr><td>パイナップル</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">セルC1に次の数式を入力します。</p>



<pre class="wp-block-code"><code>=WRAPCOLS(A1:A12, 4)</code></pre>



<p class="wp-block-paragraph">結果は次のような4行×3列の配列になります。</p>



<figure class="wp-block-table"><table><thead><tr><th>列1</th><th>列2</th><th>列3</th></tr></thead><tbody><tr><td>りんご</td><td>なし</td><td>バナナ</td></tr><tr><td>みかん</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 class="wp-block-paragraph">データが列の上から順に詰め込まれています。<br>12個がwrap_count=4で割り切れるため、端数は発生しません。</p>



<h3 class="wp-block-heading"><span id="toc12">端数が出る場合（pad_withの活用）</span></h3>



<p class="wp-block-paragraph">データが13個で、wrap_count=4の場合を見てみましょう。</p>



<pre class="wp-block-code"><code>=WRAPCOLS(A1:A13, 4, &quot;&quot;)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>列1</th><th>列2</th><th>列3</th><th>列4</th></tr></thead><tbody><tr><td>1番目</td><td>5番目</td><td>9番目</td><td>13番目</td></tr><tr><td>2番目</td><td>6番目</td><td>10番目</td><td>（空白）</td></tr><tr><td>3番目</td><td>7番目</td><td>11番目</td><td>（空白）</td></tr><tr><td>4番目</td><td>8番目</td><td>12番目</td><td>（空白）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">13÷4は割り切れないため、4列目が1行分だけになります。<br><code>pad_with=""</code> を指定しているので、残り3セルが空白になります。</p>



<p class="wp-block-paragraph">pad_withを省略した場合、空白の代わりに #N/A が表示されますよ。<br>表示をすっきりさせたい場合は、忘れずに <code>""</code> を指定してみてください。</p>



<h3 class="wp-block-heading"><span id="toc13">横1行データを折り返す場合</span></h3>



<p class="wp-block-paragraph">WRAPCOLSはA1:L1のような横並びのデータにも使えます。</p>



<pre class="wp-block-code"><code>=WRAPCOLS(A1:L1, 4)</code></pre>



<p class="wp-block-paragraph">横1行の12個のデータが、4行×3列の配列に変換されます。<br>縦リストを渡したときと結果の形状は同じです。<br>入力データの向きに関わらず、同じように使えるのが便利ですよ。</p>



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



<h3 class="wp-block-heading"><span id="toc15">折り返し方向の違い（列 vs 行）</span></h3>



<p class="wp-block-paragraph">WRAPCOLS関数と対になる関数に、WRAPROWS（ラップロウズ）があります。<br>構文はほぼ同じです。</p>



<pre class="wp-block-code"><code>=WRAPROWS(vector, wrap_count, [pad_with])</code></pre>



<p class="wp-block-paragraph">2つの違いは「折り返す方向」だけです。</p>



<ul class="wp-block-list"><li><strong>WRAPCOLS</strong>：列方向（縦）に折り返す → 縦長の配列</li><li><strong>WRAPROWS</strong>：行方向（横）に折り返す → 横長の配列</li></ul>



<p class="wp-block-paragraph">たとえば <code>{a, b, c, d, e, f}</code> の6要素を、wrap_count=3 で折り返すとします。</p>



<p class="wp-block-paragraph"><strong>WRAPCOLS（各列3行）の結果：</strong></p>



<figure class="wp-block-table"><table><thead><tr><th>列1</th><th>列2</th></tr></thead><tbody><tr><td>a</td><td>d</td></tr><tr><td>b</td><td>e</td></tr><tr><td>c</td><td>f</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>WRAPROWS（各行3列）の結果：</strong></p>



<figure class="wp-block-table"><table><thead><tr><th>列1</th><th>列2</th><th>列3</th></tr></thead><tbody><tr><td>a</td><td>b</td><td>c</td></tr><tr><td>d</td><td>e</td><td>f</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">WRAPCOLSは縦長の配列、WRAPROWSは横長の配列になります。<br>どちらも「折り返す」ことに変わりはありませんが、方向が逆になります。</p>



<h3 class="wp-block-heading"><span id="toc16">結果の形状と典型用途の比較表</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>WRAPCOLS</th><th>WRAPROWS</th></tr></thead><tbody><tr><td>折り返し方向</td><td>列方向（縦に詰める）</td><td>行方向（横に詰める）</td></tr><tr><td>wrap_countの意味</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 class="wp-block-paragraph">「縦に整形したい」ならWRAPCOLS、「横に展開したい」ならWRAPROWSと覚えておくと選びやすいですよ。</p>



<h2 class="wp-block-heading"><span id="toc17">実務ユースケース3選</span></h2>



<h3 class="wp-block-heading"><span id="toc18">ユースケース①：商品リストを3列カタログ形式に自動整形</span></h3>



<p class="wp-block-paragraph">販売管理システムからエクスポートした商品名が縦1列に並んでいます。<br>これを3列のカタログ形式に整形してみましょう。</p>



<p class="wp-block-paragraph">A列（A2:A10）に商品名が9個あるとします。<br>セルC1に次の数式を入力します。</p>



<pre class="wp-block-code"><code>=WRAPCOLS(A2:A10, 3)</code></pre>



<p class="wp-block-paragraph"><strong>変換前（A列の縦リスト）：</strong></p>



<figure class="wp-block-table"><table><thead><tr><th>A列</th></tr></thead><tbody><tr><td>商品A</td></tr><tr><td>商品B</td></tr><tr><td>商品C</td></tr><tr><td>商品D</td></tr><tr><td>商品E</td></tr><tr><td>商品F</td></tr><tr><td>商品G</td></tr><tr><td>商品H</td></tr><tr><td>商品I</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>変換後（3行×3列の配列）：</strong></p>



<figure class="wp-block-table"><table><thead><tr><th>列1</th><th>列2</th><th>列3</th></tr></thead><tbody><tr><td>商品A</td><td>商品D</td><td>商品G</td></tr><tr><td>商品B</td><td>商品E</td><td>商品H</td></tr><tr><td>商品C</td><td>商品F</td><td>商品I</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">9個をwrap_count=3で割ると3列になります。<br>商品が追加・削除されても、A列を更新するだけです。<br>カタログの再整形は数式が自動でやってくれますよ。</p>



<h3 class="wp-block-heading"><span id="toc19">ユースケース②：日次データを週単位（4列）に折り返す</span></h3>



<p class="wp-block-paragraph">28日分の日次売上データがD2:D29にあるとします。<br>これを7行×4列（週単位）に折り返すと、週ごとの比較がしやすくなります。</p>



<pre class="wp-block-code"><code>=WRAPCOLS(D2:D29, 7)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>第1週</th><th>第2週</th><th>第3週</th><th>第4週</th></tr></thead><tbody><tr><td>1日目</td><td>8日目</td><td>15日目</td><td>22日目</td></tr><tr><td>2日目</td><td>9日目</td><td>16日目</td><td>23日目</td></tr><tr><td>3日目</td><td>10日目</td><td>17日目</td><td>24日目</td></tr><tr><td>4日目</td><td>11日目</td><td>18日目</td><td>25日目</td></tr><tr><td>5日目</td><td>12日目</td><td>19日目</td><td>26日目</td></tr><tr><td>6日目</td><td>13日目</td><td>20日目</td><td>27日目</td></tr><tr><td>7日目</td><td>14日目</td><td>21日目</td><td>28日目</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">各列が1週間分のデータになります。<br>SUM関数やAVERAGE関数を週ごとに適用するのも簡単になりますよ。</p>



<h3 class="wp-block-heading"><span id="toc20">ユースケース③：SEQUENCE+WRAPCOLSで連番グリッドを自動生成</span></h3>



<p class="wp-block-paragraph">SEQUENCE関数（連続した数値を生成する関数）と組み合わせると、連番グリッドが1つの数式で作れます。</p>



<p class="wp-block-paragraph">たとえば、1〜16の連番を4行×4列のグリッドにするには：</p>



<pre class="wp-block-code"><code>=WRAPCOLS(SEQUENCE(16), 4)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>列1</th><th>列2</th><th>列3</th><th>列4</th></tr></thead><tbody><tr><td>1</td><td>5</td><td>9</td><td>13</td></tr><tr><td>2</td><td>6</td><td>10</td><td>14</td></tr><tr><td>3</td><td>7</td><td>11</td><td>15</td></tr><tr><td>4</td><td>8</td><td>12</td><td>16</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">SEQUENCE(16) が {1, 2, &#8230;, 16} の連番を生成します。<br>WRAPCOLSがそれを4行ずつの列に変換し、4×4のグリッドになります。<br>座席番号の振り方や番号管理表の自動生成に活用できますよ。</p>



<p class="wp-block-paragraph">SEQUENCE関数の詳細は <a href="https://biz-tactics.net/excel-function-howto-use-sequence">ExcelのSEQUENCE関数の使い方</a> も参照してみてください。</p>



<h2 class="wp-block-heading"><span id="toc21">TOCOL関数と組み合わせた応用テクニック</span></h2>



<h3 class="wp-block-heading"><span id="toc22">2次元データを1次元化してWRAPCOLSで再配置するレシピ</span></h3>



<p class="wp-block-paragraph">WRAPCOLSのvectorには1次元配列しか渡せません。<br>しかし実務では、複数列のデータをまとめて再配置したいことがあります。</p>



<p class="wp-block-paragraph">そこで活用するのがTOCOL関数です。<br>TOCOLは2次元配列を縦1列に変換する関数です。<br>TOCOLとWRAPCOLSを組み合わせることで、柔軟な再配置が可能になります。</p>



<p class="wp-block-paragraph"><strong>例：2列×4行のデータを再配置する</strong></p>



<p class="wp-block-paragraph">A1:B4に2列×4行（計8セル）のデータがあるとします。</p>



<pre class="wp-block-code"><code>=WRAPCOLS(TOCOL(A1:B4), 4)</code></pre>



<p class="wp-block-paragraph"><strong>処理の流れ：</strong></p>



<p class="wp-block-paragraph">① <code>TOCOL(A1:B4)</code> → 2次元データを8要素の縦1列に変換<br>② <code>WRAPCOLS(..., 4)</code> → 4行×2列の配列に再配置</p>



<p class="wp-block-paragraph">2次元データを一度1次元に「ならして」から、好きな列数で再配置できます。<br>「複数列のリストをまとめて並べ替えたい」という場面で特に便利なテクニックです。</p>



<p class="wp-block-paragraph">TOCOL関数の詳細は <a href="https://biz-tactics.net/excel-function-howto-use-tocol">ExcelのTOCOL関数の使い方</a> で解説しています。<br>TOROW関数（2次元配列を横1行に変換する関数）を使ったパターンは <a href="https://biz-tactics.net/excel-function-howto-use-torow">ExcelのTOROW関数の使い方</a> を参照してみてください。</p>



<h2 class="wp-block-heading"><span id="toc23">エラーの原因と対処法まとめ</span></h2>



<p class="wp-block-paragraph">WRAPCOLS関数で発生しうるエラーは4種類です。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>主な原因</th><th>対処法</th></tr></thead><tbody><tr><td>#N/A</td><td>pad_withを省略していて端数セルがある</td><td><code>pad_with=""</code> や <code>pad_with=0</code> を指定する</td></tr><tr><td>#VALUE!</td><td>vectorに2次元配列を指定した</td><td>TOCOLで1次元化してからWRAPCOLSに渡す</td></tr><tr><td>#NUM!</td><td>wrap_countに0以下の値を指定した</td><td>1以上の整数を指定する</td></tr><tr><td>#REF!</td><td>スピル先のセルに値が入っている</td><td>出力先の範囲を空にしてから入力し直す</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc24">#N/A エラー：端数が出る場合の対処</span></h3>



<p class="wp-block-paragraph">データ件数がwrap_countで割り切れないと、最終列の末尾に #N/A が出ます。<br>#N/A（エヌエー）は &#8220;Not Available&#8221;（利用不可）の略で、値がないことを示します。</p>



<pre class="wp-block-code"><code>=WRAPCOLS(A1:A10, 3)  ' 10÷3=3余り1 → 最終列の末尾2セルに#N/A</code></pre>



<p class="wp-block-paragraph">空白にしたい場合：</p>



<pre class="wp-block-code"><code>=WRAPCOLS(A1:A10, 3, &quot;&quot;)</code></pre>



<p class="wp-block-paragraph">0で埋めたい場合：</p>



<pre class="wp-block-code"><code>=WRAPCOLS(A1:A10, 3, 0)</code></pre>



<p class="wp-block-paragraph">端数が出る可能性があるときは、最初からpad_withを指定しておくと安心ですよ。</p>



<h3 class="wp-block-heading"><span id="toc25">#VALUE! エラー：2次元配列を渡した場合</span></h3>



<p class="wp-block-paragraph">vectorに2次元範囲（複数行×複数列）を渡すと #VALUE! になります。</p>



<pre class="wp-block-code"><code>' NG: 2次元配列を直接渡す
=WRAPCOLS(A1:C5, 3)  ' → #VALUE!

' OK: TOCOLで1次元化してから渡す
=WRAPCOLS(TOCOL(A1:C5), 3)</code></pre>



<p class="wp-block-paragraph">vectorに渡しているセル範囲が2次元になっていないか確認してみてください。</p>



<h3 class="wp-block-heading"><span id="toc26">#NUM! エラー：wrap_countの値が不正</span></h3>



<p class="wp-block-paragraph">wrap_countに0以下の値を指定すると #NUM! になります。</p>



<pre class="wp-block-code"><code>=WRAPCOLS(A1:A12, 0)   ' → #NUM!
=WRAPCOLS(A1:A12, -1)  ' → #NUM!</code></pre>



<p class="wp-block-paragraph">1以上の整数を指定してください。<br>セル参照でwrap_countを指定している場合は、そのセルの値を確認してみてください。</p>



<h3 class="wp-block-heading"><span id="toc27">#REF! エラー：スピル先に値が入っている</span></h3>



<p class="wp-block-paragraph">WRAPCOLS関数はスピルを使って結果を複数セルに展開します。<br>出力先の範囲に他のデータが入っていると、#REF! エラーになります。</p>



<p class="wp-block-paragraph">出力先となるセル範囲を空にしてから、数式を入力し直してください。<br>スピルに必要な範囲が広い場合は、周囲のデータを別の場所に移動してみてください。</p>



<h2 class="wp-block-heading"><span id="toc28">関連記事</span></h2>



<p class="wp-block-paragraph">WRAPCOLS関数とあわせて覚えておきたい配列操作の関数を紹介します。</p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-wraprows-function/">ExcelのWRAPROWS関数の使い方</a>：WRAPCOLSと対になる、行方向に折り返す関数です。</li><li><a href="https://mashukabu.com/excel-function-howto-use-tocol/">ExcelのTOCOL関数の使い方</a>：2次元配列を縦1列に変換する関数で、WRAPCOLSの前段処理に使えます。</li><li><a href="https://mashukabu.com/excel-function-howto-use-torow/">ExcelのTOROW関数の使い方</a>：2次元配列を横1行に変換する関数です。</li><li><a href="https://mashukabu.com/excel-function-howto-use-sequence/">ExcelのSEQUENCE関数の使い方</a>：連番を自動生成する関数で、WRAPCOLSと組み合わせるとグリッドを作れます。</li></ul>



<h2 class="wp-block-heading"><span id="toc29">まとめ：WRAPCOLS関数でリスト整形を自動化しよう</span></h2>



<p class="wp-block-paragraph">この記事の要点を整理します。</p>



<figure class="wp-block-table"><table><thead><tr><th>ポイント</th><th>内容</th></tr></thead><tbody><tr><td>できること</td><td>1次元リストを列方向に折り返して2次元配列に変換</td></tr><tr><td>構文</td><td>=WRAPCOLS(vector, wrap_count, [pad_with])</td></tr><tr><td>対応環境</td><td>Microsoft 365 / Excel 2024以降のみ</td></tr><tr><td>WRAPROWSとの違い</td><td>縦長配列（WRAPCOLS）vs 横長配列（WRAPROWS）</td></tr><tr><td>主なエラー</td><td>#N/A / #VALUE! / #NUM! / #REF!</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">WRAPCOLS関数を使えば、手作業で並べ替えていたリストが数式1つで自動化できます。<br>データが増えても更新不要なので、メンテナンスの手間もなくなりますよ。</p>



<p class="wp-block-paragraph">ぜひ実務で試してみてください。</p>



<h3 class="wp-block-heading"><span id="toc30">関連関数</span></h3>



<p class="wp-block-paragraph">配列操作の関連記事もあわせてどうぞ。</p>



<ul class="wp-block-list"><li><a href="https://biz-tactics.net/excel-function-howto-use-tocol">ExcelのTOCOL関数の使い方</a>（2次元配列を縦1列に変換）</li><li><a href="https://biz-tactics.net/excel-function-howto-use-torow">ExcelのTOROW関数の使い方</a>（2次元配列を横1行に変換）</li><li><a href="https://biz-tactics.net/excel-function-howto-use-sequence">ExcelのSEQUENCE関数の使い方</a>（連番を自動生成）</li><li><a href="https://biz-tactics.net/excel-function-howto-use-hstack">ExcelのHSTACK関数の使い方</a>（配列を横方向に結合）</li><li><a href="https://biz-tactics.net/excel-function-howto-use-vstack">ExcelのVSTACK関数の使い方</a>（配列を縦方向に結合）</li><li><a href="https://biz-tactics.net/excel-function-howto-use-choosecols">ExcelのCHOOSECOLS関数の使い方</a>（指定列を抽出）</li><li><a href="https://biz-tactics.net/excel-function-howto-use-chooserows">ExcelのCHOOSEROWS関数の使い方</a>（指定行を抽出）</li><li><a href="https://biz-tactics.net/excel-function-howto-use-take">ExcelのTAKE関数の使い方</a>（先頭・末尾を抽出）</li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-wrapcols-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのWRAPROWS関数の使い方｜1行を指定列数の配列に折り返す</title>
		<link>https://mashukabu.com/excel-wraprows-function/</link>
					<comments>https://mashukabu.com/excel-wraprows-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sun, 12 Apr 2026 16:09:13 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[Excel中級]]></category>
		<category><![CDATA[Microsoft 365]]></category>
		<category><![CDATA[WRAPROWS関数]]></category>
		<category><![CDATA[スピル]]></category>
		<category><![CDATA[動的配列]]></category>
		<category><![CDATA[配列関数]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=5922</guid>

					<description><![CDATA[ExcelのWRAPROWS関数の使い方を丁寧に解説。1次元データを指定列数の配列に行方向で折り返す構文・引数・WRAPCOLS使い分け・エラー対処を実務例付きで紹介。Microsoft 365専用。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「データを横並びに整形したい」──そんな場面、ありませんか？</p>



<p class="wp-block-paragraph">縦1列のリストを、一定の列数で横に並べ直すとき、手作業でコピペすると時間がかかります。<br>更新のたびに並べ直すのも、地味に手間ですよね。</p>



<p class="wp-block-paragraph">ExcelのWRAPROWS関数を使えば、この作業を数式1つで自動化できます。<br>データが増えても更新不要で、常に最新の状態を保てますよ。</p>



<p class="wp-block-paragraph">この記事では、WRAPROWS関数の構文・引数・使い方から、実務ユースケース・エラー対処まで解説します。</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">WRAPROWS関数とは？Excelでのバージョン確認</a><ol><li><a href="#toc2" tabindex="0">Microsoft 365 / Excel 2024以降のみ使用可能</a></li><li><a href="#toc3" tabindex="0">Excel 2021以前では代替方法が必要</a></li></ol></li><li><a href="#toc4" tabindex="0">WRAPROWS関数の書き方（構文と引数）</a><ol><li><a href="#toc5" tabindex="0">基本構文</a></li><li><a href="#toc6" tabindex="0">引数の詳細</a></li><li><a href="#toc7" tabindex="0">第1引数 vector（必須）：折り返す元データ</a></li><li><a href="#toc8" tabindex="0">第2引数 wrap_count（必須）：各行の列数を指定</a></li><li><a href="#toc9" tabindex="0">第3引数 pad_with（省略可）：端数セルの埋め方</a></li></ol></li><li><a href="#toc10" tabindex="0">基本的な使い方：1列データを複数行に折り返す</a><ol><li><a href="#toc11" tabindex="0">縦1列リストを3列配列に変換する例</a></li><li><a href="#toc12" tabindex="0">端数が出る場合（pad_withの活用）</a></li><li><a href="#toc13" tabindex="0">横1行データを折り返す場合</a></li></ol></li><li><a href="#toc14" tabindex="0">WRAPCOLS関数との違いと使い分け</a><ol><li><a href="#toc15" tabindex="0">折り返し方向の違い（行 vs 列）</a></li><li><a href="#toc16" tabindex="0">結果の形状と典型用途の比較表</a></li></ol></li><li><a href="#toc17" tabindex="0">実務ユースケース3選</a><ol><li><a href="#toc18" tabindex="0">ユースケース①：商品リストを4列横並びに自動整形</a></li><li><a href="#toc19" tabindex="0">ユースケース②：月次データを四半期単位（3列）に折り返す</a></li><li><a href="#toc20" tabindex="0">ユースケース③：SEQUENCE+WRAPROWSでカレンダー形式の連番グリッドを生成</a></li></ol></li><li><a href="#toc21" tabindex="0">TOROW関数と組み合わせた応用テクニック</a><ol><li><a href="#toc22" tabindex="0">2次元データを1次元化してWRAPROWSで再配置するレシピ</a></li></ol></li><li><a href="#toc23" tabindex="0">エラーの原因と対処法まとめ</a><ol><li><a href="#toc24" tabindex="0">#N/A エラー：端数が出る場合の対処</a></li><li><a href="#toc25" tabindex="0">#VALUE! エラー：2次元配列を渡した場合</a></li><li><a href="#toc26" tabindex="0">#NUM! エラー：wrap_countの値が不正</a></li><li><a href="#toc27" tabindex="0">#REF! エラー：スピル先に値が入っている</a></li></ol></li><li><a href="#toc28" tabindex="0">よくある質問（WRAPROWS関数）</a><ol><li><a href="#toc29" tabindex="0">Q1. WRAPROWS関数を使うとき、元データを変更したら自動で更新されますか？</a></li><li><a href="#toc30" tabindex="0">Q2. WRAPROWS関数で作った配列の特定のセルを参照するには？</a></li><li><a href="#toc31" tabindex="0">Q3. Microsoft 365を使っていない場合、同じことを実現するには？</a></li></ol></li><li><a href="#toc32" tabindex="0">まとめ：WRAPROWS関数でリスト整形を自動化しよう</a><ol><li><a href="#toc33" tabindex="0">関連関数</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">WRAPROWS関数とは？Excelでのバージョン確認</span></h2>



<p class="wp-block-paragraph">WRAPROWS関数は、1次元の配列を「行方向に折り返す」関数です。<br>縦1列や横1行のデータを、指定した列数ごとに折り返した2次元配列に変換できます。</p>



<p class="wp-block-paragraph">読み方は「ラップロウズ」です。<br>&#8220;WRAP&#8221;（折り返す）と &#8220;ROWS&#8221;（行、複数形）を組み合わせた名前です。</p>



<p class="wp-block-paragraph">たとえば、A列に12個のデータがあるとします。<br><code>=WRAPROWS(A1:A12, 4)</code> と入力すると、3行×4列の配列が自動生成されます。<br>元のリストを更新すると、出力も自動で再整形されますよ。</p>



<h3 class="wp-block-heading"><span id="toc2">Microsoft 365 / Excel 2024以降のみ使用可能</span></h3>



<p class="wp-block-paragraph">WRAPROWS関数は、以下の環境でのみ動作します。</p>



<figure class="wp-block-table"><table><thead><tr><th>環境</th><th>対応</th></tr></thead><tbody><tr><td>Microsoft 365（Windows / Mac / Web）</td><td>○</td></tr><tr><td>Excel 2024（Windows / Mac）</td><td>○</td></tr><tr><td>Excel 2021</td><td>×</td></tr><tr><td>Excel 2019 / 2016</td><td>×</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">スピル（数式の結果が複数セルに自動展開される機能）に対応した環境が必要です。<br>バージョンが古い場合は使えませんので、事前に確認してみてください。</p>



<h3 class="wp-block-heading"><span id="toc3">Excel 2021以前では代替方法が必要</span></h3>



<p class="wp-block-paragraph">Excel 2021以前では、WRAPROWS関数は使えません。<br>INDEX関数やOFFSET関数の組み合わせで同様の処理は可能です。<br>ただし数式が複雑になるため、可能ならMicrosoft 365への移行を検討してみてください。</p>



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



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



<pre class="wp-block-code"><code>=WRAPROWS(vector, wrap_count, [pad_with])</code></pre>



<p class="wp-block-paragraph">引数は3つで、3つ目のみ省略できます。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/省略可</th><th>説明</th></tr></thead><tbody><tr><td>vector</td><td>必須</td><td>折り返す元の1次元配列またはセル参照</td></tr><tr><td>wrap_count</td><td>必須</td><td>各行の最大列数（1以上の整数）</td></tr><tr><td>pad_with</td><td>省略可</td><td>端数セルに入れる値。省略時は #N/A</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc7">第1引数 vector（必須）：折り返す元データ</span></h3>



<p class="wp-block-paragraph">vectorには、1次元の配列またはセル参照を指定します。<br>A1:A12のような縦1列でも、A1:L1のような横1行でも使えます。</p>



<p class="wp-block-paragraph">注意点があります。<br>A1:C5のような複数行×複数列の2次元範囲を渡すと、#VALUE! エラーになります。<br>vectorは必ず1次元（1行または1列）で指定してください。</p>



<p class="wp-block-paragraph">2次元データを渡したい場合はTOROW関数（2次元配列を横1行に変換する関数）と組み合わせます。<br>この活用法は後述の「TOROW関数との組み合わせ」で解説します。</p>



<h3 class="wp-block-heading"><span id="toc8">第2引数 wrap_count（必須）：各行の列数を指定</span></h3>



<p class="wp-block-paragraph">wrap_countには、各行に何列分のデータを並べるかを指定します。</p>



<p class="wp-block-paragraph">たとえば wrap_count=4 なら、各行に4列分のデータが入ります。<br>12個のデータなら 12÷4=3 なので、3行×4列の配列になります。</p>



<p class="wp-block-paragraph">0以下の値を指定すると #NUM! エラーになります。<br>必ず1以上の整数を指定してください。</p>



<h3 class="wp-block-heading"><span id="toc9">第3引数 pad_with（省略可）：端数セルの埋め方</span></h3>



<p class="wp-block-paragraph">データ件数がwrap_countで割り切れない場合、最終行に空きセルが生じます。<br>pad_withには、その空きセルに表示する値を指定できます。</p>



<ul class="wp-block-list"><li>省略した場合：空きセルに #N/A が表示される</li><li><code>""</code> を指定した場合：空白セルになる</li><li><code>0</code> を指定した場合：0で埋まる</li></ul>



<p class="wp-block-paragraph">端数が出る場面では、<code>pad_with=""</code> を指定するのが見た目にきれいですよ。</p>



<h2 class="wp-block-heading"><span id="toc10">基本的な使い方：1列データを複数行に折り返す</span></h2>



<h3 class="wp-block-heading"><span id="toc11">縦1列リストを3列配列に変換する例</span></h3>



<p class="wp-block-paragraph">A列に果物名が12個あるとします。</p>



<figure class="wp-block-table"><table><thead><tr><th>A列</th></tr></thead><tbody><tr><td>りんご</td></tr><tr><td>みかん</td></tr><tr><td>ぶどう</td></tr><tr><td>もも</td></tr><tr><td>なし</td></tr><tr><td>いちご</td></tr><tr><td>すいか</td></tr><tr><td>メロン</td></tr><tr><td>バナナ</td></tr><tr><td>キウイ</td></tr><tr><td>マンゴー</td></tr><tr><td>パイナップル</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">セルC1に次の数式を入力します。</p>



<pre class="wp-block-code"><code>=WRAPROWS(A1:A12, 4)</code></pre>



<p class="wp-block-paragraph">結果は次のような3行×4列の配列になります。</p>



<figure class="wp-block-table"><table><thead><tr><th>列1</th><th>列2</th><th>列3</th><th>列4</th></tr></thead><tbody><tr><td>りんご</td><td>みかん</td><td>ぶどう</td><td>もも</td></tr><tr><td>なし</td><td>いちご</td><td>すいか</td><td>メロン</td></tr><tr><td>バナナ</td><td>キウイ</td><td>マンゴー</td><td>パイナップル</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">データが行の左から順に詰め込まれています。<br>12個がwrap_count=4で割り切れるため、端数は発生しません。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>WRAPCOLS関数との違いに注目してください。WRAPCOLS(A1:A12, 4) は4行×3列の「縦長」配列になりますが、WRAPROWS(A1:A12, 4) は3行×4列の「横長」配列になります。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc12">端数が出る場合（pad_withの活用）</span></h3>



<p class="wp-block-paragraph">データが13個で、wrap_count=4の場合を見てみましょう。</p>



<pre class="wp-block-code"><code>=WRAPROWS(A1:A13, 4, &quot;&quot;)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>列1</th><th>列2</th><th>列3</th><th>列4</th></tr></thead><tbody><tr><td>1番目</td><td>2番目</td><td>3番目</td><td>4番目</td></tr><tr><td>5番目</td><td>6番目</td><td>7番目</td><td>8番目</td></tr><tr><td>9番目</td><td>10番目</td><td>11番目</td><td>12番目</td></tr><tr><td>13番目</td><td>（空白）</td><td>（空白）</td><td>（空白）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">13÷4は割り切れないため、4行目が1列分だけになります。<br><code>pad_with=""</code> を指定しているので、残り3セルが空白になります。</p>



<p class="wp-block-paragraph">pad_withを省略した場合、空白の代わりに #N/A が表示されますよ。<br>表示をすっきりさせたい場合は、忘れずに <code>""</code> を指定してみてください。</p>



<h3 class="wp-block-heading"><span id="toc13">横1行データを折り返す場合</span></h3>



<p class="wp-block-paragraph">WRAPROWSはA1:L1のような横並びのデータにも使えます。</p>



<pre class="wp-block-code"><code>=WRAPROWS(A1:L1, 4)</code></pre>



<p class="wp-block-paragraph">横1行の12個のデータが、3行×4列の配列に変換されます。<br>縦リストを渡したときと結果の形状は同じです。<br>入力データの向きに関わらず、同じように使えるのが便利ですよ。</p>



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



<h3 class="wp-block-heading"><span id="toc15">折り返し方向の違い（行 vs 列）</span></h3>



<p class="wp-block-paragraph">WRAPROWSと対になる関数に、WRAPCOLS（ラップコルズ）があります。<br>構文はまったく同じです。</p>



<pre class="wp-block-code"><code>=WRAPCOLS(vector, wrap_count, [pad_with])</code></pre>



<p class="wp-block-paragraph">2つの違いは「折り返す方向」だけです。</p>



<ul class="wp-block-list"><li><strong>WRAPROWS</strong>：行方向（横）に折り返す → 横長の配列（少行・多列）</li><li><strong>WRAPCOLS</strong>：列方向（縦）に折り返す → 縦長の配列（多行・少列）</li></ul>



<p class="wp-block-paragraph">たとえば <code>{a, b, c, d, e, f}</code> の6要素を、wrap_count=3 で折り返すとします。</p>



<p class="wp-block-paragraph"><strong>WRAPROWS（各行3列）の結果：</strong></p>



<figure class="wp-block-table"><table><thead><tr><th>列1</th><th>列2</th><th>列3</th></tr></thead><tbody><tr><td>a</td><td>b</td><td>c</td></tr><tr><td>d</td><td>e</td><td>f</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>WRAPCOLS（各列3行）の結果：</strong></p>



<figure class="wp-block-table"><table><thead><tr><th>列1</th><th>列2</th></tr></thead><tbody><tr><td>a</td><td>d</td></tr><tr><td>b</td><td>e</td></tr><tr><td>c</td><td>f</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">WRAPROWSは横長の配列、WRAPCOLSは縦長の配列になります。<br>どちらも「折り返す」ことに変わりはありませんが、方向が逆になります。</p>



<h3 class="wp-block-heading"><span id="toc16">結果の形状と典型用途の比較表</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>WRAPROWS</th><th>WRAPCOLS</th></tr></thead><tbody><tr><td>折り返し方向</td><td>行方向（横に詰める）</td><td>列方向（縦に詰める）</td></tr><tr><td>wrap_countの意味</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 class="wp-block-paragraph">「横に並べたい」ならWRAPROWS、「縦に整形したい」ならWRAPCOLSと覚えておくと選びやすいですよ。</p>



<p class="wp-block-paragraph">WRAPCOLSの使い方は <a href="https://biz-tactics.net/excel-wrapcols-function">ExcelのWRAPCOLS関数の使い方</a> で詳しく解説しています。</p>



<h2 class="wp-block-heading"><span id="toc17">実務ユースケース3選</span></h2>



<h3 class="wp-block-heading"><span id="toc18">ユースケース①：商品リストを4列横並びに自動整形</span></h3>



<p class="wp-block-paragraph">販売管理システムからエクスポートした商品名が縦1列に並んでいます。<br>これを4列の横並び形式に整形してみましょう。</p>



<p class="wp-block-paragraph">A列（A2:A12）に商品名が12個あるとします。<br>セルC1に次の数式を入力します。</p>



<pre class="wp-block-code"><code>=WRAPROWS(A2:A12, 4, &quot;&quot;)</code></pre>



<p class="wp-block-paragraph"><strong>変換前（A列の縦リスト）：</strong></p>



<figure class="wp-block-table"><table><thead><tr><th>A列</th></tr></thead><tbody><tr><td>商品A</td></tr><tr><td>商品B</td></tr><tr><td>…</td></tr><tr><td>商品L</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>変換後（3行×4列の配列）：</strong></p>



<figure class="wp-block-table"><table><thead><tr><th>列1</th><th>列2</th><th>列3</th><th>列4</th></tr></thead><tbody><tr><td>商品A</td><td>商品B</td><td>商品C</td><td>商品D</td></tr><tr><td>商品E</td><td>商品F</td><td>商品G</td><td>商品H</td></tr><tr><td>商品I</td><td>商品J</td><td>商品K</td><td>商品L</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">商品が追加・削除されても、A列を更新するだけです。<br>横並び表の再整形は数式が自動でやってくれますよ。</p>



<h3 class="wp-block-heading"><span id="toc19">ユースケース②：月次データを四半期単位（3列）に折り返す</span></h3>



<p class="wp-block-paragraph">12ヶ月分の月次売上データがD2:D13にあるとします。<br>これを4行×3列（四半期単位）に折り返すと、四半期ごとの比較がしやすくなります。</p>



<pre class="wp-block-code"><code>=WRAPROWS(D2:D13, 3)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>1月</th><th>2月</th><th>3月</th></tr></thead><tbody><tr><td>4月</td><td>5月</td><td>6月</td></tr><tr><td>7月</td><td>8月</td><td>9月</td></tr><tr><td>10月</td><td>11月</td><td>12月</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">各行が3ヶ月（四半期）分のデータになります。<br>SUM関数やAVERAGE関数を四半期ごとに適用するのも簡単になりますよ。</p>



<h3 class="wp-block-heading"><span id="toc20">ユースケース③：SEQUENCE+WRAPROWSでカレンダー形式の連番グリッドを生成</span></h3>



<p class="wp-block-paragraph">SEQUENCE関数（連続した数値を生成する関数）と組み合わせると、カレンダー形式の番号表が1つの数式で作れます。</p>



<p class="wp-block-paragraph">たとえば、1〜28の連番を7列（曜日列）×4行（週）のグリッドにするには：</p>



<pre class="wp-block-code"><code>=WRAPROWS(SEQUENCE(28), 7)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>日</th><th>月</th><th>火</th><th>水</th><th>木</th><th>金</th><th>土</th></tr></thead><tbody><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td></tr><tr><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td></tr><tr><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td></tr><tr><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">SEQUENCE(28) が {1, 2, &#8230;, 28} の連番を生成します。<br>WRAPROWSがそれを7列ずつの行に変換し、カレンダー形式のグリッドになります。<br>日付表の自動生成や座席番号の管理表にも活用できますよ。</p>



<p class="wp-block-paragraph">SEQUENCE関数の詳細は <a href="https://biz-tactics.net/excel-function-howto-use-sequence">ExcelのSEQUENCE関数の使い方</a> も参照してみてください。</p>



<h2 class="wp-block-heading"><span id="toc21">TOROW関数と組み合わせた応用テクニック</span></h2>



<h3 class="wp-block-heading"><span id="toc22">2次元データを1次元化してWRAPROWSで再配置するレシピ</span></h3>



<p class="wp-block-paragraph">WRAPROWSのvectorには1次元配列しか渡せません。<br>しかし実務では、複数列のデータをまとめて再配置したいことがあります。</p>



<p class="wp-block-paragraph">そこで活用するのがTOROW関数です。<br>TOROWは2次元配列を横1行に変換する関数です。<br>TOROWとWRAPROWSを組み合わせることで、柔軟な再配置が可能になります。</p>



<p class="wp-block-paragraph"><strong>例：2列×4行のデータを再配置する</strong></p>



<p class="wp-block-paragraph">A1:B4に2列×4行（計8セル）のデータがあるとします。</p>



<pre class="wp-block-code"><code>=WRAPROWS(TOROW(A1:B4), 4)</code></pre>



<p class="wp-block-paragraph"><strong>処理の流れ：</strong></p>



<p class="wp-block-paragraph">① <code>TOROW(A1:B4)</code> → 2次元データを8要素の横1行に変換<br>② <code>WRAPROWS(..., 4)</code> → 2行×4列の配列に再配置</p>



<p class="wp-block-paragraph">2次元データを一度1次元に「ならして」から、好きな列数で再配置できます。<br>「複数列のリストをまとめて横並べに整形したい」という場面で特に便利なテクニックです。</p>



<p class="wp-block-paragraph">TOCOL/TOROW関数の詳細は以下の記事もあわせて参照してみてください。</p>



<ul class="wp-block-list"><li><a href="https://biz-tactics.net/excel-function-howto-use-tocol">ExcelのTOCOL関数の使い方</a>（2次元配列を縦1列に変換）</li><li><a href="https://biz-tactics.net/excel-function-howto-use-torow">ExcelのTOROW関数の使い方</a>（2次元配列を横1行に変換）</li></ul>



<h2 class="wp-block-heading"><span id="toc23">エラーの原因と対処法まとめ</span></h2>



<p class="wp-block-paragraph">WRAPROWS関数で発生しうるエラーは4種類です。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>主な原因</th><th>対処法</th></tr></thead><tbody><tr><td>#N/A</td><td>pad_withを省略していて端数セルがある</td><td><code>pad_with=""</code> や <code>pad_with=0</code> を指定する</td></tr><tr><td>#VALUE!</td><td>vectorに2次元配列を指定した</td><td>TOROWで1次元化してからWRAPROWSに渡す</td></tr><tr><td>#NUM!</td><td>wrap_countに0以下の値を指定した</td><td>1以上の整数を指定する</td></tr><tr><td>#REF!</td><td>スピル先のセルに値が入っている</td><td>出力先の範囲を空にしてから入力し直す</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc24">#N/A エラー：端数が出る場合の対処</span></h3>



<p class="wp-block-paragraph">データ件数がwrap_countで割り切れないと、最終行の末尾に #N/A が出ます。<br>#N/A（エヌエー）は &#8220;Not Available&#8221;（利用不可）の略で、値がないことを示します。</p>



<pre class="wp-block-code"><code>=WRAPROWS(A1:A10, 3)  ' 10÷3=3余り1 → 最終行の末尾2セルに#N/A</code></pre>



<p class="wp-block-paragraph">空白にしたい場合：</p>



<pre class="wp-block-code"><code>=WRAPROWS(A1:A10, 3, &quot;&quot;)</code></pre>



<p class="wp-block-paragraph">0で埋めたい場合：</p>



<pre class="wp-block-code"><code>=WRAPROWS(A1:A10, 3, 0)</code></pre>



<p class="wp-block-paragraph">端数が出る可能性があるときは、最初からpad_withを指定しておくと安心ですよ。</p>



<h3 class="wp-block-heading"><span id="toc25">#VALUE! エラー：2次元配列を渡した場合</span></h3>



<p class="wp-block-paragraph">vectorに2次元範囲（複数行×複数列）を渡すと #VALUE! になります。</p>



<pre class="wp-block-code"><code>' NG: 2次元配列を直接渡す
=WRAPROWS(A1:C5, 4)  ' → #VALUE!

' OK: TOROWで1次元化してから渡す
=WRAPROWS(TOROW(A1:C5), 4)</code></pre>



<p class="wp-block-paragraph">vectorに渡しているセル範囲が2次元になっていないか確認してみてください。</p>



<h3 class="wp-block-heading"><span id="toc26">#NUM! エラー：wrap_countの値が不正</span></h3>



<p class="wp-block-paragraph">wrap_countに0以下の値を指定すると #NUM! になります。</p>



<pre class="wp-block-code"><code>=WRAPROWS(A1:A12, 0)   ' → #NUM!
=WRAPROWS(A1:A12, -1)  ' → #NUM!</code></pre>



<p class="wp-block-paragraph">1以上の整数を指定してください。<br>セル参照でwrap_countを指定している場合は、そのセルの値を確認してみてください。</p>



<h3 class="wp-block-heading"><span id="toc27">#REF! エラー：スピル先に値が入っている</span></h3>



<p class="wp-block-paragraph">WRAPROWS関数はスピルを使って結果を複数セルに展開します。<br>出力先の範囲に他のデータが入っていると、#REF! エラーになります。</p>



<p class="wp-block-paragraph">出力先となるセル範囲を空にしてから、数式を入力し直してください。<br>スピルに必要な範囲が広い場合は、周囲のデータを別の場所に移動してみてください。</p>



<h2 class="wp-block-heading"><span id="toc28">よくある質問（WRAPROWS関数）</span></h2>



<h3 class="wp-block-heading"><span id="toc29">Q1. WRAPROWS関数を使うとき、元データを変更したら自動で更新されますか？</span></h3>



<p class="wp-block-paragraph">はい、自動で更新されます。WRAPROWS関数はスピル対応の動的配列関数なので、vectorに指定した範囲のデータが変わると、出力も自動で再計算されます。</p>



<p class="wp-block-paragraph">ただし、vectorに渡す範囲が固定（例: A1:A12）の場合、データが増えても自動で範囲は広がりません。データ件数が変動する場合は、<code>A1:A1000</code> のように余裕を持った範囲を指定するか、テーブル機能を使って範囲を動的にするのがおすすめです。</p>



<h3 class="wp-block-heading"><span id="toc30">Q2. WRAPROWS関数で作った配列の特定のセルを参照するには？</span></h3>



<p class="wp-block-paragraph">スピルで出力された配列の特定セルは、<code>#</code>（スピル演算子）を使って参照できます。</p>



<p class="wp-block-paragraph">たとえば数式がセルC1に入っている場合、出力配列の全体を参照するには <code>C1#</code> と書きます。特定の行・列を取り出したい場合は<a href="https://mashukabu.com/excel-function-howto-use-index/">INDEX関数</a>と組み合わせましょう。</p>



<pre class="wp-block-code"><code>=INDEX(C1#, 2, 3)  → 出力配列の2行目・3列目の値を取得</code></pre>



<p class="wp-block-paragraph">スピルの結果を別の関数の入力に使うときも、この <code>セル番地#</code> 形式が便利ですよ。</p>



<h3 class="wp-block-heading"><span id="toc31">Q3. Microsoft 365を使っていない場合、同じことを実現するには？</span></h3>



<p class="wp-block-paragraph">Excel 2021以前では、INDEX関数とMOD関数・INT関数の組み合わせで似た処理ができます。ただし数式が複雑になります。</p>



<pre class="wp-block-code"><code>=IFERROR(INDEX($A$1:$A$12, (ROW(A1)-1)*4+COLUMN(A1)), &quot;&quot;)</code></pre>



<p class="wp-block-paragraph">この数式を結果を表示したい範囲（例: 3行×4列）にコピーすることで、WRAPROWSと近い出力を作れます。ROW関数で行番号、COLUMN関数で列番号を使ってインデックスを計算する仕組みです。</p>



<p class="wp-block-paragraph">更新のたびに手動でコピーし直す必要があるため、Microsoft 365が使える環境ならWRAPROWS関数を使うほうが圧倒的に楽です。</p>



<h2 class="wp-block-heading"><span id="toc32">まとめ：WRAPROWS関数でリスト整形を自動化しよう</span></h2>



<p class="wp-block-paragraph">この記事の要点を整理します。</p>



<figure class="wp-block-table"><table><thead><tr><th>ポイント</th><th>内容</th></tr></thead><tbody><tr><td>できること</td><td>1次元リストを行方向に折り返して2次元配列に変換</td></tr><tr><td>構文</td><td>=WRAPROWS(vector, wrap_count, [pad_with])</td></tr><tr><td>対応環境</td><td>Microsoft 365 / Excel 2024以降のみ</td></tr><tr><td>WRAPCOLSとの違い</td><td>横長配列（WRAPROWS）vs 縦長配列（WRAPCOLS）</td></tr><tr><td>主なエラー</td><td>#N/A / #VALUE! / #NUM! / #REF!</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">WRAPROWS関数を使えば、手作業で並べ替えていたリストが数式1つで自動化できます。<br>データが増えても更新不要なので、メンテナンスの手間もなくなりますよ。</p>



<p class="wp-block-paragraph">ぜひ実務で試してみてください。</p>



<h3 class="wp-block-heading"><span id="toc33">関連関数</span></h3>



<p class="wp-block-paragraph">配列操作の関連記事もあわせてどうぞ。</p>



<ul class="wp-block-list"><li><a href="https://biz-tactics.net/excel-wrapcols-function">ExcelのWRAPCOLS関数の使い方</a>（列方向に折り返す対の関数）</li><li><a href="https://biz-tactics.net/excel-function-howto-use-tocol">ExcelのTOCOL関数の使い方</a>（2次元配列を縦1列に変換）</li><li><a href="https://biz-tactics.net/excel-function-howto-use-torow">ExcelのTOROW関数の使い方</a>（2次元配列を横1行に変換）</li><li><a href="https://biz-tactics.net/excel-function-howto-use-sequence">ExcelのSEQUENCE関数の使い方</a>（連番を自動生成）</li><li><a href="https://biz-tactics.net/excel-function-howto-use-hstack">ExcelのHSTACK関数の使い方</a>（配列を横方向に結合）</li><li><a href="https://biz-tactics.net/excel-function-howto-use-vstack">ExcelのVSTACK関数の使い方</a>（配列を縦方向に結合）</li><li><a href="https://biz-tactics.net/excel-function-howto-use-choosecols">ExcelのCHOOSECOLS関数の使い方</a>（指定列を抽出）</li><li><a href="https://biz-tactics.net/excel-function-howto-use-chooserows">ExcelのCHOOSEROWS関数の使い方</a>（指定行を抽出）</li><li><a href="https://biz-tactics.net/excel-function-howto-use-take">ExcelのTAKE関数の使い方</a>（先頭・末尾を抽出）</li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-wraprows-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのTRIMRANGE関数の使い方｜配列の端の空白を除去する</title>
		<link>https://mashukabu.com/excel-trimrange-function/</link>
					<comments>https://mashukabu.com/excel-trimrange-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sun, 12 Apr 2026 16:09:10 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[Excel中級]]></category>
		<category><![CDATA[Microsoft 365]]></category>
		<category><![CDATA[TRIMRANGE関数]]></category>
		<category><![CDATA[スピル]]></category>
		<category><![CDATA[動的配列]]></category>
		<category><![CDATA[配列関数]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=5920</guid>

					<description><![CDATA[ExcelのTRIMRANGE関数の使い方を丁寧に解説。配列・セル範囲の端にある空白行・空白列を除去する構文・引数・トリミング参照演算子・実務ユースケース4選・関連関数を紹介。Microsoft 365専用。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「データ範囲の端に空白行・空白列が混じっていて、集計や数式がうまく回らない」──そんな場面、ありませんか？</p>



<p class="wp-block-paragraph">社外システムから貼り付けたデータや、フィルターを外したあとに残る空白行・空白列は、SUMやCOUNTA、FILTER関数の結果にズレを生む原因になります。手作業で「Ctrl+End」を押して末尾を確認しながら不要な行を消すのも面倒ですし、データが追加されるたびに同じ作業を繰り返すのも非効率です。</p>



<p class="wp-block-paragraph">ExcelのTRIMRANGE関数を使えば、配列やセル範囲の「端」にある空白行・空白列を数式1つで自動的に除去できます。元データが変わっても再計算で追従してくれるので、メンテナンスフリーな集計フローが組めますよ。</p>



<p class="wp-block-paragraph">この記事では、TRIMRANGE関数の構文・引数の細かな挙動・実務ユースケース・関連関数との使い分けまで、はじめてでも迷わないように解説します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-3" checked><label class="toc-title" for="toc-checkbox-3">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">TRIMRANGE関数とは？「端の空白」だけを取り除く配列関数</a><ol><li><a href="#toc2" tabindex="0">「空白」と判定される条件</a></li><li><a href="#toc3" tabindex="0">Microsoft 365 / Excel 2024以降のみ使用可能</a></li><li><a href="#toc4" tabindex="0">Excel 2021以前で使えない場合の代替手段</a></li></ol></li><li><a href="#toc5" tabindex="0">TRIMRANGE関数の書き方（構文と引数）</a><ol><li><a href="#toc6" tabindex="0">基本構文</a></li><li><a href="#toc7" tabindex="0">引数の詳細</a></li><li><a href="#toc8" tabindex="0">第1引数 array（必須）：空白を除去する対象</a></li><li><a href="#toc9" tabindex="0">第2引数 rows_trim（省略可）：行の除去方向</a></li><li><a href="#toc10" tabindex="0">第3引数 cols_trim（省略可）：列の除去方向</a></li><li><a href="#toc11" tabindex="0">簡略記法：トリミング参照演算子（.）</a></li></ol></li><li><a href="#toc12" tabindex="0">基本的な使い方：端の空白を除去する</a><ol><li><a href="#toc13" tabindex="0">上下左右すべての端を除去する例</a></li><li><a href="#toc14" tabindex="0">行方向のみ除去する例</a></li><li><a href="#toc15" tabindex="0">下端のみ除去する例（ログ追記用）</a></li><li><a href="#toc16" tabindex="0">上端のみ除去する例（インポート時の空白行対策）</a></li></ol></li><li><a href="#toc17" tabindex="0">実務ユースケース4選</a><ol><li><a href="#toc18" tabindex="0">ユースケース①：貼り付けデータの空白行を自動クリーンアップ</a></li><li><a href="#toc19" tabindex="0">ユースケース②：WRAPROWS / WRAPCOLS と組み合わせて整形精度を上げる</a></li><li><a href="#toc20" tabindex="0">ユースケース③：FILTER 関数と組み合わせた空白除去</a></li><li><a href="#toc21" tabindex="0">ユースケース④：動的な集計範囲を作って SUMIFS にそのまま渡す</a></li></ol></li><li><a href="#toc22" tabindex="0">関連関数との使い分け</a><ol><li><a href="#toc23" tabindex="0">TRIM関数との違い</a></li><li><a href="#toc24" tabindex="0">FILTER関数との違い</a></li><li><a href="#toc25" tabindex="0">TAKE / DROP との違い</a></li></ol></li><li><a href="#toc26" tabindex="0">エラーの原因と対処法まとめ</a><ol><li><a href="#toc27" tabindex="0">rows_trim / cols_trim の値が不正な場合</a></li><li><a href="#toc28" tabindex="0">スピル先にデータがある場合（#SPILL!）</a></li><li><a href="#toc29" tabindex="0">古いバージョンで開いたときの #NAME?</a></li><li><a href="#toc30" tabindex="0">空白でないように見えて空白扱いされない場合</a></li></ol></li><li><a href="#toc31" tabindex="0">まとめ：TRIMRANGE関数で配列の端の空白をすっきり除去しよう</a><ol><li><a href="#toc32" tabindex="0">関連関数</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">TRIMRANGE関数とは？「端の空白」だけを取り除く配列関数</span></h2>



<p class="wp-block-paragraph">TRIMRANGE関数は、配列またはセル範囲の「端にある空白行・空白列」を除去した配列を返す関数です。ここでいう「端」とは、配列の上端・下端・左端・右端の4方向のこと。<strong>中間にある空白行・空白列は除去されません</strong>ので、まずこの仕様を押さえておきましょう。</p>



<p class="wp-block-paragraph">読み方は「トリムレンジ」です。&#8221;TRIM&#8221;（切り取る・除去する）と &#8220;RANGE&#8221;（範囲）を組み合わせた名前で、文字列のスペースを除去するTRIM関数とは別物です。</p>



<p class="wp-block-paragraph">たとえば、A1:C6 の範囲に6行のデータがあり、1行目と6行目が全列空白だとします。<code>=TRIMRANGE(A1:C6)</code> と入力すると、空白の1行目と6行目を除いた B2:C5 相当の配列（中身は元データ）が返されます。元の範囲の空白が増減したり、データが下方向に伸びたりしても、TRIMRANGE関数が自動で調整してくれます。</p>



<h3 class="wp-block-heading"><span id="toc2">「空白」と判定される条件</span></h3>



<p class="wp-block-paragraph">TRIMRANGE関数が「空白行・空白列」と判定するのは、その行（または列）に<strong>入力済みの値が1つもない</strong>ケースです。次のようなセルは「空白ではない」とみなされるので注意してください。</p>



<ul class="wp-block-list"><li>空文字 <code>""</code> が数式で出力されているセル</li><li>スペース1文字や全角スペースが入っているセル</li><li>0 が入っているセル</li></ul>



<p class="wp-block-paragraph">たとえばIF関数で <code>=IF(A1="", "", A1)</code> のように空文字を返している場合、見た目は空白でもTRIMRANGE関数は「値あり」と判定して残します。FILTER関数の結果に空文字が混ざるケースでも同様で、想定どおり除去されないときは「本当に空白か」を Ctrl+→ や Ctrl+↓ で確認してみてください。</p>



<h3 class="wp-block-heading"><span id="toc3">Microsoft 365 / Excel 2024以降のみ使用可能</span></h3>



<p class="wp-block-paragraph">TRIMRANGE関数は、以下の環境でのみ動作します。</p>



<figure class="wp-block-table"><table><thead><tr><th>環境</th><th>対応</th></tr></thead><tbody><tr><td>Microsoft 365（Windows / Mac / Web）</td><td>○</td></tr><tr><td>Excel 2024（Windows / Mac）</td><td>○</td></tr><tr><td>Excel 2021</td><td>×</td></tr><tr><td>Excel 2019 / 2016</td><td>×</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">スピル（数式の結果が複数セルに自動展開される機能）に対応した環境が必要です。Microsoft 365 であっても、更新チャネルが「半期チャネル」など古いブランチだと未配信のことがあるので、<code>=ISFORMULA(TRIMRANGE)</code> や数式オートコンプリートで関数名が候補に出るかを確認するのが手っ取り早い方法です。</p>



<h3 class="wp-block-heading"><span id="toc4">Excel 2021以前で使えない場合の代替手段</span></h3>



<p class="wp-block-paragraph">Excel 2021以前では、TRIMRANGE関数は使えません。代わりに、次のような組み合わせで近い処理を再現できます。</p>



<pre class="wp-block-code"><code>' 末尾の空白行を除去（FILTER + 行が全部空白でないセル）
=FILTER(A1:C100, (A1:A100&lt;&gt;&quot;&quot;)+(B1:B100&lt;&gt;&quot;&quot;)+(C1:C100&lt;&gt;&quot;&quot;)&gt;0)</code></pre>



<p class="wp-block-paragraph">FILTER関数（Excel 2021以降で利用可能）で「いずれかの列に値がある行」だけを抽出すれば、中間と端の両方の空白行を除けます。さらに古いExcel 2019以前ではOFFSET+COUNTAで動的範囲を作る方法もありますが、数式が複雑になりがちなので、可能であれば Microsoft 365 への移行を検討してみてください。</p>



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



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



<pre class="wp-block-code"><code>=TRIMRANGE(array, [rows_trim], [cols_trim])</code></pre>



<p class="wp-block-paragraph">引数は3つで、2番目と3番目は省略できます。両方とも省略した <code>=TRIMRANGE(A1:C10)</code> の形が最も使う頻度の高い書き方です。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/省略可</th><th>説明</th></tr></thead><tbody><tr><td>array</td><td>必須</td><td>空白を除去する配列またはセル参照</td></tr><tr><td>rows_trim</td><td>省略可</td><td>行方向の除去方法。0〜3で指定（デフォルト: 3）</td></tr><tr><td>cols_trim</td><td>省略可</td><td>列方向の除去方法。0〜3で指定（デフォルト: 3）</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc8">第1引数 array（必須）：空白を除去する対象</span></h3>



<p class="wp-block-paragraph">array には、空白を除去したい配列やセル範囲を指定します。1次元配列（1行または1列）でも、2次元配列（複数行×複数列）でも使えます。セル範囲だけでなく、<code>{1;2;;;5}</code> のような配列定数や、FILTER・CHOOSECOLS などの結果配列を直接渡すこともできます。</p>



<h3 class="wp-block-heading"><span id="toc9">第2引数 rows_trim（省略可）：行の除去方向</span></h3>



<p class="wp-block-paragraph">rows_trim には、行方向でどの端の空白を除去するかを指定します。</p>



<figure class="wp-block-table"><table><thead><tr><th>値</th><th>動作</th></tr></thead><tbody><tr><td>0</td><td>行方向の空白を除去しない</td></tr><tr><td>1</td><td>先頭（上端）の空白行のみ除去</td></tr><tr><td>2</td><td>末尾（下端）の空白行のみ除去</td></tr><tr><td>3</td><td>先頭と末尾の両方の空白行を除去（デフォルト）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">省略した場合は 3（両端を除去）になります。「末尾の余白だけ削りたい」「上端の見出し前の余白だけ削りたい」というシーンでは、2 や 1 を明示的に指定します。</p>



<h3 class="wp-block-heading"><span id="toc10">第3引数 cols_trim（省略可）：列の除去方向</span></h3>



<p class="wp-block-paragraph">cols_trim には、列方向でどの端の空白を除去するかを指定します。</p>



<figure class="wp-block-table"><table><thead><tr><th>値</th><th>動作</th></tr></thead><tbody><tr><td>0</td><td>列方向の空白を除去しない</td></tr><tr><td>1</td><td>先頭（左端）の空白列のみ除去</td></tr><tr><td>2</td><td>末尾（右端）の空白列のみ除去</td></tr><tr><td>3</td><td>先頭と末尾の両方の空白列を除去（デフォルト）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">省略した場合は 3（両端を除去）になります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>rows_trim と cols_trim を両方省略すると、<code>=TRIMRANGE(array)</code> という最もシンプルな形になります。この場合、上下左右の端の空白行・空白列がすべて除去されます。引数を覚えるのが面倒なときは「とりあえず省略形」で十分なケースが多いです。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc11">簡略記法：トリミング参照演算子（.）</span></h3>



<p class="wp-block-paragraph">Microsoft 365 では、TRIMRANGE関数の省略形として<strong>トリミング参照演算子</strong>（ピリオド <code>.</code>）が用意されています。範囲指定の <code>:</code> の前後にピリオドを置くだけで、対応する方向の空白を除去できます。</p>



<figure class="wp-block-table"><table><thead><tr><th>記法</th><th>等価な数式</th><th>動作</th></tr></thead><tbody><tr><td><code>A1:.C100</code></td><td><code>=TRIMRANGE(A1:C100, 2, 2)</code></td><td>下端・右端の空白を除去</td></tr><tr><td><code>A1.:C100</code></td><td><code>=TRIMRANGE(A1:C100, 1, 1)</code></td><td>上端・左端の空白を除去</td></tr><tr><td><code>A1.:.C100</code></td><td><code>=TRIMRANGE(A1:C100)</code></td><td>上下左右すべての空白を除去</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">たとえば <code>=SUM(A1:.A1000)</code> と書けば、A列に1000行の余裕を持たせつつ、実際に値が入っている範囲だけを合計してくれます。動的に伸びるテーブルに対する「縦に長い予約範囲」と組み合わせるとシンプルに書けるので、覚えておくと便利な書き方です。</p>



<h2 class="wp-block-heading"><span id="toc12">基本的な使い方：端の空白を除去する</span></h2>



<h3 class="wp-block-heading"><span id="toc13">上下左右すべての端を除去する例</span></h3>



<p class="wp-block-paragraph">A1:C6 の範囲に以下のようなデータがあるとします。1行目と6行目が空白行、A列がすべて空白列です。</p>



<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>（空白）</td><td>（空白）</td><td>（空白）</td></tr><tr><td>2行</td><td>（空白）</td><td>商品名</td><td>価格</td></tr><tr><td>3行</td><td>（空白）</td><td>りんご</td><td>150</td></tr><tr><td>4行</td><td>（空白）</td><td>みかん</td><td>80</td></tr><tr><td>5行</td><td>（空白）</td><td>ぶどう</td><td>300</td></tr><tr><td>6行</td><td>（空白）</td><td>（空白）</td><td>（空白）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">セル E1 に次の数式を入力します。</p>



<pre class="wp-block-code"><code>=TRIMRANGE(A1:C6)</code></pre>



<p class="wp-block-paragraph">結果として、空白の1行目・6行目・A列が除去され、B2:C5 相当のデータが返されます。</p>



<figure class="wp-block-table"><table><thead><tr><th>商品名</th><th>価格</th></tr></thead><tbody><tr><td>りんご</td><td>150</td></tr><tr><td>みかん</td><td>80</td></tr><tr><td>ぶどう</td><td>300</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">元の A1:C6 の空白が変わっても、TRIMRANGE関数が自動で調整してくれます。データが下に1行追加されれば結果も1行増え、空白行が増えれば自動でその分を切り詰めます。</p>



<h3 class="wp-block-heading"><span id="toc14">行方向のみ除去する例</span></h3>



<p class="wp-block-paragraph">列方向の空白は除去せず、行方向だけ除去したい場合は cols_trim=0 を指定します。</p>



<pre class="wp-block-code"><code>=TRIMRANGE(A1:C6, 3, 0)</code></pre>



<p class="wp-block-paragraph">上下の空白行が除去されますが、左端の空白列（A列）は残ります。「列構造はテンプレートとして固定したいが、行は伸縮させたい」というケースで使う形です。</p>



<h3 class="wp-block-heading"><span id="toc15">下端のみ除去する例（ログ追記用）</span></h3>



<p class="wp-block-paragraph">追記形式のログデータで、下端に余分な空白行が積み上がっている場合などは rows_trim=2 が便利です。</p>



<pre class="wp-block-code"><code>=TRIMRANGE(A1:C100, 2, 0)</code></pre>



<p class="wp-block-paragraph">A1:C100 の範囲のうち、下端の空白行のみ除去します。上端のヘッダー行や A〜C 列の構造は変更しません。<code>=COUNTA(TRIMRANGE(A1:C100, 2, 0))</code> のように COUNTA と組み合わせれば「実データだけの件数」を取得できます。</p>



<h3 class="wp-block-heading"><span id="toc16">上端のみ除去する例（インポート時の空白行対策）</span></h3>



<p class="wp-block-paragraph">CSVをインポートしたときに、ファイル先頭にメタ情報の空白行が入ってしまうケースがあります。そのときは rows_trim=1 が活躍します。</p>



<pre class="wp-block-code"><code>=TRIMRANGE(A1:C200, 1, 0)</code></pre>



<p class="wp-block-paragraph">先頭の空白行だけを除き、末尾の空白行はそのまま残します。下端を残しておけば、その後に追記したデータが自然に取り込まれる構造になります。</p>



<h2 class="wp-block-heading"><span id="toc17">実務ユースケース4選</span></h2>



<h3 class="wp-block-heading"><span id="toc18">ユースケース①：貼り付けデータの空白行を自動クリーンアップ</span></h3>



<p class="wp-block-paragraph">社外システムからコピペしたデータの先頭や末尾に、余分な空白行が入ってしまうことがあります。A1:D50 の範囲に貼り付けたデータがあり、先頭3行と末尾5行が空白だとします。</p>



<pre class="wp-block-code"><code>=TRIMRANGE(A1:D50)</code></pre>



<p class="wp-block-paragraph">空白行が自動で除去されたクリーンなデータが返されます。この数式を一度別シートに用意しておき、<code>=SUM(クリーン!B:B)</code> のように参照すれば、貼り替えのたびに集計ロジックを直す必要がなくなります。<strong>「貼り付け面」と「集計面」を分ける</strong>のがメンテナンス性を上げるコツです。</p>



<h3 class="wp-block-heading"><span id="toc19">ユースケース②：WRAPROWS / WRAPCOLS と組み合わせて整形精度を上げる</span></h3>



<p class="wp-block-paragraph">データの端に空白がある状態で WRAPROWS や WRAPCOLS を使うと、空白セルも折り返し対象に含まれてしまい、結果配列に意図しない空白が混ざります。先に TRIMRANGE で空白を除去しておくと、折り返し後の配列がきれいになります。</p>



<pre class="wp-block-code"><code>=WRAPROWS(TRIMRANGE(A1:A20), 4, &quot;&quot;)</code></pre>



<p class="wp-block-paragraph">A1:A20 のうち、先頭・末尾の空白を除去してから4列で折り返します。リスト形式のデータを「印刷向けのグリッド」に変換するときによく使う組み合わせです。</p>



<p class="wp-block-paragraph">WRAPROWS の詳細は <a href="https://mashukabu.com/excel-wraprows/">ExcelのWRAPROWS関数の使い方</a> を参照してみてください。WRAPCOLS の詳細は <a href="https://mashukabu.com/excel-wrapcols/">ExcelのWRAPCOLS関数の使い方</a> を参照してみてください。</p>



<h3 class="wp-block-heading"><span id="toc20">ユースケース③：FILTER 関数と組み合わせた空白除去</span></h3>



<p class="wp-block-paragraph">FILTER関数で条件抽出したあと、結果の先頭・末尾に空白行が残ることがあります。TRIMRANGE でラップすると、抽出結果の空白を除去できます。</p>



<pre class="wp-block-code"><code>=TRIMRANGE(FILTER(A2:C20, B2:B20=&quot;東京&quot;))</code></pre>



<p class="wp-block-paragraph">B列が「東京」の行を抽出し、結果の端の空白を除去します。データが変わっても数式が自動で調整されますよ。条件に合致する行がゼロのときは <code>#CALC!</code> エラーになるので、IFERROR や <code>FILTER(..., ..., "該当なし")</code> の第3引数で逃しておくとさらに堅牢になります。</p>



<h3 class="wp-block-heading"><span id="toc21">ユースケース④：動的な集計範囲を作って SUMIFS にそのまま渡す</span></h3>



<p class="wp-block-paragraph">トリミング参照演算子（<code>.</code>）と SUMIFS を組み合わせると、「データが何行追加されても合計が崩れない」テンプレートが簡単に作れます。</p>



<pre class="wp-block-code"><code>=SUMIFS(C2:.C10000, A2:.A10000, &quot;2026/05&quot;, B2:.B10000, &quot;東京&quot;)</code></pre>



<p class="wp-block-paragraph">C列の末尾までを自動で詰めて合計するので、最大1万行までの伸び代を予約しておきながらも、計算対象は実データ部分だけに保てます。<code>OFFSET</code> で動的範囲を作る古い手法に比べて、ボラタイル関数を使わない分パフォーマンスにも優しい書き方です。</p>



<h2 class="wp-block-heading"><span id="toc22">関連関数との使い分け</span></h2>



<h3 class="wp-block-heading"><span id="toc23">TRIM関数との違い</span></h3>



<p class="wp-block-paragraph">「TRIM」という名前の関数は別にも存在します。混同しないようにしておきましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>対象</th><th>動作</th></tr></thead><tbody><tr><td>TRIM（テキスト関数）</td><td>文字列</td><td>文字列の先頭・末尾・連続スペースを除去</td></tr><tr><td>TRIMRANGE</td><td>配列・セル範囲</td><td>配列の端にある空白行・空白列を除去</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">TRIM関数は文字列のスペースを除去する関数で、配列の構造には影響しません。TRIMRANGE関数は配列の行・列の端を整形する関数で、文字列のスペースには影響しません。<strong>両方を組み合わせて、<code>=TRIMRANGE(BYROW(A1:A100, LAMBDA(r, TRIM(r))))</code> のように「端の空白行を消しつつ、各セルの文字列スペースも除去」とすることも可能</strong>です。</p>



<h3 class="wp-block-heading"><span id="toc24">FILTER関数との違い</span></h3>



<p class="wp-block-paragraph">FILTER は条件に一致する行だけを抽出し、TRIMRANGE は端の空白行・列を除去します。</p>



<p class="wp-block-paragraph">「中間の空白行も除去したい」という場合は、TRIMRANGE ではなく FILTER 関数を使います。</p>



<pre class="wp-block-code"><code>' 空でない行だけを抽出（中間の空白行も含めて除去）
=FILTER(A1:C20, A1:A20&lt;&gt;&quot;&quot;)</code></pre>



<p class="wp-block-paragraph">端だけでなく全体から空白行を取り除きたい場合は FILTER 関数の出番です。逆に、テンプレートとしての枠は維持したまま末尾だけ詰めたい場合は TRIMRANGE が向いています。</p>



<h3 class="wp-block-heading"><span id="toc25">TAKE / DROP との違い</span></h3>



<p class="wp-block-paragraph">TAKE は「先頭または末尾から N 行を取り出す」、DROP は「先頭または末尾から N 行を捨てる」関数です。空白かどうかに関わらず、<strong>行数で指定</strong>して切り出します。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>指定方法</th><th>用途</th></tr></thead><tbody><tr><td>TRIMRANGE</td><td>空白かどうかで判定</td><td>「とにかく端の空白を消したい」</td></tr><tr><td>TAKE / DROP</td><td>行数・列数で指定</td><td>「先頭○件だけ欲しい」「ヘッダー1行を捨てたい」</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">「先頭3行は不要な見出しなので捨てる」というような固定行数の処理には DROP の方が向きます。逆に、「下端の余白がデータ量に応じて変わる」シーンでは TRIMRANGE の方が自然です。</p>



<h2 class="wp-block-heading"><span id="toc26">エラーの原因と対処法まとめ</span></h2>



<p class="wp-block-paragraph">TRIMRANGE関数で発生しうるエラーは以下の通りです。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>主な原因</th><th>対処法</th></tr></thead><tbody><tr><td>#VALUE!</td><td>rows_trim / cols_trim に 0〜3 以外の値を指定した</td><td>0〜3 の整数を指定する</td></tr><tr><td>#SPILL!</td><td>スピル先のセルに値が入っている</td><td>出力先の範囲を空にしてから入力し直す</td></tr><tr><td>#NAME?</td><td>TRIMRANGE が未対応の Excel バージョンで使用</td><td>Microsoft 365 / Excel 2024 にアップデートする</td></tr><tr><td>全行・全列が除去される</td><td>対象範囲がすべて空白</td><td>対象範囲にデータが入っているか確認する</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc27">rows_trim / cols_trim の値が不正な場合</span></h3>



<p class="wp-block-paragraph">rows_trim や cols_trim に 0〜3 以外の値（例: 4 や -1）を指定すると #VALUE! になります。</p>



<pre class="wp-block-code"><code>=TRIMRANGE(A1:C6, 4, 0)  ' → #VALUE!（rows_trim は 0〜3 のみ）</code></pre>



<p class="wp-block-paragraph">0・1・2・3 のいずれかを指定してください。「両端を除く」が 3、「端を残す」が 0、と覚えると混乱しません。</p>



<h3 class="wp-block-heading"><span id="toc28">スピル先にデータがある場合（#SPILL!）</span></h3>



<p class="wp-block-paragraph">TRIMRANGE関数はスピルを使って結果を複数セルに展開します。出力先の範囲に他のデータが入っていると、#SPILL! エラーになります。エラーセルにマウスを乗せると「スピル先のセルにデータがあります」と表示されるので、その方向にデータがないかを確認して、出力先の範囲を空にしてから数式を入力し直してください。</p>



<h3 class="wp-block-heading"><span id="toc29">古いバージョンで開いたときの #NAME?</span></h3>



<p class="wp-block-paragraph">Microsoft 365 で作成したファイルを Excel 2019 や 2016 で開くと、TRIMRANGE関数は認識されず #NAME? エラーになります。共有先の環境がわからない場合は、最終結果を「値貼り付け」してから配布するか、FILTER関数ベースの代替式に置き換えることを検討してください。</p>



<h3 class="wp-block-heading"><span id="toc30">空白でないように見えて空白扱いされない場合</span></h3>



<p class="wp-block-paragraph">冒頭でも触れたとおり、空文字 <code>""</code> が出力されているセルは「値あり」と判定されて除去されません。<code>=LET(d, A1:C100, t, TRIMRANGE(IF(d="", "", d)), t)</code> のように一度 IF で実セルの空文字を整理してから渡しても結果は変わらないので、根本的に除去したい場合は FILTER 関数で条件抽出するか、<code>COUNTBLANK</code> + <code>IF</code> で空白判定を切り替えるアプローチに切り替えてみてください。</p>



<h2 class="wp-block-heading"><span id="toc31">まとめ：TRIMRANGE関数で配列の端の空白をすっきり除去しよう</span></h2>



<p class="wp-block-paragraph">この記事の要点を整理します。</p>



<figure class="wp-block-table"><table><thead><tr><th>ポイント</th><th>内容</th></tr></thead><tbody><tr><td>できること</td><td>配列・セル範囲の端にある空白行・空白列を除去</td></tr><tr><td>構文</td><td>=TRIMRANGE(array, [rows_trim], [cols_trim])</td></tr><tr><td>対応環境</td><td>Microsoft 365 / Excel 2024 以降のみ</td></tr><tr><td>rows_trim / cols_trim</td><td>0=除去なし / 1=先頭のみ / 2=末尾のみ / 3=両端（デフォルト）</td></tr><tr><td>簡略記法</td><td>トリミング参照演算子 <code>.</code>（例: <code>A1:.C100</code>）</td></tr><tr><td>TRIM関数との違い</td><td>TRIM は文字列のスペース除去、TRIMRANGE は配列の端の行・列除去</td></tr><tr><td>FILTER関数との違い</td><td>TRIMRANGE は端のみ、FILTER は中間も含めて条件抽出</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">TRIMRANGE関数を使えば、コピペデータの余分な空白行・列を数式1つで自動除去できます。WRAPROWS・WRAPCOLS・FILTER など他の配列関数と組み合わせると、さらに強力なデータ整形フローが組めますよ。</p>



<p class="wp-block-paragraph">「貼り付け面」と「集計面」を分け、TRIMRANGE で常にクリーンなデータを介する設計にしておけば、毎月の更新作業がぐっと軽くなります。ぜひ実務で試してみてください。</p>



<h3 class="wp-block-heading"><span id="toc32">関連関数</span></h3>



<p class="wp-block-paragraph">配列操作の関連記事もあわせてどうぞ。</p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-wraprows/">ExcelのWRAPROWS関数の使い方</a>（1次元配列を行方向に折り返す）</li><li><a href="https://mashukabu.com/excel-wrapcols/">ExcelのWRAPCOLS関数の使い方</a>（1次元配列を列方向に折り返す）</li><li><a href="https://mashukabu.com/excel-function-howto-use-tocol/">ExcelのTOCOL関数の使い方</a>（2次元配列を縦1列に変換）</li><li><a href="https://mashukabu.com/excel-function-howto-use-torow/">ExcelのTOROW関数の使い方</a>（2次元配列を横1行に変換）</li><li><a href="https://mashukabu.com/excel-function-howto-use-sequence/">ExcelのSEQUENCE関数の使い方</a>（連番を自動生成）</li><li><a href="https://mashukabu.com/excel-function-howto-use-hstack/">ExcelのHSTACK関数の使い方</a>（配列を横方向に結合）</li><li><a href="https://mashukabu.com/excel-function-howto-use-vstack/">ExcelのVSTACK関数の使い方</a>（配列を縦方向に結合）</li><li><a href="https://mashukabu.com/excel-function-howto-use-take/">ExcelのTAKE関数の使い方</a>（先頭・末尾を抽出）</li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-trimrange-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのSCAN関数の使い方｜REDUCEとの違いと累計・残高推移への活用法</title>
		<link>https://mashukabu.com/excel-function-howto-use-scan/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-scan/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sun, 12 Apr 2026 15:36:47 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[LAMBDA関数]]></category>
		<category><![CDATA[SCAN関数]]></category>
		<category><![CDATA[累計]]></category>
		<category><![CDATA[配列関数]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=5914</guid>

					<description><![CDATA[ExcelのSCAN関数の使い方を解説。REDUCEとの違い（最終値のみ vs 全ステップを配列で返す）を表で整理し、累計売上・残高推移などの実務活用例をサンプル付きで紹介します。Microsoft 365 / Excel 2024以降対応。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">REDUCE関数で累計を求めようとして、「最終値しか返らない」と困ったことはありませんか。</p>



<p class="wp-block-paragraph">そんなときに使えるのがSCAN関数です。各ステップの計算結果を配列でまとめて返してくれます。</p>



<p class="wp-block-paragraph">この記事では、SCAN関数の構文とREDUCEとの違い、累計売上・残高推移への活用例を解説します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-4" checked><label class="toc-title" for="toc-checkbox-4">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">SCAN関数とは？</a></li><li><a href="#toc2" tabindex="0">SCAN関数の基本構文と引数の意味</a><ol><li><a href="#toc3" tabindex="0">第1引数：初期値</a></li><li><a href="#toc4" tabindex="0">第2引数：配列</a></li><li><a href="#toc5" tabindex="0">第3引数：LAMBDA（アキュムレータ・値・計算式）</a></li></ol></li><li><a href="#toc6" tabindex="0">REDUCEとの違いを比較する</a><ol><li><a href="#toc7" tabindex="0">戻り値の違い（スカラー vs 配列）</a></li><li><a href="#toc8" tabindex="0">どちらを使うべきか？</a></li></ol></li><li><a href="#toc9" tabindex="0">基本例：累計売上を求める</a></li><li><a href="#toc10" tabindex="0">応用例：残高推移を一覧で表示する</a></li><li><a href="#toc11" tabindex="0">よくある間違いと注意点</a><ol><li><a href="#toc12" tabindex="0">初期値を省略するとどうなる？</a></li><li><a href="#toc13" tabindex="0">LAMBDAのパラメータは2つ必要</a></li><li><a href="#toc14" tabindex="0">対応バージョン（Microsoft 365 / Excel 2024以降）</a></li><li><a href="#toc15" tabindex="0">エラー一覧</a></li></ol></li><li><a href="#toc16" tabindex="0">まとめ：SCAN関数はこんな場面で使う</a></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">SCAN関数（読み方：スキャン）は、配列の各要素を順番に処理して累積値を求める関数です。関数名は「SCAN（走査する）」に由来します。</p>



<p class="wp-block-paragraph">一言で言うと「REDUCEの中間結果版」です。</p>



<p class="wp-block-paragraph">REDUCEは処理が終わった後の最終値だけを返します。SCANは各ステップの計算結果をすべて配列で返します。この違いが、2つの関数を使い分けるポイントです。</p>



<p class="wp-block-paragraph"><strong>対応バージョン</strong>: Microsoft 365 / Excel 2024以降</p>



<p class="wp-block-paragraph">Excel 2021ではSCAN関数は使用できません。お使いのバージョンをご確認ください。</p>



<h2 class="wp-block-heading"><span id="toc2">SCAN関数の基本構文と引数の意味</span></h2>



<pre class="wp-block-code"><code>=SCAN(初期値, 配列, LAMBDA(アキュムレータ, 値, 計算式))</code></pre>



<p class="wp-block-paragraph">引数は3つです。順番に確認しましょう。</p>



<h3 class="wp-block-heading"><span id="toc3">第1引数：初期値</span></h3>



<p class="wp-block-paragraph">累積処理の開始値を指定します。</p>



<figure class="wp-block-table"><table><thead><tr><th>用途</th><th>初期値</th></tr></thead><tbody><tr><td>合計・累計</td><td>0</td></tr><tr><td>積（かけ算）</td><td>1</td></tr><tr><td>残高推移</td><td>初期残高（例: 100000）</td></tr><tr><td>文字列連結</td><td>&#8220;&#8221;（空文字）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">省略した場合は0として扱われます。</p>



<h3 class="wp-block-heading"><span id="toc4">第2引数：配列</span></h3>



<p class="wp-block-paragraph">処理対象の配列や範囲を指定します。縦・横どちらの範囲でも指定できます。</p>



<h3 class="wp-block-heading"><span id="toc5">第3引数：LAMBDA（アキュムレータ・値・計算式）</span></h3>



<p class="wp-block-paragraph">LAMBDAには2つのパラメータを指定します。</p>



<ul class="wp-block-list"><li><strong>アキュムレータ（a）</strong>: 前ステップまでの累積値</li><li><strong>値（v）</strong>: 配列の現在の要素</li></ul>



<p class="wp-block-paragraph">この2つを使って、次の累積値を返す計算式を書きます。</p>



<h2 class="wp-block-heading"><span id="toc6">REDUCEとの違いを比較する</span></h2>



<p class="wp-block-paragraph">SCAN関数とREDUCE関数は、構文がほぼ同じです。戻り値の形が違います。</p>



<p class="wp-block-paragraph">詳しくは<a href="https://mashukabu.com/excel-function-howto-use-reduce/">ExcelのREDUCE関数の使い方｜配列を1つの値に集約する方法</a>をご覧ください。</p>



<h3 class="wp-block-heading"><span id="toc7">戻り値の違い（スカラー vs 配列）</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>REDUCE</th><th>SCAN</th></tr></thead><tbody><tr><td>戻り値</td><td>最終値のみ（1セル）</td><td>全ステップの中間値（配列）</td></tr><tr><td>結果サイズ</td><td>単一セル</td><td>入力配列と同じサイズ</td></tr><tr><td>主な用途</td><td>合計・最大値など</td><td>累計・残高推移など</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">たとえば、B2:B6に<code>{10, 20, 30, 40, 50}</code>が入っているとします。</p>



<p class="wp-block-paragraph">REDUCEを使うと結果は<code>150</code>の1セルです。SCANを使うと結果は<code>{10, 30, 60, 100, 150}</code>の5セルです。</p>



<h3 class="wp-block-heading"><span id="toc8">どちらを使うべきか？</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>欲しいもの</th><th>使う関数</th></tr></thead><tbody><tr><td>最終的な合計・集計値</td><td>REDUCE</td></tr><tr><td>各時点の累計・残高推移</td><td>SCAN</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">最終結果だけほしい場合はREDUCEを、途中経過も一覧にしたい場合はSCANを使ってください。</p>



<h2 class="wp-block-heading"><span id="toc9">基本例：累計売上を求める</span></h2>



<p class="wp-block-paragraph">B2:B13に月別の売上が入っているとします。C2セルに以下の数式を入力します。</p>



<pre class="wp-block-code"><code>=SCAN(0, B2:B13, LAMBDA(a, v, a+v))</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>値</th><th>意味</th></tr></thead><tbody><tr><td>初期値</td><td><code>0</code></td><td>累計の開始値（1月末累計 = 1月売上）</td></tr><tr><td>配列</td><td><code>B2:B13</code></td><td>月別売上の範囲</td></tr><tr><td>アキュムレータ <code>a</code></td><td>&#8212;</td><td>前月までの累計</td></tr><tr><td>値 <code>v</code></td><td>&#8212;</td><td>現在月の売上</td></tr><tr><td>計算式</td><td><code>a + v</code></td><td>今月末累計 = 前月累計 + 今月売上</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">結果はC2:C13に自動展開（スピル）されます。</p>



<figure class="wp-block-table"><table><thead><tr><th>月</th><th>売上</th><th>累計売上</th></tr></thead><tbody><tr><td>1月</td><td>100,000</td><td>100,000</td></tr><tr><td>2月</td><td>80,000</td><td>180,000</td></tr><tr><td>3月</td><td>120,000</td><td>300,000</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">各月末時点の累計がひと目でわかる表になります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p><strong>スピルエラーに注意</strong>: 展開先（C2:C13）に別のデータが入っていると<code>#SPILL!</code>エラーになります。展開先を空にしておいてください。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc10">応用例：残高推移を一覧で表示する</span></h2>



<p class="wp-block-paragraph">初期残高を100,000円、入出金データをC2:C10に入力しているとします。D2セルに以下の数式を入力します。</p>



<pre class="wp-block-code"><code>=SCAN(100000, C2:C10, LAMBDA(残高, 取引, 残高+取引))</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>値</th><th>意味</th></tr></thead><tbody><tr><td>初期値</td><td><code>100000</code></td><td>初期残高（円）</td></tr><tr><td>配列</td><td><code>C2:C10</code></td><td>入出金範囲</td></tr><tr><td>アキュムレータ <code>残高</code></td><td>&#8212;</td><td>前時点の残高</td></tr><tr><td>値 <code>取引</code></td><td>&#8212;</td><td>現在の入出金額</td></tr><tr><td>計算式</td><td><code>残高 + 取引</code></td><td>取引後の残高</td></tr></tbody></table></figure>



<figure class="wp-block-table"><table><thead><tr><th>日付</th><th>入出金</th><th>残高</th></tr></thead><tbody><tr><td>4/1</td><td>+50,000</td><td>150,000</td></tr><tr><td>4/3</td><td>-30,000</td><td>120,000</td></tr><tr><td>4/5</td><td>+20,000</td><td>140,000</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p><strong>入力規則</strong>: 入金はプラス値、出金はマイナス値で入力してください。</p></blockquote>



<p class="wp-block-paragraph">LAMBDAのパラメータに<code>残高</code>・<code>取引</code>のような日本語名を使うと、数式の意図が読み取りやすくなります。</p>



<h2 class="wp-block-heading"><span id="toc11">よくある間違いと注意点</span></h2>



<h3 class="wp-block-heading"><span id="toc12">初期値を省略するとどうなる？</span></h3>



<p class="wp-block-paragraph">初期値を省略すると0が使われます。累計や合計では問題ありません。</p>



<p class="wp-block-paragraph">積（かけ算）の場合は要注意です。初期値が0だと最初のステップの結果が0になります。そのため以降の計算もすべて0になります。積を計算するときは必ず<code>1</code>を初期値に指定してください。</p>



<h3 class="wp-block-heading"><span id="toc13">LAMBDAのパラメータは2つ必要</span></h3>



<p class="wp-block-paragraph">LAMBDAに指定するパラメータが1つや3つ以上だと<code>#VALUE!</code>エラーになります。「アキュムレータ」と「値」の2つセットで指定してください。</p>



<pre class="wp-block-code"><code>=SCAN(0, A1:A5, LAMBDA(a, v, a+v))  ' 正しい（パラメータ2つ）
=SCAN(0, A1:A5, LAMBDA(v, v+1))     ' エラー（パラメータ1つ）</code></pre>



<h3 class="wp-block-heading"><span id="toc14">対応バージョン（Microsoft 365 / Excel 2024以降）</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>バージョン</th><th>対応</th></tr></thead><tbody><tr><td>Microsoft 365</td><td>○</td></tr><tr><td>Excel 2024</td><td>○</td></tr><tr><td>Excel 2021</td><td>x</td></tr><tr><td>Excel 2019以前</td><td>x</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Excel 2021ではLAMBDA関数自体は使えます。ただしSCANなどのLAMBDAヘルパー関数は対応していません。</p>



<h3 class="wp-block-heading"><span id="toc15">エラー一覧</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>状況</th><th>エラー</th></tr></thead><tbody><tr><td>LAMBDAのパラメータ数が2以外</td><td><code>#VALUE!</code></td></tr><tr><td>不正なLAMBDAを指定した場合</td><td><code>#VALUE!</code></td></tr><tr><td>展開先に既存データがある場合</td><td><code>#SPILL!</code></td></tr><tr><td>空の配列を渡した場合</td><td><code>#CALC!</code></td></tr></tbody></table></figure>



<h2 class="wp-block-heading"><span id="toc16">まとめ：SCAN関数はこんな場面で使う</span></h2>



<p class="wp-block-paragraph">SCAN関数は配列を累積処理して各ステップの結果を配列で返す関数です。</p>



<figure class="wp-block-table"><table><thead><tr><th>場面</th><th>使う関数</th></tr></thead><tbody><tr><td>最終的な合計だけほしい</td><td>REDUCE</td></tr><tr><td>各時点の累計・残高推移がほしい</td><td>SCAN</td></tr><tr><td>各要素を変換して同サイズで返したい</td><td>MAP</td></tr><tr><td>行ごとに集約したい</td><td>BYROW</td></tr><tr><td>列ごとに集約したい</td><td>BYCOL</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">REDUCE・MAP・BYROW・BYCOLと組み合わせて使うことで、複雑な配列処理も実現できます。</p>



<p class="wp-block-paragraph"><strong>関連記事</strong>:</p>



<ul class="wp-block-list"><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-map/">MAP関数の使い方｜BYROWとの違いと使い分け</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-scan/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのFREQUENCY関数の使い方｜度数分布表を一発で作る方法</title>
		<link>https://mashukabu.com/excel-function-howto-use-frequency/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-frequency/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 04 Apr 2026 09:57:49 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[FREQUENCY]]></category>
		<category><![CDATA[データ分析]]></category>
		<category><![CDATA[ヒストグラム]]></category>
		<category><![CDATA[度数分布]]></category>
		<category><![CDATA[配列関数]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=5802</guid>

					<description><![CDATA[ExcelのFREQUENCY関数の使い方を初心者向けに解説。度数分布表の作り方から、CSE入力とスピル対応の違い、COUNTIFとの比較まで。実務で使える活用例も紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「売上データを1万円刻みで区切って、件数の分布を見たい」。Excelでデータ分析をしていると、こんな場面が出てきますよね。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-countif/">COUNTIF関数</a>で1区間ずつ条件を書く方法もあります。ただ、区間が多いと数式がどんどん増えて手間がかかります。</p>



<p class="wp-block-paragraph">そんなときに便利なのがExcelのFREQUENCY関数です。区間の上限値を指定するだけで、度数分布（データが各区間に何個あるかの集計）を一括で返してくれますよ。</p>



<p class="wp-block-paragraph">この記事では、FREQUENCY関数の基本から実務での活用パターンまで解説します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-5" checked><label class="toc-title" for="toc-checkbox-5">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ExcelのFREQUENCY関数とは？</a><ol><li><a href="#toc2" tabindex="0">構文</a></li><li><a href="#toc3" tabindex="0">引数</a></li><li><a href="#toc4" tabindex="0">戻り値のポイント</a></li><li><a href="#toc5" tabindex="0">境界値の仕様</a></li></ol></li><li><a href="#toc6" tabindex="0">FREQUENCY関数の基本的な使い方</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">バージョン別の入力方法（スピル vs CSE入力）</a><ol><li><a href="#toc10" tabindex="0">Microsoft 365 / Excel 2021以降（スピル対応）</a></li><li><a href="#toc11" tabindex="0">Excel 2019以前（CSE入力が必須）</a></li><li><a href="#toc12" tabindex="0">よくある失敗：先頭セルだけでEnter</a></li></ol></li><li><a href="#toc13" tabindex="0">FREQUENCY関数の実務活用例</a><ol><li><a href="#toc14" tabindex="0">活用例1：売上データの価格帯別集計</a></li><li><a href="#toc15" tabindex="0">活用例2：従業員の年齢分布</a></li><li><a href="#toc16" tabindex="0">活用例3：ヒストグラムの元データ作成</a></li></ol></li><li><a href="#toc17" tabindex="0">FREQUENCY関数とCOUNTIFの使い分け</a></li><li><a href="#toc18" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc19" tabindex="0">結果が1つしか表示されない</a></li><li><a href="#toc20" tabindex="0">すべての結果が0になる</a></li><li><a href="#toc21" tabindex="0">区間の境界値がずれている</a></li></ol></li><li><a href="#toc22" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">FREQUENCY関数は、データが指定した区間ごとに何個あるかを数えて、度数分布表を作る関数です。</p>



<p class="wp-block-paragraph">たとえば、テストの点数データを「0〜59点」「60〜69点」「70〜79点」のように区切って、各区間の人数を一度に出せます。通常の関数は1つのセルに1つの結果を返します。一方、FREQUENCY関数は複数セルにまとめて結果を返す「配列関数」です。</p>



<h3 class="wp-block-heading"><span id="toc2">構文</span></h3>



<pre class="wp-block-code"><code>=FREQUENCY(データ配列, 区間配列)</code></pre>



<h3 class="wp-block-heading"><span id="toc3">引数</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>説明</th></tr></thead><tbody><tr><td>データ配列</td><td>必須</td><td>度数を求めたいデータのセル範囲</td></tr><tr><td>区間配列</td><td>必須</td><td>データをグループ化する区間の上限値</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc4">戻り値のポイント</span></h3>



<p class="wp-block-paragraph">FREQUENCY関数の戻り値は、区間配列の要素数 <strong>+1個</strong> の縦配列です。</p>



<p class="wp-block-paragraph">たとえば区間配列に <code>{60, 70, 80}</code> を指定した場合、結果は4個になります。</p>



<figure class="wp-block-table"><table><thead><tr><th>結果の位置</th><th>意味</th></tr></thead><tbody><tr><td>1番目</td><td>60以下のデータ数</td></tr><tr><td>2番目</td><td>61〜70のデータ数</td></tr><tr><td>3番目</td><td>71〜80のデータ数</td></tr><tr><td>4番目</td><td>81以上のデータ数</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">最後の1個は「最大区間を超えたデータの数」です。出力先のセル数が足りないと結果が欠けるので注意しましょう。</p>



<h3 class="wp-block-heading"><span id="toc5">境界値の仕様</span></h3>



<p class="wp-block-paragraph">FREQUENCY関数は「以下（<=）」で区間を区切ります。</p>



<p class="wp-block-paragraph">区間配列に <code>70</code> を指定すると、70は「70以下」のグループに入ります。「70未満」ではありません。この仕様は変更できません。「未満」で区切りたい場合は<a href="https://mashukabu.com/excel-function-howto-use-countifs/">COUNTIFS関数</a>を使いましょう。</p>



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



<p class="wp-block-paragraph">実際にFREQUENCY関数を使って度数分布表を作ってみましょう。</p>



<h3 class="wp-block-heading"><span id="toc7">サンプルデータ</span></h3>



<p class="wp-block-paragraph">セルA2:A11に、10人分のテストの点数が入っています。</p>



<figure class="wp-block-table"><table><thead><tr><th>A列（点数）</th></tr></thead><tbody><tr><td>45</td></tr><tr><td>62</td></tr><tr><td>78</td></tr><tr><td>55</td></tr><tr><td>83</td></tr><tr><td>71</td></tr><tr><td>90</td></tr><tr><td>68</td></tr><tr><td>52</td></tr><tr><td>74</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">区間の上限値として、セルC2:C5に <code>59, 69, 79, 89</code> を入力しておきます。</p>



<h3 class="wp-block-heading"><span id="toc8">数式の入力手順</span></h3>



<p class="wp-block-paragraph">結果を表示するセルD2を選択し、次の数式を入力します。</p>



<pre class="wp-block-code"><code>=FREQUENCY(A2:A11, C2:C5)</code></pre>



<p class="wp-block-paragraph">結果は5行分（区間4つ + 区間外1つ）に出力されます。</p>



<figure class="wp-block-table"><table><thead><tr><th>区間（C列）</th><th>度数（D列）</th><th>意味</th></tr></thead><tbody><tr><td>59</td><td>3</td><td>59点以下（45, 55, 52）</td></tr><tr><td>69</td><td>2</td><td>60〜69点（62, 68）</td></tr><tr><td>79</td><td>3</td><td>70〜79点（78, 71, 74）</td></tr><tr><td>89</td><td>1</td><td>80〜89点（83）</td></tr><tr><td>（区間外）</td><td>1</td><td>90点以上（90）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">10人分のデータが、5つの区間に振り分けられました。1つの数式で全区間の集計が完了するのがFREQUENCY関数の強みですよ。</p>



<h2 class="wp-block-heading"><span id="toc9">バージョン別の入力方法（スピル vs CSE入力）</span></h2>



<p class="wp-block-paragraph">FREQUENCY関数は配列関数です。Excelのバージョンによって入力方法が異なります。ここが最も注意すべきポイントです。</p>



<h3 class="wp-block-heading"><span id="toc10">Microsoft 365 / Excel 2021以降（スピル対応）</span></h3>



<p class="wp-block-paragraph">スピル（動的配列）に対応しているバージョンでは、操作はシンプルです。先頭セル1つだけを選択して数式を入力し、Enterキーで確定するだけです。</p>



<pre class="wp-block-code"><code>=FREQUENCY(A2:A11, C2:C5)</code></pre>



<p class="wp-block-paragraph">結果は自動的に下方向のセルへ展開されます。数式バーには波括弧（<code>{}</code>）は表示されません。</p>



<h3 class="wp-block-heading"><span id="toc11">Excel 2019以前（CSE入力が必須）</span></h3>



<p class="wp-block-paragraph">スピルに対応していないバージョンでは、次の手順で入力します。</p>



<ol class="wp-block-list"><li><strong>出力先のセル範囲を事前に選択する</strong>（区間配列+1行分）。上の例ならD2:D6の5セルを選択</li><li>数式 <code>=FREQUENCY(A2:A11, C2:C5)</code> を入力する</li><li><strong>Ctrl + Shift + Enter</strong> で確定する（Enterだけでは不可）</li></ol>



<p class="wp-block-paragraph">正しく入力できると、数式バーに <code>{=FREQUENCY(A2:A11, C2:C5)}</code> と波括弧が自動で付きます。</p>



<h3 class="wp-block-heading"><span id="toc12">よくある失敗：先頭セルだけでEnter</span></h3>



<p class="wp-block-paragraph">Excel 2019以前で先頭セル1つだけを選択してEnterを押すと、最初の区間の度数だけが表示されます。残りの区間は空のままです。</p>



<p class="wp-block-paragraph">「数式は合っているのに結果が1つしか出ない」。そんなときはCSE入力ができていない可能性が高いです。出力先のセル範囲を選択してからCtrl+Shift+Enterをお試しくださいね。</p>



<h2 class="wp-block-heading"><span id="toc13">FREQUENCY関数の実務活用例</span></h2>



<p class="wp-block-paragraph">基本がわかったところで、実務でよく使うパターンを紹介します。</p>



<h3 class="wp-block-heading"><span id="toc14">活用例1：売上データの価格帯別集計</span></h3>



<p class="wp-block-paragraph">商品の売上データ（例：A2:A50に売上金額）を価格帯ごとに集計する場面です。</p>



<p class="wp-block-paragraph">区間配列に <code>{10000, 30000, 50000, 100000}</code> を設定します。</p>



<pre class="wp-block-code"><code>=FREQUENCY(A2:A50, {10000, 30000, 50000, 100000})</code></pre>



<p class="wp-block-paragraph">結果は5つの区間に分かれます。</p>



<figure class="wp-block-table"><table><thead><tr><th>区間</th><th>意味</th></tr></thead><tbody><tr><td>1万円以下</td><td>低価格帯</td></tr><tr><td>1万1円〜3万円</td><td>中価格帯</td></tr><tr><td>3万1円〜5万円</td><td>高価格帯</td></tr><tr><td>5万1円〜10万円</td><td>プレミアム帯</td></tr><tr><td>10万円超</td><td>超高額帯</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">価格帯ごとの販売件数がひと目でわかります。商品戦略の検討に役立ちますよ。</p>



<h3 class="wp-block-heading"><span id="toc15">活用例2：従業員の年齢分布</span></h3>



<p class="wp-block-paragraph">人事データから年齢の分布を把握する場面です。区間配列に <code>{29, 39, 49, 59}</code> を設定すると、年代別の人数が出ます。</p>



<pre class="wp-block-code"><code>=FREQUENCY(B2:B100, {29, 39, 49, 59})</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>区間</th><th>意味</th></tr></thead><tbody><tr><td>29以下</td><td>20代以下</td></tr><tr><td>30〜39</td><td>30代</td></tr><tr><td>40〜49</td><td>40代</td></tr><tr><td>50〜59</td><td>50代</td></tr><tr><td>60以上</td><td>60代以上</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">採用計画や人員配置の判断材料として活用できます。</p>



<h3 class="wp-block-heading"><span id="toc16">活用例3：ヒストグラムの元データ作成</span></h3>



<p class="wp-block-paragraph">Excelでヒストグラム（度数分布を棒グラフで表したもの）を作りたいときの下準備にも使えます。</p>



<ol class="wp-block-list"><li>FREQUENCY関数で度数分布表を作成する</li><li>区間ラベルと度数をセットで選択する</li><li>挿入タブから「棒グラフ」を選ぶ</li></ol>



<p class="wp-block-paragraph">FREQUENCY関数で集計した結果をそのままグラフの元データに使えます。手作業で集計する手間が省けますよ。</p>



<h2 class="wp-block-heading"><span id="toc17">FREQUENCY関数とCOUNTIFの使い分け</span></h2>



<p class="wp-block-paragraph">度数を数えるだけなら<a href="https://mashukabu.com/excel-function-howto-use-countif/">COUNTIF関数</a>でもできます。どちらを使うべきか、比較してみましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>FREQUENCY</th><th>COUNTIF / COUNTIFS</th></tr></thead><tbody><tr><td>入力の手間</td><td>1つの数式で全区間を一括出力</td><td>区間ごとに個別に数式を入力</td></tr><tr><td>境界値の柔軟性</td><td>「以下」固定</td><td>「未満」「超」「以上」など自由に設定可</td></tr><tr><td>複数条件</td><td>対応不可</td><td><a href="https://mashukabu.com/excel-function-howto-use-countifs/">COUNTIFS関数</a>で対応可</td></tr><tr><td>旧バージョン対応</td><td>CSE入力が必要</td><td>すべてのバージョンで同じ操作</td></tr><tr><td>連続区間の効率</td><td>高い（一括）</td><td>低い（1つずつ）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>FREQUENCY関数が向いているケース</strong>:</p>



<ul class="wp-block-list"><li>区間が多い度数分布表を素早く作りたいとき</li><li>等間隔の区間でデータの分布を把握したいとき</li></ul>



<p class="wp-block-paragraph"><strong>COUNTIF関数が向いているケース</strong>:</p>



<ul class="wp-block-list"><li>「80点未満」のように「未満」で区切りたいとき</li><li>複数条件（年齢かつ部署など）で絞り込みたいとき</li><li>Excel 2019以前でCSE入力を避けたいとき</li></ul>



<p class="wp-block-paragraph">迷ったら、シンプルな度数分布ならFREQUENCY関数、条件が複雑ならCOUNTIFSと覚えておくとよいですよ。</p>



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



<p class="wp-block-paragraph">FREQUENCY関数はエラーが出にくい関数です。ただし、意図しない結果になるケースがあるので確認しておきましょう。</p>



<h3 class="wp-block-heading"><span id="toc19">結果が1つしか表示されない</span></h3>



<p class="wp-block-paragraph">Excel 2019以前で、先頭セルだけを選択してEnterで確定した場合に起こります。</p>



<p class="wp-block-paragraph"><strong>対処法</strong>: 出力先のセル範囲（区間数+1行分）をすべて選択してから、Ctrl+Shift+Enterで確定し直してください。</p>



<h3 class="wp-block-heading"><span id="toc20">すべての結果が0になる</span></h3>



<p class="wp-block-paragraph">データ配列に数値が含まれていない場合に起こります。FREQUENCY関数は空白セルやテキストを無視します。数値が1つもなければすべて0を返します。</p>



<p class="wp-block-paragraph"><strong>対処法</strong>: データ配列のセルが「数値」として入力されているか確認しましょう。見た目は数字でも文字列として入力されているケースがあります。セルの表示形式を「数値」に変更してみてください。</p>



<h3 class="wp-block-heading"><span id="toc21">区間の境界値がずれている</span></h3>



<p class="wp-block-paragraph">「70点未満」のつもりで区間配列に <code>70</code> を入れると、70点は「70以下」に含まれます。FREQUENCY関数の境界値は「以下」固定です。</p>



<p class="wp-block-paragraph"><strong>対処法</strong>: 「70点未満」にしたい場合は、区間配列に <code>69</code> を指定します。または<a href="https://mashukabu.com/excel-function-howto-use-countifs/">COUNTIFS関数</a>で <code>"<70"</code> のように条件を指定できますよ。</p>



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



<p class="wp-block-paragraph">ExcelのFREQUENCY関数は、データの度数分布を一括で集計できる便利な配列関数です。</p>



<p class="wp-block-paragraph"><strong>押さえておきたいポイント</strong>:</p>



<ul class="wp-block-list"><li>構文は <code>=FREQUENCY(データ配列, 区間配列)</code> の2引数</li><li>戻り値は区間配列の要素数+1個（最後は区間外のカウント）</li><li>境界値は「以下（<=）」で固定。「未満」には対応していない</li><li>Microsoft 365 / Excel 2021はEnterだけでOK。Excel 2019以前はCtrl+Shift+Enter（CSE入力）が必要</li><li>シンプルな度数分布ならFREQUENCY関数、条件が複雑ならCOUNTIFS関数が向いている</li></ul>



<p class="wp-block-paragraph">売上分析や人事データの集計など、区間ごとの件数を把握したい場面で活躍します。ぜひ試してみてくださいね。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-frequency/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのFREQUENCY関数の使い方｜度数分布</title>
		<link>https://mashukabu.com/spreadsheet-frequency-function/</link>
					<comments>https://mashukabu.com/spreadsheet-frequency-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Fri, 27 Mar 2026 08:07:03 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[FREQUENCY]]></category>
		<category><![CDATA[スプレッドシート]]></category>
		<category><![CDATA[データ分析]]></category>
		<category><![CDATA[ヒストグラム]]></category>
		<category><![CDATA[度数分布]]></category>
		<category><![CDATA[配列関数]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=5503</guid>

					<description><![CDATA[GoogleスプレッドシートのFREQUENCY関数の使い方を、基本構文から度数分布表の作り方、ヒストグラム化、COUNTIFやCOUNTIFSとの使い分けまで実務目線で解説。よくあるエラーの原因と対処法、FAQも収録しています。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「テストの点数を10点刻みで区切って、何人ずつ分布しているか知りたい」。こんな場面、データ分析をしていると意外と多いですよね。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-countif-function/">COUNTIF関数</a>で1つずつ条件を書いていく方法もありますが、区間が5つ・10個と増えるたびに数式が並んでいき、メンテナンスが面倒になります。区間幅を変えただけで全部の数式を直す、というのは現場でよく起こる事故です。</p>



<p class="wp-block-paragraph">そんなときに使えるのがFREQUENCY関数です。区間の上限値を並べておけば、データの度数分布を<strong>1つの数式で一括出力</strong>してくれます。</p>



<p class="wp-block-paragraph">この記事では、FREQUENCY関数の基本構文から度数分布表の作り方、ヒストグラム化の前処理、COUNTIF関数との使い分け、よくあるエラーの対処法までを順番に紹介します。最後に実務でつまずきやすいポイントをFAQでまとめました。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-6" checked><label class="toc-title" for="toc-checkbox-6">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">FREQUENCY関数とは？</a></li><li><a href="#toc2" tabindex="0">FREQUENCY関数の書き方（構文と引数）</a><ol><li><a href="#toc3" tabindex="0">基本構文</a></li><li><a href="#toc4" tabindex="0">引数の説明</a></li><li><a href="#toc5" tabindex="0">戻り値のイメージ</a></li></ol></li><li><a href="#toc6" tabindex="0">FREQUENCY関数の基本的な使い方</a><ol><li><a href="#toc7" tabindex="0">区間ラベルを併記しておくと読みやすい</a></li></ol></li><li><a href="#toc8" tabindex="0">FREQUENCY関数の実践的な使い方・応用例</a><ol><li><a href="#toc9" tabindex="0">応用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">よくあるエラーと対処法</a><ol><li><a href="#toc15" tabindex="0">区間の順番に注意</a></li><li><a href="#toc16" tabindex="0">「以下」判定を理解する</a></li><li><a href="#toc17" tabindex="0">テキストデータが混在している場合</a></li><li><a href="#toc18" tabindex="0">スピル先に既存データがある</a></li></ol></li><li><a href="#toc19" tabindex="0">FREQUENCY関数とCOUNTIF関数の違い・使い分け</a><ol><li><a href="#toc20" tabindex="0">FREQUENCY関数を使うべき場面</a></li><li><a href="#toc21" tabindex="0">COUNTIF関数を使うべき場面</a></li></ol></li><li><a href="#toc22" tabindex="0">配列関数としての挙動を理解する</a><ol><li><a href="#toc23" tabindex="0">スピル（自動展開）の仕組み</a></li><li><a href="#toc24" tabindex="0">スピル先のセルは編集しない</a></li><li><a href="#toc25" tabindex="0">コピーペーストの注意点</a></li></ol></li><li><a href="#toc26" tabindex="0">よくある質問（FAQ）</a><ol><li><a href="#toc27" tabindex="0">Q1. FREQUENCY関数とExcelのFREQUENCY関数は同じですか？</a></li><li><a href="#toc28" tabindex="0">Q2. 区間を後から追加するにはどうすればいいですか？</a></li><li><a href="#toc29" tabindex="0">Q3. 結果が「すべて0」になります。何が原因ですか？</a></li><li><a href="#toc30" tabindex="0">Q4. FREQUENCY関数の結果を別の数式で使えますか？</a></li><li><a href="#toc31" tabindex="0">Q5. 区間の境界を「以下」ではなく「未満」にしたいです</a></li><li><a href="#toc32" tabindex="0">Q6. 区間ごとの構成比（パーセント）を一緒に出すには？</a></li><li><a href="#toc33" tabindex="0">Q7. データが日付や時刻でも使えますか？</a></li></ol></li><li><a href="#toc34" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">FREQUENCY関数（読み方: フリークエンシー関数）は、データを指定した区間ごとに数えて<strong>度数分布を配列で返す</strong>関数です。</p>



<p class="wp-block-paragraph">名前はfrequency（頻度・頻度分布）が由来です。「0〜59点は何人？」「60〜79点は何人？」。こうした区間ごとのカウントを、数式1つでまとめて計算してくれます。</p>



<p class="wp-block-paragraph">ポイントは<strong>配列関数</strong>であることです。結果が1つのセルではなく、複数のセルに縦方向にまとめて出力されます。Googleスプレッドシートでは自動的にスピル（はみ出し展開）されるので、Excelのように <code>Ctrl + Shift + Enter</code> で配列確定する必要はありません。</p>



<p class="wp-block-paragraph">FREQUENCY関数にできることをまとめると、次のとおりです。</p>



<ul class="wp-block-list"><li>データを任意の区間に分けて個数を集計する</li><li>度数分布表のもとになるデータを一括作成する</li><li>ヒストグラム（棒グラフ）の前処理に使える</li><li>売上・点数・アクセス数など連続量の分布パターンを可視化する</li><li>アンケートやテスト結果の集計を区間別に整理する</li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>FREQUENCY関数はGoogleスプレッドシートの全バージョンで使えます。Excelにも同名の関数がありますが、Sheets版は自動スピルに対応しているため、入力の手間が少ないのが特徴です。Excelでも365とExcel 2021以降は同じく自動スピルが効きますが、それ以前のバージョンでは配列数式として確定する必要があります。</p></blockquote>



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



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



<pre class="wp-block-code"><code>=FREQUENCY(データ, 区間)</code></pre>



<p class="wp-block-paragraph">カッコの中に「何を調べるか」と「どの区間で区切るか」の2つを入れるだけ、というシンプルな構文です。</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>データ</td><td>必須</td><td>度数を調べるデータ範囲（例: B2:B50）</td></tr><tr><td>区間</td><td>必須</td><td>区間の上限値を並べた範囲（例: D2:D6）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">引数は2つだけです。「データ」の中にある値を「区間」の境界で区切って、それぞれ何個あるかを数えます。</p>



<p class="wp-block-paragraph">ここで一番大事なポイントを1つ覚えてください。<strong>戻り値の個数は「区間の数+1」になる</strong>ことです。たとえば区間を5つ指定すると、結果は6個返ります。最後の1つは「最大の区間を超えた値の個数」です。</p>



<p class="wp-block-paragraph">この「+1」を忘れると、結果を貼り付けるセル範囲が1行足りなくて末尾の人数が見えない、というミスにつながります。E2に貼り付ける場合は、E2〜E7まで6行ぶんのスペースが必要だと覚えておきましょう。</p>



<h3 class="wp-block-heading"><span id="toc5">戻り値のイメージ</span></h3>



<p class="wp-block-paragraph">たとえば区間に <code>{20, 40, 60, 80, 100}</code> を指定したときの結果は、次のように対応します。</p>



<figure class="wp-block-table"><table><thead><tr><th>結果の位置</th><th>対応する区間</th><th>意味</th></tr></thead><tbody><tr><td>1番目</td><td>20以下</td><td>0〜20点</td></tr><tr><td>2番目</td><td>20超〜40以下</td><td>21〜40点</td></tr><tr><td>3番目</td><td>40超〜60以下</td><td>41〜60点</td></tr><tr><td>4番目</td><td>60超〜80以下</td><td>61〜80点</td></tr><tr><td>5番目</td><td>80超〜100以下</td><td>81〜100点</td></tr><tr><td>6番目</td><td>100超</td><td>100点を超える値（なければ0）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">「指定した区間の数+1個の戻り値」「最後は区間外」というルールが分かれば、あとは応用するだけです。</p>



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



<p class="wp-block-paragraph">実際にテストの点数データで、度数分布を作ってみましょう。</p>



<p class="wp-block-paragraph">B2:B21にテストの点数（0〜100点）が20人分入っているとします。区間の上限値をD2:D6に次のように入力します。</p>



<figure class="wp-block-table"><table><thead><tr><th>セル</th><th>区間の上限値</th><th>意味</th></tr></thead><tbody><tr><td>D2</td><td>20</td><td>0〜20点</td></tr><tr><td>D3</td><td>40</td><td>21〜40点</td></tr><tr><td>D4</td><td>60</td><td>41〜60点</td></tr><tr><td>D5</td><td>80</td><td>61〜80点</td></tr><tr><td>D6</td><td>100</td><td>81〜100点</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">E2に次の数式を入力します。</p>



<pre class="wp-block-code"><code>=FREQUENCY(B2:B21, D2:D6)</code></pre>



<p class="wp-block-paragraph">結果がE2:E7に縦方向に展開されます。E2〜E6には各区間の人数が入り、E7には「100を超える点数の人数」が入ります。</p>



<p class="wp-block-paragraph">区間の上限値は「以下」で判定されます。たとえばD2に「20」と入力した場合、20点ちょうどの人はこの区間に含まれます。21点の人は次の区間です。境界値の扱いはミスを生みやすい部分なので、データを確認しながら設定しましょう。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>空白セルとテキストは自動的に無視されます。数値データだけがカウント対象になるので、見出し行を含めてしまっても問題ありません。逆に言うと、数字に見えても「文字列として保存された数値」は無視されるので、結果が0ばかりになるときは要注意です（後述）。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc7">区間ラベルを併記しておくと読みやすい</span></h3>



<p class="wp-block-paragraph">度数分布表は数字だけだと意味が伝わりにくいので、左隣に区間ラベルを書いておくと一気に読みやすくなります。</p>



<figure class="wp-block-table"><table><thead><tr><th>区間ラベル（D列）</th><th>上限値（実際にFREQUENCYに渡す）</th><th>人数（E列）</th></tr></thead><tbody><tr><td>0〜20点</td><td>20</td><td>=FREQUENCY結果</td></tr><tr><td>21〜40点</td><td>40</td><td>&nbsp;</td></tr><tr><td>41〜60点</td><td>60</td><td>&nbsp;</td></tr><tr><td>61〜80点</td><td>80</td><td>&nbsp;</td></tr><tr><td>81〜100点</td><td>100</td><td>&nbsp;</td></tr><tr><td>100点超</td><td>（自動）</td><td>&nbsp;</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">実務では「区間ラベル列」「上限値列」「人数列」の3列で整えると、グラフや報告書にそのまま流用できる形になります。</p>



<h2 class="wp-block-heading"><span id="toc8">FREQUENCY関数の実践的な使い方・応用例</span></h2>



<h3 class="wp-block-heading"><span id="toc9">応用1: アンケート結果の度数分布表を作る</span></h3>



<p class="wp-block-paragraph">5段階評価（1〜5点）のアンケート結果から、各評価の回答数を集計する例です。</p>



<p class="wp-block-paragraph">B列に回答データ（1〜5の数値）が入っているとします。区間の上限値をD2:D5に「1, 2, 3, 4」と入力します。</p>



<pre class="wp-block-code"><code>=FREQUENCY(B2:B100, D2:D5)</code></pre>



<p class="wp-block-paragraph">結果は5つのセルに展開されます。</p>



<figure class="wp-block-table"><table><thead><tr><th>区間</th><th>意味</th><th>結果の位置</th></tr></thead><tbody><tr><td>〜1</td><td>評価1の人数</td><td>E2</td></tr><tr><td>〜2</td><td>評価2の人数</td><td>E3</td></tr><tr><td>〜3</td><td>評価3の人数</td><td>E4</td></tr><tr><td>〜4</td><td>評価4の人数</td><td>E5</td></tr><tr><td>4超</td><td>評価5の人数</td><td>E6</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">5段階評価なら区間は「1, 2, 3, 4」の4つです。最後の「4超」が自動的に評価5をカウントしてくれます。離散値（整数しか取らない値）のときは、上限値を「各カテゴリの値そのもの」にすると分かりやすいです。</p>



<h3 class="wp-block-heading"><span id="toc10">応用2: 度数分布表からヒストグラム（グラフ）を作る</span></h3>



<p class="wp-block-paragraph">FREQUENCY関数で作った度数分布表をもとに、ヒストグラムを作成できます。手順は次のとおりです。</p>



<ol class="wp-block-list"><li>FREQUENCY関数で度数分布を算出する（上記の基本例の手順）</li><li>区間ラベル列（例: 「0〜20」「21〜40」&#8230;）とFREQUENCY結果列を選択する</li><li>メニューから「挿入」→「グラフ」を選ぶ</li><li>グラフの種類で「縦棒グラフ」を選択する</li><li>グラフエディタの「カスタマイズ」→「系列」で棒の間隔を0%にする（ヒストグラムらしい見た目になる）</li><li>必要に応じてタイトルや軸ラベル、配色を調整する</li></ol>



<p class="wp-block-paragraph">区間ラベルはFREQUENCY関数とは別に自分で作る必要があります。「0〜20」「21〜40」のように、わかりやすい表記を入力しておくとグラフが読みやすくなります。</p>



<p class="wp-block-paragraph">グラフ作成全般のコツは<a href="https://mashukabu.com/spreadsheet-graph-creation-guide/">Googleスプレッドシートのグラフ作成ガイド</a>にまとめているので、配色や軸の設定で迷ったら参考にしてみてください。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>Googleスプレッドシートにはメニューの「挿入」→「グラフ」→「ヒストグラム」を使う方法もあります。ただしこの機能は区間の幅を自動で決めてしまい、業務報告で使うと「なぜこの区切り？」と聞かれがちです。区間幅を自分でコントロールしたい場合はFREQUENCY関数+縦棒グラフの組み合わせがおすすめです。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc11">応用3: 売上金額の分布を分析する</span></h3>



<p class="wp-block-paragraph">売上データをFREQUENCY関数で区間ごとに集計すると、売上の分布パターンが見えてきます。</p>



<p class="wp-block-paragraph">B列に各取引の売上金額が入っているとします。区間を「1万円以下/5万円以下/10万円以下/50万円以下」で区切ります。</p>



<pre class="wp-block-code"><code>=FREQUENCY(B2:B200, {10000, 50000, 100000, 500000})</code></pre>



<p class="wp-block-paragraph">区間の上限値はセル範囲の代わりに <code>{}</code>（波括弧）で直接指定することもできます。少数の固定区間ならこちらの方が手早く書けます。区間幅をデータの特性に合わせて変えると、分布の偏り（少額取引が多い・高額帯にロングテールがある等）が見やすくなります。</p>



<p class="wp-block-paragraph">平均値だけでは見えない「分布の形」が把握できるので、<a href="https://mashukabu.com/spreadsheet-average-function/">AVERAGE関数</a>や<a href="https://mashukabu.com/spreadsheet-median-function/">MEDIAN関数</a>と組み合わせて使うのが定番パターンです。</p>



<h3 class="wp-block-heading"><span id="toc12">応用4: 区間幅を自動計算して柔軟に分ける</span></h3>



<p class="wp-block-paragraph">データの最小値・最大値が事前に分からないケースでは、区間幅を自動計算して動的に区間を作る方法も便利です。</p>



<p class="wp-block-paragraph">たとえばB列のデータを10等分して区間にしたい場合は、別シートに次のような数式を組みます。</p>



<pre class="wp-block-code"><code>区間1: =MIN(B:B)+(MAX(B:B)-MIN(B:B))/10*1
区間2: =MIN(B:B)+(MAX(B:B)-MIN(B:B))/10*2
…（10個まで）</code></pre>



<p class="wp-block-paragraph">これでデータが入れ替わっても、区間が自動で再計算されます。月次レポートのテンプレートに組み込んでおくと、毎月の更新が一気に楽になります。</p>



<h3 class="wp-block-heading"><span id="toc13">応用5: ピボットテーブルとの使い分け</span></h3>



<p class="wp-block-paragraph">「区間ごとの個数を出すだけ」ならピボットテーブルでも可能です。ピボットの「グループ化」機能を使えば、数値を自動で区間にまとめてくれます。</p>



<p class="wp-block-paragraph">ただし、FREQUENCY関数は次の点で優れています。</p>



<ul class="wp-block-list"><li>区間の境界値を<strong>1セル単位で自由に指定</strong>できる（ピボットは等間隔のみ）</li><li>数式なので<strong>他のシートから参照しやすい</strong>（ダッシュボードに組み込みやすい）</li><li>元データが更新されれば<strong>自動で再計算</strong>される</li></ul>



<p class="wp-block-paragraph">ダッシュボードや継続的なレポートに使うならFREQUENCY、その場で軽く眺めたいだけならピボット、という使い分けがおすすめです。</p>



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



<p class="wp-block-paragraph">FREQUENCY関数は引数2つのシンプルな関数ですが、結果が想定どおりにならないケースがいくつかあります。よくあるパターンを表にまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>症状</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>すべて0になる</td><td>データ範囲に数値が入っていない／文字列として保存されている</td><td>セルの書式が「テキスト」になっていないか確認する</td></tr><tr><td>一部の区間が0</td><td>区間の上限値が昇順になっていない</td><td>区間の値を小さい順に並べ直す</td></tr><tr><td>結果が1つしか出ない</td><td>区間に空の範囲を指定している</td><td>区間のセル範囲にデータを入力する</td></tr><tr><td>想定と数が合わない</td><td>区間の境界値が「以下」で判定されている</td><td>上限値を調整する（例: 80未満にしたいなら79を指定）</td></tr><tr><td>#REF!エラー</td><td>スピル先のセルに既存データがある</td><td>FREQUENCY結果が展開される範囲のセルを空にする</td></tr><tr><td>末尾の値が見えない</td><td>出力範囲が「区間数+1」より少ない</td><td>表の下に1行余裕を持たせる</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc15">区間の順番に注意</span></h3>



<p class="wp-block-paragraph">FREQUENCY関数は区間の値を<strong>小さい順に並べる</strong>ことを前提にしています。大きい順に並べると、正しい結果が得られません。</p>



<pre class="wp-block-code"><code>=FREQUENCY(B2:B21, {20, 40, 60, 80, 100})  ← OK
=FREQUENCY(B2:B21, {100, 80, 60, 40, 20})  ← NG: 正しく集計されない</code></pre>



<p class="wp-block-paragraph">並び順だけが原因で集計結果が崩れることがあるので、区間を後から追加・修正したときは必ず昇順を確認しましょう。</p>



<h3 class="wp-block-heading"><span id="toc16">「以下」判定を理解する</span></h3>



<p class="wp-block-paragraph">区間の境界値は「以下（<=）」で判定されます。たとえば区間に「60」を指定すると、60ちょうどはその区間に含まれます。</p>



<p class="wp-block-paragraph">「60未満」にしたい場合は、上限値を「59」に変更してください。小数点のデータがある場合は「59.99」や「59.999」のように調整します。会計データなど1円単位の整数なら「59」で問題ありませんが、平均値や率を扱う場合は誤差を生まないように注意が必要です。</p>



<h3 class="wp-block-heading"><span id="toc17">テキストデータが混在している場合</span></h3>



<p class="wp-block-paragraph">データ範囲にテキストが混ざっていても、FREQUENCY関数はエラーになりません。テキストと空白セルは自動的にスキップされ、数値だけがカウント対象になります。</p>



<p class="wp-block-paragraph">ただし、<strong>数値が文字列として保存されている場合は要注意</strong>です。セルの左上に小さな緑色の三角マークが表示されていたら、文字列です。「表示形式」→「数値」を選んで再入力するか、<code>=VALUE(セル)</code> で数値に変換してから集計してください。CSVを取り込んだ直後のデータでよく起こるので、最初に1度書式を確認するクセをつけるとミスが減ります。</p>



<h3 class="wp-block-heading"><span id="toc18">スピル先に既存データがある</span></h3>



<p class="wp-block-paragraph">FREQUENCY関数の結果は配列としてスピル（自動展開）されます。展開先のセルに既存のデータが入っていると、 <code>#REF!</code> エラーになって何も表示されません。</p>



<p class="wp-block-paragraph">エラーが出たら、結果が広がるはずの範囲（区間数+1セル分）を必ず空にしてから再計算してください。</p>



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



<p class="wp-block-paragraph">度数分布は<a href="https://mashukabu.com/spreadsheet-countif-function/">COUNTIF関数</a>でも作れます。FREQUENCY関数との使い分けを整理しましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>FREQUENCY関数</th><th>COUNTIF関数</th></tr></thead><tbody><tr><td>数式の数</td><td>1つで全区間を一括集計</td><td>区間ごとに1つずつ必要</td></tr><tr><td>結果の形式</td><td>配列（複数セルに自動展開）</td><td>単一の値（1セルに1結果）</td></tr><tr><td>区間外の値</td><td>最後の要素で自動カウント</td><td>自分で条件を追加する必要あり</td></tr><tr><td>条件の柔軟性</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>



<h3 class="wp-block-heading"><span id="toc20">FREQUENCY関数を使うべき場面</span></h3>



<ul class="wp-block-list"><li>区間が5つ以上あり、1つずつCOUNTIFを書くのが面倒なとき</li><li>度数分布表を一括で作りたいとき</li><li>区間外（最大値を超えるデータ）も自動でカウントしたいとき</li><li>ヒストグラムやダッシュボードなど、継続的に使う集計表のとき</li></ul>



<h3 class="wp-block-heading"><span id="toc21">COUNTIF関数を使うべき場面</span></h3>



<ul class="wp-block-list"><li>文字列の条件でカウントしたいとき</li><li>区間の数が少なく（2〜3個）、個別に数式を書いたほうが早いとき</li><li>各区間の条件を柔軟に変えたいとき</li><li>区間外を<strong>カウントしたくない</strong>とき（FREQUENCYだと自動で末尾に出てしまう）</li></ul>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-countifs-function/">COUNTIFS関数</a>を使えば、複数の条件を組み合わせたカウントも可能です。「部署が営業部で、かつ売上が100万以上」のような集計にはCOUNTIFS関数が向いています。「区間別の度数分布」はFREQUENCY、「複数条件の絞り込みカウント」はCOUNTIFS、と覚えておけばだいたいの実務はカバーできます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>FREQUENCY関数は<a href="https://mashukabu.com/spreadsheet-arrayformula-function/">ARRAYFORMULA関数</a>と同じ配列関数の仲間です。配列関数に慣れていない方は、ARRAYFORMULA関数の記事もあわせてチェックしてみてください。スピルの仕組みが理解できると、複雑な集計が一気に短い数式で書けるようになります。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc22">配列関数としての挙動を理解する</span></h2>



<p class="wp-block-paragraph">FREQUENCY関数は「配列関数」というカテゴリの関数です。普段スプレッドシートで使う関数（SUMやAVERAGEなど）は結果が1セルに収まりますが、配列関数は<strong>1つの数式で複数セルに結果を返す</strong>という特徴があります。</p>



<h3 class="wp-block-heading"><span id="toc23">スピル（自動展開）の仕組み</span></h3>



<p class="wp-block-paragraph">GoogleスプレッドシートでFREQUENCY関数を入力してEnterを押すと、入力したセルを起点に下方向へ自動で結果が広がります。これを「スピル（spill）」と呼びます。</p>



<pre class="wp-block-code"><code>E2セルに数式を入力 → E2〜E7に結果が自動展開される</code></pre>



<p class="wp-block-paragraph">スピルされた範囲のうち、E2以外のセル（E3〜E7）はクリックすると元の数式がうっすらと表示されますが、数式バーは空欄のように見えます。これは「E2の数式によって生成された値」という扱いだからです。</p>



<h3 class="wp-block-heading"><span id="toc24">スピル先のセルは編集しない</span></h3>



<p class="wp-block-paragraph">スピルされた範囲のセル（E3〜E7など）を直接編集すると、 <code>#REF!</code> エラーが発生してすべての結果が消えます。</p>



<pre class="wp-block-code"><code>NG: E3を選択して「100」と上書きする
→ E2の数式全体が #REF! エラーになる</code></pre>



<p class="wp-block-paragraph">修正したいときは、元の数式（E2）か、引数で指定した区間表（D列）の方を変えるようにしてください。これが配列関数を扱ううえでもっとも大事なルールです。</p>



<h3 class="wp-block-heading"><span id="toc25">コピーペーストの注意点</span></h3>



<p class="wp-block-paragraph">FREQUENCY関数の結果は配列なので、E2:E7をまとめてコピーするときは「値のみ貼り付け」を使うと、別のシートやドキュメントにそのまま貼り付けられます。</p>



<pre class="wp-block-code"><code>1. E2:E7を範囲選択してCtrl + C（または Cmd + C）
2. 貼り付けたいセルで「右クリック」→「特殊貼り付け」→「値のみ貼り付け」</code></pre>



<p class="wp-block-paragraph">数式のままコピーすると、貼り付け先でもFREQUENCY関数として展開されるため、レイアウトが崩れることがあります。報告書やドキュメントに貼るときは「値のみ」を意識しましょう。</p>



<h2 class="wp-block-heading"><span id="toc26">よくある質問（FAQ）</span></h2>



<h3 class="wp-block-heading"><span id="toc27">Q1. FREQUENCY関数とExcelのFREQUENCY関数は同じですか？</span></h3>



<p class="wp-block-paragraph">A. 機能は基本的に同じで、構文も <code>=FREQUENCY(データ, 区間)</code> で共通です。ただしExcelの古いバージョン（2019以前）では配列数式として <code>Ctrl + Shift + Enter</code> で確定する必要があります。Excel 365・Excel 2021以降と、Googleスプレッドシートでは自動スピルが効くので、普通にEnterを押すだけで複数セルに展開されます。</p>



<h3 class="wp-block-heading"><span id="toc28">Q2. 区間を後から追加するにはどうすればいいですか？</span></h3>



<p class="wp-block-paragraph">A. 区間表のセルに新しい上限値を追加し、FREQUENCY関数の第2引数の範囲を広げてください。たとえば <code>D2:D6</code> を <code>D2:D7</code> に変更すれば、結果も自動で1行増えます。区間は必ず昇順で並べる必要があるため、追加する位置にも注意しましょう。</p>



<h3 class="wp-block-heading"><span id="toc29">Q3. 結果が「すべて0」になります。何が原因ですか？</span></h3>



<p class="wp-block-paragraph">A. もっとも多いのは、<strong>データが数値ではなく文字列として保存されている</strong>ケースです。セルの左上に緑色の三角マークが出ていたら、文字列です。「表示形式」→「数値」を選んで再入力するか、<code>=VALUE(セル)</code> で数値に変換してから集計してください。CSV取り込み直後のデータでよく発生します。</p>



<h3 class="wp-block-heading"><span id="toc30">Q4. FREQUENCY関数の結果を別の数式で使えますか？</span></h3>



<p class="wp-block-paragraph">A. はい、使えます。FREQUENCY関数の結果は通常のセル参照と同じように扱えるので、合計や割合の計算に組み込めます。たとえば各区間の構成比を出したいときは、<code>=E2:E7/SUM(E2:E7)</code> のようにARRAYFORMULA的に書けます。ダッシュボードでは「人数」と「割合（%）」を並べて表示するパターンがよく使われます。</p>



<h3 class="wp-block-heading"><span id="toc31">Q5. 区間の境界を「以下」ではなく「未満」にしたいです</span></h3>



<p class="wp-block-paragraph">A. FREQUENCY関数自体は「以下」固定で変更できません。「未満」で集計したい場合は、上限値を1（または小数点以下の最小単位）小さくする調整をします。整数データなら「80未満」は「79」を上限値に、小数点1桁データなら「79.9」を指定する形です。どうしても柔軟に条件を変えたいときは、<a href="https://mashukabu.com/spreadsheet-countifs-function/">COUNTIFS関数</a>で <code>"<80"</code> のように条件式を書く方が確実です。</p>



<h3 class="wp-block-heading"><span id="toc32">Q6. 区間ごとの構成比（パーセント）を一緒に出すには？</span></h3>



<p class="wp-block-paragraph">A. FREQUENCY関数の結果セル（E2:E7など）の隣に、<code>=E2/SUM($E$2:$E$7)</code> のような数式を入れて表示形式をパーセントに変えればOKです。SUMの範囲は絶対参照（<code>$</code>付き）にして、コピーしてもズレないようにするのがポイントです。</p>



<pre class="wp-block-code"><code>F2セル: =E2/SUM($E$2:$E$7)
↓ F7までコピー</code></pre>



<p class="wp-block-paragraph">「人数」と「構成比」を並べることで、報告書としてぐっと見やすくなります。</p>



<h3 class="wp-block-heading"><span id="toc33">Q7. データが日付や時刻でも使えますか？</span></h3>



<p class="wp-block-paragraph">A. はい、使えます。日付や時刻はスプレッドシート内部では「数値」として扱われているため、FREQUENCY関数で区間集計できます。たとえば「9時台」「10時台」のように時刻帯ごとのアクセス数を集計したい場合は、上限値に <code>TIME(9,59,59), TIME(10,59,59)</code> のように指定します。日付の場合も <code>DATE(2026,3,31)</code> のような形で渡せます。</p>



<p class="wp-block-paragraph">ただし表示形式を「日付」「時刻」のまま運用すると見づらいので、区間ラベル列を別途用意して、 <code>=TEXT(D2, "h時台")</code> のように整形しておくと読みやすくなります。</p>



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



<p class="wp-block-paragraph">FREQUENCY関数は、データの度数分布を一括で求められる便利な配列関数です。最後にポイントを整理します。</p>



<ul class="wp-block-list"><li>構文は <code>=FREQUENCY(データ, 区間)</code> の2引数</li><li>結果は「区間の数+1」個の配列で返る（最後の要素は区間外の個数）</li><li>区間の上限値は昇順に並べる</li><li>境界値は「以下」で判定される（60なら60点を含む）</li><li>空白やテキストは自動で無視される（ただし「文字列の数値」はカウントされない）</li><li>度数分布表を作ってヒストグラムの前処理にも使える</li><li>区間が多いときはFREQUENCY、条件が柔軟なときは<a href="https://mashukabu.com/spreadsheet-countif-function/">COUNTIF関数</a>と使い分ける</li></ul>



<p class="wp-block-paragraph">まずは <code>=FREQUENCY(B2:B21, {20, 40, 60, 80, 100})</code> のようなシンプルな例から試して、慣れてきたら売上分析やアンケート集計など実務データに応用していきましょう。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-frequency-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのMODE.MULT関数の使い方｜複数の最頻値</title>
		<link>https://mashukabu.com/spreadsheet-mode-mult-function/</link>
					<comments>https://mashukabu.com/spreadsheet-mode-mult-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 26 Mar 2026 11:43:36 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[MODE]]></category>
		<category><![CDATA[MODE.MULT]]></category>
		<category><![CDATA[スプレッドシート]]></category>
		<category><![CDATA[最頻値]]></category>
		<category><![CDATA[統計関数]]></category>
		<category><![CDATA[配列関数]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=5279</guid>

					<description><![CDATA[GoogleスプレッドシートのMODE.MULT関数の使い方を初心者向けに解説。複数の最頻値をすべて返す配列関数の基本から、MODE関数との違い、アンケート分析や売上データの頻出価格帯特定などの実務例まで紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「最頻値を出したら1つしか返ってこないけど、同率1位が他にもあるはず」。そんな経験はありませんか？</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-mode-function/">MODE関数</a>は最頻値を1つだけ返します。同じ回数の値が複数あっても、最小の値しか表示されません。見落としがあると分析の精度が下がってしまいますよね。</p>



<p class="wp-block-paragraph">そんなときに使うのがMODE.MULT関数です。<strong>スプレッドシートで</strong>最頻値が複数ある場合に、すべての最頻値を配列で返してくれます。</p>



<p class="wp-block-paragraph">この記事では基本の書き方からMODE関数との違い、実務での活用パターンまで紹介します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-7" checked><label class="toc-title" for="toc-checkbox-7">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">スプレッドシートのMODE.MULT関数とは？</a></li><li><a href="#toc2" tabindex="0">MODE.MULT関数の書き方（構文と引数）</a><ol><li><a href="#toc3" tabindex="0">基本構文</a></li><li><a href="#toc4" tabindex="0">引数の説明</a></li></ol></li><li><a href="#toc5" tabindex="0">MODE.MULT関数の基本的な使い方</a><ol><li><a href="#toc6" tabindex="0">基本パターン: 複数の最頻値を取得する</a></li><li><a href="#toc7" tabindex="0">最頻値が1つだけの場合</a></li><li><a href="#toc8" tabindex="0">結果の展開先に注意する</a></li></ol></li><li><a href="#toc9" tabindex="0">実務でのMODE.MULT関数活用パターン</a><ol><li><a href="#toc10" tabindex="0">パターン1: アンケートの同率最多回答を見つける</a></li><li><a href="#toc11" tabindex="0">パターン2: 売上データの頻出価格帯を特定する</a></li><li><a href="#toc12" tabindex="0">パターン3: COUNTIFと組み合わせて出現回数も表示する</a></li><li><a href="#toc13" tabindex="0">パターン4: IFERRORでエラーを防ぐ</a></li><li><a href="#toc14" tabindex="0">パターン5: UNIQUEやSORT関数と組み合わせる</a></li></ol></li><li><a href="#toc15" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc16" tabindex="0">#REF!エラーの対処</a></li></ol></li><li><a href="#toc17" tabindex="0">MODE関数・MODE.SNGL関数との違い</a><ol><li><a href="#toc18" tabindex="0">MODEとMODE.SNGLは同じ関数</a></li><li><a href="#toc19" tabindex="0">どれを使うべき？</a></li></ol></li><li><a href="#toc20" tabindex="0">Excelとの違い</a></li><li><a href="#toc21" tabindex="0">まとめ</a><ol><li><a href="#toc22" tabindex="0">この記事で紹介した関数・関連記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">スプレッドシートのMODE.MULT関数とは？</span></h2>



<p class="wp-block-paragraph">MODE.MULT関数（読み方: モード・マルト関数）は、<strong>指定した数値の中で最も多く出現する値（最頻値）をすべて返す関数</strong>です。「MULT」は「Multiple（複数）」の略です。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-mode-function/">MODE関数</a>は最頻値を1つだけ返します。一方MODE.MULT関数は、同じ出現回数の値が複数あればすべて返します。配列関数なので、結果が縦方向に複数セルへ展開されるのが特徴です。</p>



<p class="wp-block-paragraph">MODE.MULT関数にできることをまとめると、次のとおりです。</p>



<ul class="wp-block-list"><li>最頻値が複数あるとき、すべての最頻値を配列で返す</li><li>結果は縦方向に自動展開される（スピル）</li><li>最頻値が1つだけの場合は、その1つだけを返す</li><li>空白セルや文字列は自動的にスキップする</li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>MODE.MULT関数はGoogleスプレッドシートの全バージョンで使えます。Excelでも同じ構文で利用できます。</p></blockquote>



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



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



<pre class="wp-block-code"><code>=MODE.MULT(値1, [値2, ...])</code></pre>



<p class="wp-block-paragraph">カッコの中に、最頻値を求めたい数値やセル範囲を指定します。</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>値1</td><td>必須</td><td>最頻値を求めたい最初の数値、セル参照、またはセル範囲</td></tr><tr><td>値2, &#8230;</td><td>任意</td><td>追加で最頻値に含めたい数値やセル範囲</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">引数が2つ以上ある場合は、カンマ（ , ）で区切ります。</p>



<p class="wp-block-paragraph">引数に指定できるものは3種類あります。</p>



<ul class="wp-block-list"><li><strong>数値を直接入力</strong>: <code>=MODE.MULT(3, 3, 5, 5, 7)</code> → 3と5を返す</li><li><strong>セル参照</strong>: <code>=MODE.MULT(A1, B1, C1)</code></li><li><strong>セル範囲</strong>: <code>=MODE.MULT(A1:A20)</code></li></ul>



<h2 class="wp-block-heading"><span id="toc5">MODE.MULT関数の基本的な使い方</span></h2>



<p class="wp-block-paragraph">ここからは実際にMODE.MULT関数を使ってみましょう。</p>



<h3 class="wp-block-heading"><span id="toc6">基本パターン: 複数の最頻値を取得する</span></h3>



<p class="wp-block-paragraph">B2からB11にテストの点数が入っているとします。点数は「70, 80, 80, 85, 85, 90, 90, 75, 60, 95」です。80・85・90がそれぞれ2回ずつ出現していますね。</p>



<pre class="wp-block-code"><code>=MODE.MULT(B2:B11)</code></pre>



<p class="wp-block-paragraph">結果は縦方向に<strong>80、85、90</strong>の3つが展開されます。MODE関数だと80しか返りません。MODE.MULT関数ならすべてわかりますよ。</p>



<h3 class="wp-block-heading"><span id="toc7">最頻値が1つだけの場合</span></h3>



<p class="wp-block-paragraph">「70, 80, 80, 80, 85, 90」のように、80が3回で最多のケースを考えます。</p>



<pre class="wp-block-code"><code>=MODE.MULT(B2:B7)</code></pre>



<p class="wp-block-paragraph">結果は<strong>80</strong>の1つだけです。最頻値が1つしかない場合、MODE関数と同じ結果になります。</p>



<h3 class="wp-block-heading"><span id="toc8">結果の展開先に注意する</span></h3>



<p class="wp-block-paragraph">MODE.MULT関数は結果を縦方向に展開します。展開先のセルにデータが入っていると#REF!エラーになります。</p>



<p class="wp-block-paragraph">結果が何個返るかは事前にわかりません。展開先に十分な空きスペースを確保しておきましょう。</p>



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



<p class="wp-block-paragraph">基本がわかったところで、実務でよく出てくるパターンを見ていきましょう。</p>



<h3 class="wp-block-heading"><span id="toc10">パターン1: アンケートの同率最多回答を見つける</span></h3>



<p class="wp-block-paragraph">5段階評価のアンケート結果がB列に入っているとします。</p>



<figure class="wp-block-table"><table><thead><tr><th>回答者</th><th>評価（1〜5）</th></tr></thead><tbody><tr><td>A</td><td>4</td></tr><tr><td>B</td><td>3</td></tr><tr><td>C</td><td>4</td></tr><tr><td>D</td><td>3</td></tr><tr><td>E</td><td>5</td></tr><tr><td>F</td><td>4</td></tr><tr><td>G</td><td>3</td></tr><tr><td>H</td><td>5</td></tr></tbody></table></figure>



<pre class="wp-block-code"><code>=MODE.MULT(B2:B9)</code></pre>



<p class="wp-block-paragraph">「3」と「4」がそれぞれ3回で同率最多です。結果は縦に<strong>3、4</strong>と展開されます。MODE関数だと「3」しか返りません。「4」も同率で多いという情報を見落とさずに済みますね。</p>



<h3 class="wp-block-heading"><span id="toc11">パターン2: 売上データの頻出価格帯を特定する</span></h3>



<p class="wp-block-paragraph">注文データのB列に商品単価が入っているとします。</p>



<figure class="wp-block-table"><table><thead><tr><th>注文No</th><th>単価（円）</th></tr></thead><tbody><tr><td>1</td><td>500</td></tr><tr><td>2</td><td>1000</td></tr><tr><td>3</td><td>500</td></tr><tr><td>4</td><td>1500</td></tr><tr><td>5</td><td>1000</td></tr><tr><td>6</td><td>2000</td></tr><tr><td>7</td><td>1500</td></tr><tr><td>8</td><td>500</td></tr><tr><td>9</td><td>1000</td></tr><tr><td>10</td><td>1500</td></tr></tbody></table></figure>



<pre class="wp-block-code"><code>=MODE.MULT(B2:B11)</code></pre>



<p class="wp-block-paragraph">500・1000・1500がそれぞれ3回で同率です。結果は縦に<strong>500、1000、1500</strong>と展開されます。よく売れる価格帯が複数あることが一目でわかりますよ。</p>



<h3 class="wp-block-heading"><span id="toc12">パターン3: COUNTIFと組み合わせて出現回数も表示する</span></h3>



<p class="wp-block-paragraph">最頻値だけでなく「何回出現したか」も知りたいことがありますよね。</p>



<p class="wp-block-paragraph">D2セルにMODE.MULT関数を入力したとします。E2セルに次の数式を入力します。</p>



<pre class="wp-block-code"><code>=COUNTIF(B2:B11, D2)</code></pre>



<p class="wp-block-paragraph">D列に最頻値、E列にその出現回数が表示されます。複数の最頻値それぞれの回数を確認できますよ。</p>



<h3 class="wp-block-heading"><span id="toc13">パターン4: IFERRORでエラーを防ぐ</span></h3>



<p class="wp-block-paragraph">すべての値が1回ずつしか出現しないと#N/Aエラーになります。<a href="https://mashukabu.com/spreadsheet-iferror-function/">IFERROR関数</a>で囲んでおくと安心です。</p>



<pre class="wp-block-code"><code>=IFERROR(MODE.MULT(B2:B10), &quot;最頻値なし&quot;)</code></pre>



<p class="wp-block-paragraph">最頻値がないときは「最頻値なし」と表示されます。</p>



<h3 class="wp-block-heading"><span id="toc14">パターン5: UNIQUEやSORT関数と組み合わせる</span></h3>



<p class="wp-block-paragraph">MODE.MULT関数の結果を整理したいとき、SORT関数と組み合わせると便利です。</p>



<pre class="wp-block-code"><code>=SORT(MODE.MULT(B2:B20))</code></pre>



<p class="wp-block-paragraph">最頻値を昇順で並べ替えて表示してくれます。結果が多い場合に見やすくなりますよ。</p>



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



<p class="wp-block-paragraph">MODE.MULT関数で困ったら、以下のパターンを確認してみてください。</p>



<figure class="wp-block-table"><table><thead><tr><th>症状</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>#N/Aエラー</td><td>すべての値が1回ずつしか出現しない</td><td>IFERRORで囲む。重複データがあるか確認する</td></tr><tr><td>#REF!エラー</td><td>展開先のセルにデータがある</td><td>展開先のセルを空にする</td></tr><tr><td>結果が1つしか返らない</td><td>最頻値が本当に1つだけ</td><td>正常動作。MODE関数と同じ結果になる</td></tr><tr><td>文字列が無視される</td><td>MODE.MULT関数は数値のみ対応</td><td>文字列を数値コードに変換してから使う</td></tr><tr><td>日付が巨大な数値になる</td><td>日付がシリアル値として計算された</td><td>日付セルは範囲から除外する</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc16">#REF!エラーの対処</span></h3>



<p class="wp-block-paragraph">MODE.MULT関数で特に多いのが#REF!エラーです。配列の展開先にデータが入っていると発生します。</p>



<p class="wp-block-paragraph">対処法はシンプルです。関数を入力するセルの下に空きスペースを確保しましょう。余裕をもって空けておくのがおすすめです。</p>



<h2 class="wp-block-heading"><span id="toc17">MODE関数・MODE.SNGL関数との違い</span></h2>



<p class="wp-block-paragraph">MODE.MULT関数と似た関数に<a href="https://mashukabu.com/spreadsheet-mode-function/">MODE関数</a>と<a href="https://mashukabu.com/spreadsheet-mode-sngl-function/">MODE.SNGL関数</a>があります。違いを整理しておきましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>MODE</th><th>MODE.SNGL</th><th>MODE.MULT</th></tr></thead><tbody><tr><td>返す最頻値の数</td><td>1つだけ</td><td>1つだけ</td><td>すべて</td></tr><tr><td>複数の最頻値がある場合</td><td>最小値を返す</td><td>最小値を返す</td><td>すべて返す</td></tr><tr><td>結果の形式</td><td>単一の値</td><td>単一の値</td><td>配列（縦方向に展開）</td></tr><tr><td>用途</td><td>代表的な最頻値を1つ知りたい</td><td>MODEと同じ</td><td>同率の最頻値をすべて把握したい</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc18">MODEとMODE.SNGLは同じ関数</span></h3>



<p class="wp-block-paragraph">MODE関数とMODE.SNGL関数は完全に同じ動作です。MODE.SNGLはMODEの別名（エイリアス）です。MODE.MULTとの対比で「Single（1つ）」と明示するために用意されています。</p>



<h3 class="wp-block-heading"><span id="toc19">どれを使うべき？</span></h3>



<ul class="wp-block-list"><li><strong>最頻値が1つだけほしい</strong> → <a href="https://mashukabu.com/spreadsheet-mode-function/">MODE関数</a>で十分</li><li><strong>同率の最頻値をすべて把握したい</strong> → MODE.MULT関数を使う</li><li><strong>最頻値の有無がわからないデータ</strong> → MODE.MULT関数 + IFERRORの組み合わせが安心</li></ul>



<p class="wp-block-paragraph">迷ったらMODE.MULT関数を使っておけば見落としを防げます。最頻値が1つなら、MODE関数と同じ結果が返るだけですよ。</p>



<h2 class="wp-block-heading"><span id="toc20">Excelとの違い</span></h2>



<p class="wp-block-paragraph">MODE.MULT関数はExcelとGoogleスプレッドシートでほぼ同じ動作です。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>Excel</th><th>Googleスプレッドシート</th></tr></thead><tbody><tr><td>構文</td><td>=MODE.MULT(数値1, &#8230;)</td><td>=MODE.MULT(値1, &#8230;)</td></tr><tr><td>動作</td><td>すべての最頻値を返す</td><td>すべての最頻値を返す</td></tr><tr><td>結果の展開</td><td>Ctrl+Shift+Enterが必要（古いExcel）</td><td>自動でスピル</td></tr><tr><td>空白セル</td><td>スキップ</td><td>スキップ</td></tr><tr><td>文字列セル</td><td>スキップ</td><td>スキップ</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">古いExcel（2019以前）では、Ctrl+Shift+Enterで確定する必要があります。Googleスプレッドシートでは通常のEnterで自動的にスピルします。</p>



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



<p class="wp-block-paragraph">MODE.MULT関数は、データの最頻値（最も多く出現する値）をすべて返す配列関数です。</p>



<p class="wp-block-paragraph">ポイントを整理します。</p>



<ul class="wp-block-list"><li>構文は <code>=MODE.MULT(値1, [値2, ...])</code> ですべての最頻値を返す</li><li>結果は縦方向に自動展開される（スピル）</li><li>最頻値が1つなら、MODE関数と同じ結果になる</li><li>展開先にデータがあると#REF!エラーになる</li><li>MODE関数とMODE.SNGL関数は最頻値を1つだけ返す</li><li>アンケート集計や価格帯分析で同率を見落とさずに済む</li></ul>



<p class="wp-block-paragraph">まずは <code>=MODE.MULT(範囲)</code> で複数の最頻値がないか確認してみてください。<a href="https://mashukabu.com/spreadsheet-mode-function/">MODE関数</a>と比べると、同率の値が隠れていたことに気づくかもしれませんよ。</p>



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



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/spreadsheet-mode-function/">スプレッドシートのMODE関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-mode-sngl-function/">スプレッドシートのMODE.SNGL関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-average-function/">スプレッドシートのAVERAGE関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-median-function/">スプレッドシートのMEDIAN関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-iferror-function/">スプレッドシートのIFERROR関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-countif-function/">スプレッドシートのCOUNTIF関数の使い方</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-mode-mult-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのRANDARRAY関数の使い方｜複数の乱数を一括生成</title>
		<link>https://mashukabu.com/spreadsheet-randarray-function/</link>
					<comments>https://mashukabu.com/spreadsheet-randarray-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 21 Mar 2026 11:31:37 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[RANDARRAY関数]]></category>
		<category><![CDATA[RANDBETWEEN関数]]></category>
		<category><![CDATA[RAND関数]]></category>
		<category><![CDATA[スプレッドシート]]></category>
		<category><![CDATA[テストデータ]]></category>
		<category><![CDATA[乱数]]></category>
		<category><![CDATA[配列関数]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4789</guid>

					<description><![CDATA[RANDARRAY関数を使えば、行数・列数を指定して乱数の配列を一括生成できます。テストデータ作成・シャッフル・ランダム抽出の実務例と、RAND・RANDBETWEENとの使い分けを解説します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「テストデータを大量に作りたいけど、1セルずつ入力するのは面倒&#8230;」と感じたことはありませんか。スプレッドシートで手作業で乱数を並べていくと、時間がかかるうえにミスも起きやすいですよね。そんなときは、RANDARRAY関数を使えば一発で解決します。この記事では、RANDARRAY関数の基本から実務で使える活用パターンまでまとめて解説します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-8" checked><label class="toc-title" for="toc-checkbox-8">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">RANDARRAY関数とは？スプレッドシートで乱数の配列を生成する関数</a><ol><li><a href="#toc2" tabindex="0">基本構文</a></li><li><a href="#toc3" tabindex="0">引数の説明</a></li><li><a href="#toc4" tabindex="0">戻り値</a></li><li><a href="#toc5" tabindex="0">対応環境</a></li><li><a href="#toc6" tabindex="0">ExcelのRANDARRAYとの違い</a></li></ol></li><li><a href="#toc7" tabindex="0">RANDARRAY関数の基本的な使い方</a><ol><li><a href="#toc8" tabindex="0">5行3列の乱数配列を生成する</a></li><li><a href="#toc9" tabindex="0">引数を省略したパターン</a></li><li><a href="#toc10" tabindex="0">計算のたびに値が変わる（揮発性関数）</a></li></ol></li><li><a href="#toc11" tabindex="0">RANDARRAY関数の実践的な使い方・応用例</a><ol><li><a href="#toc12" tabindex="0">パターン1: テストデータを一括生成する</a></li><li><a href="#toc13" tabindex="0">パターン2: 整数の乱数配列を作る</a></li><li><a href="#toc14" tabindex="0">パターン3: リストをランダムにシャッフルする</a></li><li><a href="#toc15" tabindex="0">パターン4: リストからN件をランダム抽出する</a></li><li><a href="#toc16" tabindex="0">パターン5: 重複なしでランダムにN件抽出する</a></li><li><a href="#toc17" tabindex="0">パターン6: 条件付きでランダム抽出する</a></li></ol></li><li><a href="#toc18" tabindex="0">揮発性関数の注意点と乱数の固定方法</a></li><li><a href="#toc19" tabindex="0">RAND・RANDBETWEEN・RANDARRAYの使い分け</a></li><li><a href="#toc20" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc21" tabindex="0">よくある質問（FAQ）</a></li><li><a href="#toc22" tabindex="0">まとめ</a><ol><li><a href="#toc23" tabindex="0">関連記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">RANDARRAY関数とは？スプレッドシートで乱数の配列を生成する関数</span></h2>



<p class="wp-block-paragraph">RANDARRAY関数は「ランドアレイ関数」と読みます。Random Array（ランダムな配列）が語源です。</p>



<p class="wp-block-paragraph">指定した行数・列数の乱数配列を一括で生成できます。1つのセルに数式を入れるだけで、周囲のセルに自動展開（スピル）されるのが特徴です。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-rand-function/">RAND関数</a>や<a href="https://mashukabu.com/spreadsheet-randbetween-function/">RANDBETWEEN関数</a>は1セルに1つの乱数しか返せません。一方、RANDARRAYなら「5行3列」のように複数の乱数をまとめて生成できますよ。</p>



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



<pre class="wp-block-code"><code>=RANDARRAY(行数, 列数)</code></pre>



<h3 class="wp-block-heading"><span id="toc3">引数の説明</span></h3>



<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></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc4">戻り値</span></h3>



<p class="wp-block-paragraph">0以上1未満の小数（例: 0.384729&#8230;）の配列を返します。</p>



<h3 class="wp-block-heading"><span id="toc5">対応環境</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>環境</th><th>対応状況</th></tr></thead><tbody><tr><td>Googleスプレッドシート</td><td>対応</td></tr><tr><td>Excel（Microsoft 365）</td><td>対応（ただし引数が異なる）</td></tr><tr><td>Excel 2021以前</td><td>非対応</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc6">ExcelのRANDARRAYとの違い</span></h3>



<p class="wp-block-paragraph">GoogleスプレッドシートとExcelでは、同じ関数名でも仕様が異なります。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>Googleスプレッドシート</th><th>Excel（Microsoft 365）</th></tr></thead><tbody><tr><td>引数の数</td><td>2つ（行数, 列数）</td><td>5つ（行数, 列数, 最小値, 最大値, 整数フラグ）</td></tr><tr><td>戻り値の範囲</td><td>0以上1未満（固定）</td><td>最小値〜最大値を指定可能</td></tr><tr><td>整数の生成</td><td><a href="https://mashukabu.com/spreadsheet-int-function/">INT関数</a>との組み合わせが必要</td><td>第5引数でTRUEを指定すればOK</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>ExcelのRANDARRAYには最小値・最大値・整数フラグの引数があります。しかしGoogleスプレッドシート版にはありません。Excelの解説記事を参考にすると混乱しやすいので注意してください。</p></blockquote>



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



<h3 class="wp-block-heading"><span id="toc8">5行3列の乱数配列を生成する</span></h3>



<p class="wp-block-paragraph">もっとも基本的な使い方です。セルに次の数式を入力します。</p>



<pre class="wp-block-code"><code>=RANDARRAY(5,3)</code></pre>



<p class="wp-block-paragraph">入力したセルを起点に、5行×3列の範囲に乱数が自動展開されます。すべて0以上1未満の小数です。</p>



<p class="wp-block-paragraph">展開先のセルにデータが入っていると、#REF!エラーになります。あらかじめ空欄にしておきましょう。</p>



<h3 class="wp-block-heading"><span id="toc9">引数を省略したパターン</span></h3>



<p class="wp-block-paragraph">引数はどちらも省略できます。</p>



<pre class="wp-block-code"><code>=RANDARRAY()</code></pre>



<p class="wp-block-paragraph">引数をすべて省略すると、1行×1列（1つだけ）の乱数を返します。この場合は<a href="https://mashukabu.com/spreadsheet-rand-function/">RAND関数</a>と同じ動きですね。</p>



<pre class="wp-block-code"><code>=RANDARRAY(5)</code></pre>



<p class="wp-block-paragraph">行数だけ指定すると、列数は1として扱われます。5行×1列の乱数が縦に並びます。</p>



<h3 class="wp-block-heading"><span id="toc10">計算のたびに値が変わる（揮発性関数）</span></h3>



<p class="wp-block-paragraph">RANDARRAYは揮発性関数です。スプレッドシートが再計算されるたびに値が変わります。</p>



<p class="wp-block-paragraph">具体的には、次のタイミングで値が更新されます。</p>



<ul class="wp-block-list"><li>どこかのセルを編集したとき</li><li>シートを開き直したとき</li><li>他の数式が再計算されたとき</li></ul>



<p class="wp-block-paragraph">「せっかく生成した乱数が消えてしまった」というトラブルは、この性質が原因です。値を固定する方法はこの記事の後半で解説しますね。</p>



<h2 class="wp-block-heading"><span id="toc11">RANDARRAY関数の実践的な使い方・応用例</span></h2>



<h3 class="wp-block-heading"><span id="toc12">パターン1: テストデータを一括生成する</span></h3>



<p class="wp-block-paragraph">0〜1の小数では使いにくい場面も多いですよね。四則演算を組み合わせれば、好きな範囲のデータを作れます。</p>



<p class="wp-block-paragraph">たとえば、0〜100の小数を5行3列で生成するにはこうします。</p>



<pre class="wp-block-code"><code>=RANDARRAY(5,3)*100</code></pre>



<p class="wp-block-paragraph">1000〜5000の範囲にしたいなら、次のように書きます。</p>



<pre class="wp-block-code"><code>=RANDARRAY(5,3)*4000+1000</code></pre>



<p class="wp-block-paragraph"><code>*4000</code>で範囲の幅を、<code>+1000</code>で下限を調整しています。</p>



<p class="wp-block-paragraph">連番のテストデータが必要なら、<a href="https://mashukabu.com/spreadsheet-sequence-function/">SEQUENCE関数</a>（連番を自動生成する関数）も合わせて使うと便利ですよ。</p>



<h3 class="wp-block-heading"><span id="toc13">パターン2: 整数の乱数配列を作る</span></h3>



<p class="wp-block-paragraph">テストデータでは整数がほしい場面が多いです。<a href="https://mashukabu.com/spreadsheet-int-function/">INT関数</a>（小数点以下を切り捨てる関数）を組み合わせましょう。</p>



<p class="wp-block-paragraph">1〜100の整数を10行3列で生成する数式です。</p>



<pre class="wp-block-code"><code>=INT(RANDARRAY(10,3)*100)+1</code></pre>



<p class="wp-block-paragraph">任意の範囲の整数を作りたいときは、次の公式を使ってください。</p>



<pre class="wp-block-code"><code>=INT(RANDARRAY(行数,列数)*(上限-下限+1))+下限</code></pre>



<p class="wp-block-paragraph">たとえば、50〜200の整数なら次のようになります。</p>



<pre class="wp-block-code"><code>=INT(RANDARRAY(10,3)*(200-50+1))+50</code></pre>



<p class="wp-block-paragraph"><code>*(上限-下限+1)</code>で範囲を決めて、<code>+下限</code>でスタート地点をずらす仕組みです。</p>



<p class="wp-block-paragraph">整数の乱数が1つだけほしいなら、<a href="https://mashukabu.com/spreadsheet-randbetween-function/">RANDBETWEEN関数</a>のほうがシンプルに書けます。大量に必要なときだけRANDARRAYを使い分けるのがポイントですよ。</p>



<h3 class="wp-block-heading"><span id="toc14">パターン3: リストをランダムにシャッフルする</span></h3>



<p class="wp-block-paragraph">A2:A11に名前リストがあるとします。これをランダムな順番に並べ替えるには、<a href="https://mashukabu.com/spreadsheet-sort-sortn-sortby/">SORT関数</a>と組み合わせます。</p>



<pre class="wp-block-code"><code>=SORT(A2:A11, RANDARRAY(ROWS(A2:A11)), TRUE)</code></pre>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-rows-function/">ROWS関数</a>（範囲の行数を返す関数）でリストの行数を取得し、同じ行数の乱数を生成しています。SORT関数がその乱数を基準に並べ替えるので、結果としてランダムな順番になります。</p>



<p class="wp-block-paragraph">別の列の値を基準に並べ替えたいなら、<a href="https://mashukabu.com/spreadsheet-sortby-function/">SORTBY関数</a>も確認してみてください。</p>



<p class="wp-block-paragraph">再計算のたびに順番が変わるため、確定したいときは値貼り付けで固定しましょう。</p>



<h3 class="wp-block-heading"><span id="toc15">パターン4: リストからN件をランダム抽出する</span></h3>



<p class="wp-block-paragraph">シャッフルの応用で、リストから指定件数だけランダムに取り出せます。</p>



<p class="wp-block-paragraph">A2:A11の10件から3件をランダム抽出する数式です。</p>



<pre class="wp-block-code"><code>=SORTN(SORT(A2:A11, RANDARRAY(ROWS(A2:A11)), TRUE), 3)</code></pre>



<p class="wp-block-paragraph">まずSORT+RANDARRAYでリストをシャッフルします。次に<a href="https://mashukabu.com/spreadsheet-sort-sortn-sortby/">SORTN関数</a>で上から3件だけ取り出しています。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-index-function/">INDEX関数</a>を使う方法もあります。</p>



<pre class="wp-block-code"><code>=INDEX(A2:A11, INT(RANDARRAY(3,1)*ROWS(A2:A11))+1)</code></pre>



<p class="wp-block-paragraph">こちらはランダムな行番号を生成してINDEXで取り出す方式です。ただし重複が発生する可能性があります。重複NGならSORTN方式がおすすめですよ。</p>



<h3 class="wp-block-heading"><span id="toc16">パターン5: 重複なしでランダムにN件抽出する</span></h3>



<p class="wp-block-paragraph">パターン4のSORTN方式は、もともと重複なしでN件を取り出せます。シャッフルしてから上位N件を切り出す方式なので、同じ行が二度選ばれることはありません。</p>



<p class="wp-block-paragraph">一方、INDEX方式では重複の可能性がありました。重複を除きたいなら<a href="https://mashukabu.com/spreadsheet-unique-function/">UNIQUE関数</a>（重複を除去する関数）で囲む方法もあります。</p>



<pre class="wp-block-code"><code>=UNIQUE(INDEX(A2:A11, INT(RANDARRAY(5,1)*ROWS(A2:A11))+1))</code></pre>



<p class="wp-block-paragraph">ただし、この方法は重複除去後の件数が安定しません。確実にN件を取り出したいなら、パターン4のSORTN方式がおすすめですよ。</p>



<h3 class="wp-block-heading"><span id="toc17">パターン6: 条件付きでランダム抽出する</span></h3>



<p class="wp-block-paragraph">「営業部のメンバーだけからランダムに3人選びたい」のように、条件を付けて抽出するケースもありますよね。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-filter-function/">FILTER関数</a>（条件に合うデータだけを抽出する関数）と組み合わせると実現できます。</p>



<pre class="wp-block-code"><code>=SORTN(SORT(FILTER(A2:A11, B2:B11=&quot;営業部&quot;), RANDARRAY(COUNTA(FILTER(B2:B11, B2:B11=&quot;営業部&quot;))), TRUE), 3)</code></pre>



<p class="wp-block-paragraph">まずFILTER関数で「営業部」のデータだけを取り出します。そのあとSORT+RANDARRAYでシャッフルし、SORTNで3件に絞っています。<a href="https://mashukabu.com/spreadsheet-counta-function/">COUNTA関数</a>（データの件数を数える関数）で絞り込み後の行数を取得しているのがポイントです。</p>



<p class="wp-block-paragraph">数式は少し長くなりますが、やっていることはシンプルです。「絞り込む → シャッフルする → 上からN件取る」の3ステップですよ。</p>



<h2 class="wp-block-heading"><span id="toc18">揮発性関数の注意点と乱数の固定方法</span></h2>



<p class="wp-block-paragraph">RANDARRAY関数は再計算のたびに値が変わります。生成した乱数を保持したい場合は、値として貼り付けましょう。</p>



<p class="wp-block-paragraph">手順は次のとおりです。</p>



<ol class="wp-block-list"><li>RANDARRAY関数で生成された範囲を選択してコピーする</li><li>同じ範囲を選択した状態で、Ctrl+Shift+V（Macの場合はCmd+Shift+V）で値のみ貼り付ける</li></ol>



<p class="wp-block-paragraph">これで数式が消え、値だけが残ります。</p>



<p class="wp-block-paragraph">乱数の固定方法については<a href="https://mashukabu.com/spreadsheet-rand-function/">RAND関数の記事</a>で詳しく解説しています。仕組みは同じなので、あわせて確認してみてください。</p>



<h2 class="wp-block-heading"><span id="toc19">RAND・RANDBETWEEN・RANDARRAYの使い分け</span></h2>



<p class="wp-block-paragraph">スプレッドシートには乱数を生成する関数が3つあります。目的に応じて使い分けましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>RAND</th><th>RANDBETWEEN</th><th>RANDARRAY</th></tr></thead><tbody><tr><td>生成数</td><td>1つ</td><td>1つ</td><td>複数（配列）</td></tr><tr><td>戻り値</td><td>0以上1未満の小数</td><td>指定範囲の整数</td><td>0以上1未満の小数の配列</td></tr><tr><td>引数</td><td>なし</td><td>下限, 上限</td><td>行数, 列数</td></tr><tr><td>主な用途</td><td>単一の乱数がほしいとき</td><td>整数の乱数が1つほしいとき</td><td>大量の乱数を一括生成したいとき</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">判断の基準はシンプルです。</p>



<ul class="wp-block-list"><li><strong>乱数が1つだけほしい</strong> → <a href="https://mashukabu.com/spreadsheet-rand-function/">RAND関数</a>（小数）または<a href="https://mashukabu.com/spreadsheet-randbetween-function/">RANDBETWEEN関数</a>（整数）</li><li><strong>乱数を大量に一括生成したい</strong> → RANDARRAY関数</li><li><strong>整数の乱数を大量に生成したい</strong> → RANDARRAY関数+<a href="https://mashukabu.com/spreadsheet-int-function/">INT関数</a>の組み合わせ</li></ul>



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



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>#REF!</td><td>配列の展開先にデータが入っている</td><td>展開先のセルを空欄にする</td></tr><tr><td>#VALUE!</td><td>引数に数値以外（文字列など）を指定した</td><td>行数・列数には正の整数を指定する</td></tr><tr><td>#NUM!</td><td>引数に0以下の数値を指定した</td><td>1以上の正の整数を指定する</td></tr><tr><td>値が勝手に変わる</td><td>揮発性関数の仕様</td><td>値貼り付け（Ctrl+Shift+V）で固定する</td></tr></tbody></table></figure>



<h2 class="wp-block-heading"><span id="toc21">よくある質問（FAQ）</span></h2>



<p class="wp-block-paragraph"><strong>Q. GoogleスプレッドシートのRANDARRAYはExcelと引数が違う？</strong></p>



<p class="wp-block-paragraph">A. はい、異なります。ExcelのRANDARRAYは「行数, 列数, 最小値, 最大値, 整数フラグ」の5引数ですが、Googleスプレッドシート版は「行数, 列数」の2引数のみです。整数を生成したい場合はINT関数と組み合わせます。</p>



<p class="wp-block-paragraph"><strong>Q. 乱数の値を固定する（再計算されないようにする）方法は？</strong></p>



<p class="wp-block-paragraph">A. 生成された範囲をコピーして、同じ場所に「値のみ貼り付け」（Ctrl+Shift+V）します。これで数式が消えて値が固定されます。</p>



<p class="wp-block-paragraph"><strong>Q. 重複なしでランダムに抽出するには？</strong></p>



<p class="wp-block-paragraph">A. <code>=SORTN(SORT(範囲, RANDARRAY(ROWS(範囲)), TRUE), N件)</code> と書きます。シャッフルしてから上位N件を切り出す方式なので重複が起きません。</p>



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



<p class="wp-block-paragraph">RANDARRAY関数のポイントをおさらいします。</p>



<ul class="wp-block-list"><li>RANDARRAY関数は、指定した行数×列数の乱数配列を一括生成する関数</li><li>Googleスプレッドシート版の引数は「行数」と「列数」の2つだけ</li><li>戻り値は0以上1未満の小数で、整数にしたいときは<a href="https://mashukabu.com/spreadsheet-int-function/">INT関数</a>と組み合わせる</li><li>四則演算で任意の範囲のデータを生成できる</li><li><a href="https://mashukabu.com/spreadsheet-sort-sortn-sortby/">SORT関数</a>や<a href="https://mashukabu.com/spreadsheet-filter-function/">FILTER関数</a>と組み合わせれば、シャッフルやランダム抽出も可能</li><li>揮発性関数なので、値を保持したいときは値貼り付けで固定する</li></ul>



<p class="wp-block-paragraph">テストデータの作成やランダム抽出など、使いこなせると作業効率がぐっと上がります。ぜひ実際のシートで試してみてください。</p>



<h3 class="wp-block-heading"><span id="toc23">関連記事</span></h3>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/spreadsheet-rand-function/">スプレッドシートのRAND関数の使い方｜乱数を固定する方法も解説</a></li><li><a href="https://mashukabu.com/spreadsheet-randbetween-function/">スプレッドシートのRANDBETWEEN関数の使い方｜範囲内の整数をランダムに生成</a></li><li><a href="https://mashukabu.com/spreadsheet-sort-sortn-sortby/">スプレッドシートのSORT・SORTN・SORTBY関数の使い方｜データを自動で並べ替える</a></li><li><a href="https://mashukabu.com/spreadsheet-sortby-function/">スプレッドシートのSORTBY関数の使い方｜別列基準で並べ替え</a></li><li><a href="https://mashukabu.com/spreadsheet-sequence-function/">スプレッドシートのSEQUENCE関数の使い方｜連番・日付・2次元配列を自動生成</a></li><li><a href="https://mashukabu.com/spreadsheet-unique-function/">スプレッドシートのUNIQUE関数の使い方｜重複を瞬時に除去</a></li><li><a href="https://mashukabu.com/spreadsheet-filter-function/">スプレッドシートのFILTER関数の使い方｜条件抽出を自動化する方法</a></li><li><a href="https://mashukabu.com/spreadsheet-index-function/">スプレッドシートのINDEX関数の使い方</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-randarray-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのSCAN関数の使い方｜累積計算の中間値を返す</title>
		<link>https://mashukabu.com/spreadsheet-scan-function/</link>
					<comments>https://mashukabu.com/spreadsheet-scan-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 21 Mar 2026 11:30:46 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[LAMBDA関数]]></category>
		<category><![CDATA[REDUCE関数]]></category>
		<category><![CDATA[SCAN関数]]></category>
		<category><![CDATA[累積計算]]></category>
		<category><![CDATA[配列関数]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4769</guid>

					<description><![CDATA[スプレッドシートのSCAN関数を基礎から解説。LAMBDA関数との組み合わせ方、累積合計・在庫推移・残高推移など実務パターン、REDUCE関数との違い・使い分けまで紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「累積合計を一覧で表示したい」と思うことはありますよね。SUM関数で合計は出せますが、途中経過は表示できません。</p>



<p class="wp-block-paragraph">SCAN関数を使えば、各ステップの中間値を配列で返せます。累積売上や残高推移が数式1つで完成しますよ。</p>



<p class="wp-block-paragraph">この記事では、SCAN関数の基本からREDUCE関数との違いまでわかりやすく解説します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-9" checked><label class="toc-title" for="toc-checkbox-9">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">SCAN関数とは？</a><ol><li><a href="#toc2" tabindex="0">SCAN関数の基本構文</a></li><li><a href="#toc3" tabindex="0">初期値・累積値とは？</a></li><li><a href="#toc4" tabindex="0">LAMBDA関数のおさらい</a></li></ol></li><li><a href="#toc5" tabindex="0">SCAN関数の基本的な使い方</a><ol><li><a href="#toc6" tabindex="0">サンプルデータ</a></li><li><a href="#toc7" tabindex="0">累積合計を求める</a></li><li><a href="#toc8" tabindex="0">累積積を求める</a></li><li><a href="#toc9" tabindex="0">文字列を逐次結合する</a></li></ol></li><li><a href="#toc10" tabindex="0">SCAN関数の実務活用パターン</a><ol><li><a href="#toc11" tabindex="0">パターン1: 月次の累積売上を表示する</a></li><li><a href="#toc12" tabindex="0">パターン2: 在庫数の推移を計算する</a></li><li><a href="#toc13" tabindex="0">パターン3: 口座残高の推移を表示する</a></li></ol></li><li><a href="#toc14" tabindex="0">REDUCE関数との違い・使い分け</a><ol><li><a href="#toc15" tabindex="0">SCAN関数が向いている場面</a></li><li><a href="#toc16" tabindex="0">REDUCE関数が向いている場面</a></li><li><a href="#toc17" tabindex="0">選び方の判断基準</a></li></ol></li><li><a href="#toc18" tabindex="0">LAMBDA系関数の全体像</a></li><li><a href="#toc19" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc20" tabindex="0">まとめ</a><ol><li><a href="#toc21" tabindex="0">この記事で紹介した関数・関連記事</a></li></ol></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">SCAN関数（読み方: スキャン関数）は、配列の<strong>全要素を順番に処理して、各ステップの中間値を配列で返す</strong>関数です。「scan（走査する）」が名前の由来ですね。</p>



<p class="wp-block-paragraph">先頭からデータをたどりながら結果を記録するイメージです。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-reduce-function/">REDUCE関数</a>が「最終値だけ」を返すのに対し、SCAN関数は「途中経過もすべて」返します。これが最大の特長です。</p>



<p class="wp-block-paragraph">SCAN関数にできることをまとめると、次のとおりです。</p>



<ul class="wp-block-list"><li>配列の全要素を順番に処理して中間値を配列で返す</li><li>LAMBDA関数で処理内容を自由にカスタマイズできる</li><li>「前回の結果を次の計算に使う」累積処理の途中経過が見える</li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>SCAN関数はGoogleスプレッドシート独自の関数です。Excelには対応する関数がありません。同様の処理は、SUM関数と$記号を組み合わせた累積合計で対応してください。</p></blockquote>



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



<pre class="wp-block-code"><code>=SCAN(初期値, 配列, LAMBDA(累積値, 現在値, 処理))</code></pre>



<p class="wp-block-paragraph">カッコの中に、初期値・処理対象の配列・各要素に適用するLAMBDA関数を指定します。構文は<a href="https://mashukabu.com/spreadsheet-reduce-function/">REDUCE関数</a>と同じです。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>説明</th></tr></thead><tbody><tr><td>初期値</td><td>必須</td><td>累積処理の開始値。合計なら0、積なら1、文字列結合なら&#8221;&#8221;</td></tr><tr><td>配列</td><td>必須</td><td>処理対象のセル範囲または配列</td></tr><tr><td>LAMBDA(累積値, 現在値, 処理)</td><td>必須</td><td>各要素に適用する関数。仮引数は必ず2つ</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">LAMBDA関数の仮引数は必ず2つ必要です。1つ目が「累積値」、2つ目が「現在値」を受け取ります。</p>



<h3 class="wp-block-heading"><span id="toc3">初期値・累積値とは？</span></h3>



<p class="wp-block-paragraph">SCAN関数を理解するカギは「初期値」と「累積値」です。</p>



<p class="wp-block-paragraph">初期値は「最初に手元に何を持って始めるか」を決める値です。合計を求めるなら0、積を求めるなら1を指定します。</p>



<p class="wp-block-paragraph">累積値は「ここまでの処理結果」が入る変数です。最初の要素を処理するときは初期値が入ります。2番目以降は前回の処理結果が入ります。</p>



<p class="wp-block-paragraph">次の数式を例に動きを見てみましょう。</p>



<p class="wp-block-paragraph"><code>=SCAN(0, {10,20,30}, LAMBDA(acc, val, acc+val))</code></p>



<ol class="wp-block-list"><li>acc=0, val=10 → 0+10=10 → 配列に <strong>10</strong> を記録</li><li>acc=10, val=20 → 10+20=30 → 配列に <strong>30</strong> を記録</li><li>acc=30, val=30 → 30+30=60 → 配列に <strong>60</strong> を記録</li></ol>



<p class="wp-block-paragraph">結果は <code>{10, 30, 60}</code> です。REDUCE関数なら最終値の60だけが返ります。SCAN関数は各ステップの値をすべて返すのが違いです。</p>



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



<p class="wp-block-paragraph">SCAN関数を理解するには、LAMBDA関数の基本を知っておく必要があります。</p>



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



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



<p class="wp-block-paragraph">たとえば <code>=LAMBDA(x, x*2)(5)</code> と書くと、xに5が入って10が返ります。SCAN関数の中では、累積値と現在値が自動的に渡されます。</p>



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



<p class="wp-block-paragraph">ここでは、シンプルな数値データを使ってSCAN関数の動きを確認していきます。</p>



<h3 class="wp-block-heading"><span id="toc6">サンプルデータ</span></h3>



<p class="wp-block-paragraph">A1:A5に以下のデータが入っているとします。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A</th></tr></thead><tbody><tr><td>1</td><td>売上</td></tr><tr><td>2</td><td>100</td></tr><tr><td>3</td><td>200</td></tr><tr><td>4</td><td>150</td></tr><tr><td>5</td><td>250</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc7">累積合計を求める</span></h3>



<p class="wp-block-paragraph">A2:A5の累積合計を求めます。出力先のセル（たとえばB2）に以下の数式を入力してください。</p>



<pre class="wp-block-code"><code>=SCAN(0, A2:A5, LAMBDA(acc, val, acc + val))</code></pre>



<p class="wp-block-paragraph">結果は <code>{100, 300, 450, 700}</code> です。B2:B5に各ステップの累積合計が展開されます。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A</th><th>B</th></tr></thead><tbody><tr><td>1</td><td>売上</td><td>累積合計</td></tr><tr><td>2</td><td>100</td><td>100</td></tr><tr><td>3</td><td>200</td><td>300</td></tr><tr><td>4</td><td>150</td><td>450</td></tr><tr><td>5</td><td>250</td><td>700</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-sum-function/">SUM関数</a>では最終合計の700しか出せません。途中経過も見たいときはSCAN関数の出番です。</p>



<h3 class="wp-block-heading"><span id="toc8">累積積を求める</span></h3>



<p class="wp-block-paragraph">各数値を順番に掛け合わせた途中経過を表示するには、初期値を1にして掛け算します。</p>



<pre class="wp-block-code"><code>=SCAN(1, A2:A5, LAMBDA(acc, val, acc * val))</code></pre>



<p class="wp-block-paragraph">結果は <code>{100, 20000, 3000000, 750000000}</code> です。初期値を1にするのがポイントですね。0だと何を掛けても0になります。</p>



<h3 class="wp-block-heading"><span id="toc9">文字列を逐次結合する</span></h3>



<p class="wp-block-paragraph">B1:B4に「東京」「大阪」「名古屋」「福岡」が入っている場合、1つずつ追加していく過程を表示できます。</p>



<pre class="wp-block-code"><code>=SCAN(&quot;&quot;, B1:B4, LAMBDA(acc, val, IF(acc=&quot;&quot;, val, acc &amp; &quot;→&quot; &amp; val)))</code></pre>



<p class="wp-block-paragraph">各ステップで文字列が増えていく様子が一覧で確認できますよ。結果は次のとおりです。</p>



<p class="wp-block-paragraph"><code>{"東京", "東京→大阪", "東京→大阪→名古屋", "東京→大阪→名古屋→福岡"}</code></p>



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



<h3 class="wp-block-heading"><span id="toc11">パターン1: 月次の累積売上を表示する</span></h3>



<p class="wp-block-paragraph">月ごとの売上データから、累積売上の推移を自動で表示する例です。A列に月名、B列に売上が入っているとします。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A</th><th>B</th></tr></thead><tbody><tr><td>1</td><td>月</td><td>売上</td></tr><tr><td>2</td><td>1月</td><td>500,000</td></tr><tr><td>3</td><td>2月</td><td>620,000</td></tr><tr><td>4</td><td>3月</td><td>480,000</td></tr><tr><td>5</td><td>4月</td><td>710,000</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">C2に以下の数式を入力してください。</p>



<pre class="wp-block-code"><code>=SCAN(0, B2:B5, LAMBDA(acc, val, acc + val))</code></pre>



<p class="wp-block-paragraph">結果は <code>{500000, 1120000, 1600000, 2310000}</code> です。</p>



<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>月</td><td>売上</td><td>累積売上</td></tr><tr><td>2</td><td>1月</td><td>500,000</td><td>500,000</td></tr><tr><td>3</td><td>2月</td><td>620,000</td><td>1,120,000</td></tr><tr><td>4</td><td>3月</td><td>480,000</td><td>1,600,000</td></tr><tr><td>5</td><td>4月</td><td>710,000</td><td>2,310,000</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">売上レポートで「年初からの累計」を並べたい場面にぴったりです。行を追加しても数式を修正する必要がありません。</p>



<h3 class="wp-block-heading"><span id="toc12">パターン2: 在庫数の推移を計算する</span></h3>



<p class="wp-block-paragraph">入荷と出荷のデータから、在庫数の推移を追跡する例です。初期在庫100個からスタートします。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A</th><th>B</th></tr></thead><tbody><tr><td>1</td><td>日付</td><td>入出荷</td></tr><tr><td>2</td><td>3/1</td><td>+50</td></tr><tr><td>3</td><td>3/5</td><td>-30</td></tr><tr><td>4</td><td>3/10</td><td>+80</td></tr><tr><td>5</td><td>3/15</td><td>-60</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">C2に以下の数式を入力してください。</p>



<pre class="wp-block-code"><code>=SCAN(100, B2:B5, LAMBDA(acc, val, acc + val))</code></pre>



<p class="wp-block-paragraph">結果は <code>{150, 120, 200, 140}</code> です。初期値に100（期首在庫）を指定しています。</p>



<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>日付</td><td>入出荷</td><td>在庫数</td></tr><tr><td>2</td><td>3/1</td><td>+50</td><td>150</td></tr><tr><td>3</td><td>3/5</td><td>-30</td><td>120</td></tr><tr><td>4</td><td>3/10</td><td>+80</td><td>200</td></tr><tr><td>5</td><td>3/15</td><td>-60</td><td>140</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">初期値を変えるだけで「期首在庫が違う場合」もすぐに対応できます。累積処理はSCAN関数が最も得意とするパターンです。</p>



<h3 class="wp-block-heading"><span id="toc13">パターン3: 口座残高の推移を表示する</span></h3>



<p class="wp-block-paragraph">入出金データから口座残高の推移を計算する例です。初期残高を1,000,000円とします。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A</th><th>B</th></tr></thead><tbody><tr><td>1</td><td>摘要</td><td>金額</td></tr><tr><td>2</td><td>給与</td><td>250,000</td></tr><tr><td>3</td><td>家賃</td><td>-80,000</td></tr><tr><td>4</td><td>食費</td><td>-35,000</td></tr><tr><td>5</td><td>副業</td><td>50,000</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">C2に以下の数式を入力してください。</p>



<pre class="wp-block-code"><code>=SCAN(1000000, B2:B5, LAMBDA(acc, val, acc + val))</code></pre>



<p class="wp-block-paragraph">結果は <code>{1250000, 1170000, 1135000, 1185000}</code> です。</p>



<p class="wp-block-paragraph">残高の推移が一覧で見えます。どの時点で残高が最も少なかったかもひと目でわかりますよ。</p>



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



<p class="wp-block-paragraph">SCAN関数と最も混同しやすいのが<a href="https://mashukabu.com/spreadsheet-reduce-function/">REDUCE関数</a>です。構文はまったく同じですが、返す結果が異なります。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>SCAN関数</th><th>REDUCE関数</th></tr></thead><tbody><tr><td>戻り値</td><td>中間値を含む配列</td><td>最終値のみ（1つの値）</td></tr><tr><td>結果の形</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 class="wp-block-paragraph">たとえば <code>{10, 20, 30}</code> に対して累積合計を求めた場合、結果はこうなります。</p>



<ul class="wp-block-list"><li><strong>SCAN</strong>: {10, 30, 60}（途中経過も含む配列）</li><li><strong>REDUCE</strong>: 60（最終値のみ）</li></ul>



<h3 class="wp-block-heading"><span id="toc15">SCAN関数が向いている場面</span></h3>



<p class="wp-block-paragraph">「途中経過も見たい」ときはSCAN関数です。累積売上推移・口座残高の推移・在庫数の変動など、一覧表示に向いています。</p>



<h3 class="wp-block-heading"><span id="toc16">REDUCE関数が向いている場面</span></h3>



<p class="wp-block-paragraph">「最終的な1つの値だけ欲しい」ときは<a href="https://mashukabu.com/spreadsheet-reduce-function/">REDUCE関数</a>です。合計金額や累積割引後の最終価格など、答えが1つに定まる処理に向いています。</p>



<h3 class="wp-block-heading"><span id="toc17">選び方の判断基準</span></h3>



<p class="wp-block-paragraph">迷ったときは次のように考えてください。</p>



<ul class="wp-block-list"><li>結果をセル1つに出したい → REDUCE関数</li><li>結果を一覧（複数セル）で見たい → SCAN関数</li></ul>



<p class="wp-block-paragraph">構文が同じなので、まずSCAN関数で途中経過を確認してからREDUCE関数に切り替える、という使い方もおすすめですよ。</p>



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



<p class="wp-block-paragraph">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-map-function/">MAP</a></td><td>セルごと</td><td>元と同じ形</td><td>セルごとの変換・加工</td></tr><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><a href="https://mashukabu.com/spreadsheet-reduce-function/">REDUCE</a></td><td>配列全体</td><td>1つの値</td><td>全体を1つに集約</td></tr><tr><td>SCAN</td><td>累積</td><td>元と同じサイズ</td><td>累積計算の中間結果</td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-makearray-function/">MAKEARRAY</a></td><td>行×列</td><td>新しい配列</td><td>計算で配列を生成</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">SCAN関数はREDUCE関数の対です。最終値だけならREDUCE、途中経過も必要ならSCANと覚えておきましょう。</p>



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



<p class="wp-block-paragraph">SCAN関数は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>「SCAN」のスペルを確認してください</td></tr><tr><td><code>#NAME?</code></td><td>Excelで使用しようとした</td><td>SCAN関数はGoogleスプレッドシート専用です</td></tr><tr><td><code>#NAME?</code></td><td>LAMBDA関数の仮引数名が不正</td><td>仮引数名にセル参照（A1等）やスペースは使えません</td></tr><tr><td><code>#N/A</code></td><td>LAMBDAの引数が2つでない</td><td>LAMBDAの仮引数は必ず2つ（累積値と現在値）にしてください</td></tr><tr><td><code>#VALUE!</code></td><td>初期値の型が処理と合わない</td><td>合計なら0、文字列結合なら&#8221;&#8221;を初期値にしてください</td></tr><tr><td><code>#ERROR!</code></td><td>LAMBDAの構文ミス</td><td>カッコの閉じ忘れ、カンマの過不足を確認してください</td></tr><tr><td><code>#REF!</code></td><td>展開先のセルにデータがある</td><td>SCAN関数は配列を返すため、展開先のセルを空にしてください</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">特に多いのが「LAMBDAの引数が2つでない」エラーです。仮引数は必ず2つにしてください。1つや3つだと<code>#N/A</code>エラーになります。</p>



<p class="wp-block-paragraph">SCAN関数は配列を返すため、展開先に既存データがあると<code>#REF!</code>エラーになります。出力先のセル範囲を事前に空にしておきましょう。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>LAMBDA関数の仮引数名で迷ったら、<code>acc</code>（accumulator の略）と<code>val</code>（value の略）を使うのがおすすめです。累積値と現在値の役割が一目でわかります。なお、SCAN関数は1つの配列に対して最大約39,998回まで繰り返し処理ができます。</p></blockquote>



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



<p class="wp-block-paragraph">SCAN関数は、各ステップの中間値を配列で返す関数です。途中経過を一覧で表示したい場面で活躍します。</p>



<p class="wp-block-paragraph">この記事のポイントをおさらいしておきましょう。</p>



<ul class="wp-block-list"><li>SCAN関数は<code>=SCAN(初期値, 配列, LAMBDA(acc, val, 処理))</code>で、中間値を含む配列を返す</li><li>初期値は「最初に手元に何を持って始めるか」を決める値（合計なら0、積なら1）</li><li>累積売上・在庫推移・残高推移など、途中経過を見たい場面に最適</li><li>REDUCE関数は最終値のみ。途中経過も欲しいならSCAN関数を選ぶ</li><li>構文はREDUCE関数とまったく同じ。切り替えも簡単</li><li>Googleスプレッドシート独自の関数で、Excelでは使えない</li></ul>



<p class="wp-block-paragraph">まずはシンプルな累積合計から試してみてください。</p>



<p class="wp-block-paragraph"><code>=SCAN(0, A2:A5, LAMBDA(acc, val, acc + val))</code></p>



<p class="wp-block-paragraph">途中経過が配列で返ってくる動作を体感すれば、さまざまな累積処理に応用できますよ。</p>



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



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/spreadsheet-reduce-function/">スプレッドシートのREDUCE関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-sum-function/">スプレッドシートのSUM関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-map-function/">スプレッドシートのMAP関数の使い方</a></li><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-makearray-function/">スプレッドシートのMAKEARRAY関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-arrayformula-function/">スプレッドシートのARRAYFORMULA関数の使い方</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-scan-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのSEQUENCE関数の使い方｜連番・日付・2次元配列を自動生成</title>
		<link>https://mashukabu.com/spreadsheet-sequence-function/</link>
					<comments>https://mashukabu.com/spreadsheet-sequence-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 21 Mar 2026 11:30:37 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[ROW関数]]></category>
		<category><![CDATA[SEQUENCE]]></category>
		<category><![CDATA[スプレッドシート]]></category>
		<category><![CDATA[日付連番]]></category>
		<category><![CDATA[連番]]></category>
		<category><![CDATA[配列関数]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4765</guid>

					<description><![CDATA[スプレッドシートのSEQUENCE関数の使い方を解説します。縦・横・2次元の連番生成、日付の連番、ROW関数との使い分けまで、実務ですぐ使えるサンプルで丁寧に説明します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「1, 2, 3…と連番を手入力するのが面倒」「日付の一覧をサッと作りたい」。スプレッドシートで表を作っていると、こんな場面は多いですよね。</p>



<p class="wp-block-paragraph">オートフィルで引っ張る方法もありますが、行の追加・削除のたびにズレてしまいます。数が多いと確認も大変です。</p>



<p class="wp-block-paragraph">そんなときに便利なのが <strong>SEQUENCE関数</strong> です。行数と開始値を指定するだけで、連番や日付の一覧を自動生成してくれます。</p>



<p class="wp-block-paragraph">この記事では、SEQUENCE関数の基本から、日付・時刻連番の作り方、FILTER・SORTとの組み合わせまで実例つきで紹介します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-10" checked><label class="toc-title" for="toc-checkbox-10">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">SEQUENCE関数とは？</a></li><li><a href="#toc2" tabindex="0">SEQUENCE関数の書き方（構文と引数）</a><ol><li><a href="#toc3" tabindex="0">構文</a></li><li><a href="#toc4" tabindex="0">引数の意味と省略ルール</a></li></ol></li><li><a href="#toc5" tabindex="0">SEQUENCE関数の基本的な使い方</a><ol><li><a href="#toc6" tabindex="0">縦方向の連番を作る</a></li><li><a href="#toc7" tabindex="0">横方向の連番を作る</a></li><li><a href="#toc8" tabindex="0">2次元配列の連番を作る</a></li></ol></li><li><a href="#toc9" tabindex="0">実践的な使い方・応用例</a><ol><li><a href="#toc10" tabindex="0">パターン1：日付の連番を自動生成する</a></li><li><a href="#toc11" tabindex="0">パターン2：時刻連番で予定表を作る</a></li><li><a href="#toc12" tabindex="0">パターン3：降順・ステップ付き連番</a></li><li><a href="#toc13" tabindex="0">パターン4：FILTER・SORTとの組み合わせ</a></li></ol></li><li><a href="#toc14" tabindex="0">ROW関数との違い・使い分け</a></li><li><a href="#toc15" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc16" tabindex="0">まとめ</a><ol><li><a href="#toc17" tabindex="0">この記事を書いた人</a></li><li><a href="#toc18" tabindex="0">関連記事</a></li></ol></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">SEQUENCE関数は、指定した行数・列数に応じて <strong>連続した数値の配列を自動生成する</strong> 関数です。<br>読み方は「シーケンス関数」で、英語の「sequence（連続・順序）」が語源です。</p>



<p class="wp-block-paragraph">たとえば <code>=SEQUENCE(5)</code> と入力すれば、1〜5の連番が縦方向に一括で出力されます。</p>



<p class="wp-block-paragraph">先頭セルに数式を入力するだけで、結果が自動で展開されます。<a href="https://mashukabu.com/spreadsheet-arrayformula-function/">ARRAYFORMULA関数</a>を使う必要はありません。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>SEQUENCE関数はGoogleスプレッドシートと Excel（Microsoft 365 / Excel 2021 以降）で使えます。<a href="https://mashukabu.com/excel-function-howto-use-sequence/">ExcelのSEQUENCE関数</a>も構文は同じです。</p></blockquote>



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



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



<pre class="wp-block-code"><code>=SEQUENCE(行数, [列数], [開始値], [増分量])</code></pre>



<h3 class="wp-block-heading"><span id="toc4">引数の意味と省略ルール</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>説明</th><th>デフォルト値</th></tr></thead><tbody><tr><td>行数</td><td>必須</td><td>生成する行数（例: <code>5</code>）</td><td>—</td></tr><tr><td>列数</td><td>任意</td><td>生成する列数（例: <code>3</code>）</td><td>1</td></tr><tr><td>開始値</td><td>任意</td><td>最初の値（例: <code>0</code> や <code>100</code>）</td><td>1</td></tr><tr><td>増分量</td><td>任意</td><td>値の増え幅（例: <code>10</code>）</td><td>1</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>必須は「行数」だけです。<code>=SEQUENCE(5)</code> なら、1列・開始値1・増分1で「1, 2, 3, 4, 5」が縦に並びます。</p></blockquote>



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



<h3 class="wp-block-heading"><span id="toc6">縦方向の連番を作る</span></h3>



<p class="wp-block-paragraph">もっともシンプルな使い方です。空いているセル（たとえばA2）に次の数式を入力します。</p>



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



<p class="wp-block-paragraph">結果はこうなります。</p>



<figure class="wp-block-table"><table><thead><tr><th>A列</th></tr></thead><tbody><tr><td>1</td></tr><tr><td>2</td></tr><tr><td>3</td></tr><tr><td>4</td></tr><tr><td>5</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">行数に <code>5</code> を指定しただけで、1〜5の連番が自動で展開されました。</p>



<h3 class="wp-block-heading"><span id="toc7">横方向の連番を作る</span></h3>



<p class="wp-block-paragraph">列数を指定して行数を <code>1</code> にすると、横方向に展開されます。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>A列</th><th>B列</th><th>C列</th><th>D列</th><th>E列</th></tr></thead><tbody><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">月ごとのヘッダーや曜日ラベルを並べたいときに便利です。</p>



<h3 class="wp-block-heading"><span id="toc8">2次元配列の連番を作る</span></h3>



<p class="wp-block-paragraph">行数と列数の両方を指定すると、2次元の配列が生成されます。</p>



<pre class="wp-block-code"><code>=SEQUENCE(3,4)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>A列</th><th>B列</th><th>C列</th><th>D列</th></tr></thead><tbody><tr><td>1</td><td>2</td><td>3</td><td>4</td></tr><tr><td>5</td><td>6</td><td>7</td><td>8</td></tr><tr><td>9</td><td>10</td><td>11</td><td>12</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">左から右、上から下へと行優先で番号が埋まります。3行×4列で合計12個の連番ですね。</p>



<h2 class="wp-block-heading"><span id="toc9">実践的な使い方・応用例</span></h2>



<h3 class="wp-block-heading"><span id="toc10">パターン1：日付の連番を自動生成する</span></h3>



<p class="wp-block-paragraph">SEQUENCE関数は日付の連番にも使えます。開始値にDATE関数を指定しましょう。</p>



<pre class="wp-block-code"><code>=SEQUENCE(30,1,DATE(2025,4,1),1)</code></pre>



<p class="wp-block-paragraph">この数式で、2025年4月1日から30日分の連続した日付が生成されます。</p>



<p class="wp-block-paragraph">ただし、結果はシリアル値（数値）で表示されます。セルを選択して「表示形式」→「日付」に変更してください。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>日付は <code>"2025/04/01"</code> のように引用符つきの文字列でも指定できます。<code>=SEQUENCE(5,1,"2025/04/01")</code> のように書けばOKです。引用符を忘れると <code>2025/04/01</code> の <code>/</code> が除算演算子として扱われ、数値として計算されてしまうので注意してください。</p></blockquote>



<p class="wp-block-paragraph">月初日の一覧を作りたい場合は、<a href="https://mashukabu.com/spreadsheet-arrayformula-function/">ARRAYFORMULA関数</a>と組み合わせます。</p>



<pre class="wp-block-code"><code>=ARRAYFORMULA(DATE(2025, SEQUENCE(12), 1))</code></pre>



<p class="wp-block-paragraph">この数式で2025年1〜12月の月初日が一覧で出力されます。</p>



<h3 class="wp-block-heading"><span id="toc11">パターン2：時刻連番で予定表を作る</span></h3>



<p class="wp-block-paragraph">タイムスケジュールを作るときに便利な使い方です。</p>



<pre class="wp-block-code"><code>=SEQUENCE(16,1,TIME(8,0,0),TIME(1,0,0))</code></pre>



<p class="wp-block-paragraph">8:00から1時間刻みで、16個の時刻が生成されます。8:00〜23:00のタイムテーブルが一発で完成です。</p>



<p class="wp-block-paragraph">日付と同じく、結果はシリアル値になります。「表示形式」→「時刻」に変更してください。</p>



<h3 class="wp-block-heading"><span id="toc12">パターン3：降順・ステップ付き連番</span></h3>



<p class="wp-block-paragraph">増分量に負の値を指定すると、降順の連番を作れます。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>A列</th></tr></thead><tbody><tr><td>10</td></tr><tr><td>9</td></tr><tr><td>8</td></tr><tr><td>7</td></tr><tr><td>6</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">カウントダウンやランキング番号に使えます。</p>



<p class="wp-block-paragraph">増分量を変えれば、飛び飛びの数値も簡単です。</p>



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



<p class="wp-block-paragraph">結果は「0, 10, 20, 30, 40」です。10刻みの連番が生成されます。</p>



<h3 class="wp-block-heading"><span id="toc13">パターン4：FILTER・SORTとの組み合わせ</span></h3>



<p class="wp-block-paragraph">SEQUENCE関数は他の配列関数と組み合わせると、さらに活用の幅が広がります。</p>



<p class="wp-block-paragraph"><strong>SEQUENCE + FILTERで偶数だけを抽出する例です。</strong></p>



<p class="wp-block-paragraph">まず、SEQUENCE関数で1〜20の連番を作ります。そこから<a href="https://mashukabu.com/spreadsheet-filter-function/">FILTER関数</a>で偶数だけを抽出します。</p>



<pre class="wp-block-code"><code>=FILTER(SEQUENCE(20), MOD(SEQUENCE(20),2)=0)</code></pre>



<p class="wp-block-paragraph">結果は「2, 4, 6, 8, 10, 12, 14, 16, 18, 20」です。</p>



<p class="wp-block-paragraph"><strong>SEQUENCE + SORTでランダム順のリストを作る例です。</strong></p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-sort-sortn-sortby/">SORT関数</a>とRANDARRAY関数を組み合わせて、連番をシャッフルできます。</p>



<pre class="wp-block-code"><code>=SORT(SEQUENCE(10), RANDARRAY(10), TRUE)</code></pre>



<p class="wp-block-paragraph">抽選やランダム出題など、順序をランダムにしたい場面で使えます。</p>



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



<p class="wp-block-paragraph">連番を作る方法としては、<a href="https://mashukabu.com/spreadsheet-row-function/">ROW関数</a>もよく使われます。どう使い分ければよいでしょうか。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>SEQUENCE関数</th><th>ROW関数</th></tr></thead><tbody><tr><td>仕組み</td><td>指定した件数の配列を一括生成</td><td>セルの行番号を取得</td></tr><tr><td>行の追従</td><td>しない（固定件数）</td><td>する（行の挿入・削除に自動対応）</td></tr><tr><td>ARRAYFORMULA</td><td>不要（自動で展開）</td><td>複数行に展開するには必要</td></tr><tr><td>2次元配列</td><td>作れる（行×列を指定）</td><td>作れない</td></tr><tr><td>日付・時刻</td><td>開始値を指定して生成できる</td><td>直接は生成できない</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>使い分けのポイントはこうです。</strong></p>



<ul class="wp-block-list"><li><strong>行の増減に追従させたい</strong> → ROW関数が向いています。データ行に1対1で連番を振るケースです</li><li><strong>決まった件数を一括で生成したい</strong> → SEQUENCE関数が向いています。日付一覧やタイムテーブルなど、固定の連番が欲しいケースです</li></ul>



<p class="wp-block-paragraph">迷ったら、「データの行数に依存するか」で判断してみてください。依存するならROW関数、依存しないならSEQUENCE関数です。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td><code>#REF!</code></td><td>結果を展開するセルにデータがある</td><td>展開先のセルをクリアするか、数式を空き領域に移動する</td></tr><tr><td><code>#NUM!</code></td><td>行数に0や負の数を指定した</td><td>行数・列数には1以上の正の整数を指定する</td></tr><tr><td><code>#VALUE!</code></td><td>引数に文字列など無効な値がある</td><td>数値・日付以外の値が入っていないか確認する</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p><code>#REF!</code> エラーは配列関数で最もよくあるエラーです。SEQUENCE関数の結果が展開される先にデータがあると発生します。出力先の下方向・右方向に十分な空きを確保してください。</p></blockquote>



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



<p class="wp-block-paragraph">この記事では、GoogleスプレッドシートのSEQUENCE関数の使い方を解説しました。</p>



<ul class="wp-block-list"><li><strong>SEQUENCE関数</strong>: 指定した行数・列数の連番を自動生成する</li><li><strong>基本の使い方</strong>: <code>=SEQUENCE(5)</code> で1〜5の縦方向連番</li><li><strong>横方向</strong>: <code>=SEQUENCE(1,5)</code> で横に展開</li><li><strong>2次元配列</strong>: <code>=SEQUENCE(3,4)</code> で3行4列のグリッド連番</li><li><strong>日付連番</strong>: <code>=SEQUENCE(30,1,DATE(2025,4,1),1)</code> で日付一覧</li><li><strong>ROW関数との違い</strong>: 固定件数の一括生成はSEQUENCE、行追従はROW</li></ul>



<p class="wp-block-paragraph">まずは <code>=SEQUENCE(5)</code> から試してみてください。連番の手入力から解放されますよ。</p>



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



<h3 class="wp-block-heading"><span id="toc17">この記事を書いた人</span></h3>



<p class="wp-block-paragraph">biz-tactics編集部。事務職の現場で本当に使えるExcel・スプレッドシート・AIの技を発信しています。</p>



<h3 class="wp-block-heading"><span id="toc18">関連記事</span></h3>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/spreadsheet-row-function/">スプレッドシートのROW関数の使い方｜連番を自動作成</a></li><li><a href="https://mashukabu.com/spreadsheet-arrayformula-function/">スプレッドシートのARRAYFORMULA関数の使い方｜範囲に一括適用</a></li><li><a href="https://mashukabu.com/spreadsheet-filter-function/">スプレッドシートのFILTER関数の使い方｜条件抽出を自動化する方法</a></li><li><a href="https://mashukabu.com/spreadsheet-sort-sortn-sortby/">スプレッドシートのSORT・SORTN・SORTBY関数の使い方｜データを自動で並べ替える</a></li><li><a href="https://mashukabu.com/spreadsheet-unique-function/">スプレッドシートのUNIQUE関数の使い方｜重複を瞬時に除去</a></li><li><a href="https://mashukabu.com/spreadsheet-expand-function/">スプレッドシートのEXPAND関数の使い方｜配列のサイズを拡張する</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-sequence/">ExcelのSEQUENCE関数の使い方｜連番・日付・2次元配列を1関数で</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-sequence-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
