<?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/%E5%8B%95%E7%9A%84%E9%85%8D%E5%88%97/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.0.3</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のUNIQUE・FILTER・SORT・SEQUENCE関数入門｜スピル（動的配列）で集計・抽出を自動化する</title>
		<link>https://mashukabu.com/excel-unique-filter-sort-sequence-spill/</link>
					<comments>https://mashukabu.com/excel-unique-filter-sort-sequence-spill/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 30 Apr 2026 21:31:28 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[FILTER]]></category>
		<category><![CDATA[SEQUENCE]]></category>
		<category><![CDATA[SORT]]></category>
		<category><![CDATA[UNIQUE]]></category>
		<category><![CDATA[スピル]]></category>
		<category><![CDATA[動的配列]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=6432</guid>

					<description><![CDATA[ExcelのUNIQUE・FILTER・SORT・SEQUENCE関数とスピル（動的配列）の基本を、中級者向けにハンズオンで解説。重複削除・条件抽出・並び替え・連番生成を数式1本で自動化する方法と、#SPILL!エラー対処、Excel 2021/Microsoft 365での対応状況をまとめます。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「同じデータが何度も出てくるリストから、ユニークな項目だけ取り出したい」「条件に合う行だけ別シートに抽出したい」。こんなとき、ピボットや手作業のフィルタコピペで対応していませんか。</p>



<p class="wp-block-paragraph">Excel 2021 / Microsoft 365 では<strong>スピル（動的配列）</strong>が使えます。スピルを活用すると、これらの作業を<strong>数式1本で自動化</strong>できます。元データを更新すれば、抽出結果も自動で追随します。</p>



<p class="wp-block-paragraph">この記事ではスピルの基本概念と、入門で押さえたい4関数の使い方を解説します。UNIQUE・FILTER・SORT・SEQUENCEの基本と、実務で使える組み合わせパターンを紹介します。</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">Excelのスピル（動的配列）とは？従来の数式との違い</a><ol><li><a href="#toc2" tabindex="0">スピルの特徴</a></li><li><a href="#toc3" tabindex="0"># 演算子（スピル範囲演算子）の使い方</a></li></ol></li><li><a href="#toc4" tabindex="0">ExcelのUNIQUE関数で重複を一発削除する</a><ol><li><a href="#toc5" tabindex="0">UNIQUE関数の構文</a></li><li><a href="#toc6" tabindex="0">基本的な使い方</a></li><li><a href="#toc7" tabindex="0">「1回しか出現しない値」だけ取り出す</a></li></ol></li><li><a href="#toc8" tabindex="0">ExcelのFILTER関数で条件に合う行だけ抽出する</a><ol><li><a href="#toc9" tabindex="0">FILTER関数の構文</a></li><li><a href="#toc10" tabindex="0">基本的な使い方</a></li><li><a href="#toc11" tabindex="0">AND条件とOR条件</a></li></ol></li><li><a href="#toc12" tabindex="0">ExcelのSORT関数で並び替えを数式化する</a><ol><li><a href="#toc13" tabindex="0">SORT関数の構文</a></li><li><a href="#toc14" tabindex="0">基本的な使い方</a></li><li><a href="#toc15" tabindex="0">SORTBY関数で別範囲を基準に並び替える</a></li></ol></li><li><a href="#toc16" tabindex="0">ExcelのSEQUENCE関数で連番・行番号を自動生成する</a><ol><li><a href="#toc17" tabindex="0">SEQUENCE関数の構文</a></li><li><a href="#toc18" tabindex="0">基本的な使い方</a></li><li><a href="#toc19" tabindex="0">日付の連番を作る</a></li></ol></li><li><a href="#toc20" tabindex="0">UNIQUE・FILTER・SORT・SEQUENCEを組み合わせた実務テクニック</a><ol><li><a href="#toc21" tabindex="0">パターン1: 重複削除＋並び替え</a></li><li><a href="#toc22" tabindex="0">パターン2: 条件抽出＋並び替え＋上位N件</a></li><li><a href="#toc23" tabindex="0">パターン3: 動的に伸び縮みするドロップダウンリスト</a></li><li><a href="#toc24" tabindex="0">パターン4: ピボット代替のクロス集計ひな形</a></li></ol></li><li><a href="#toc25" tabindex="0">スピル特有のエラー（#SPILL!・#CALC!）と対処法</a><ol><li><a href="#toc26" tabindex="0">#SPILL! エラー</a></li><li><a href="#toc27" tabindex="0">#CALC! エラー</a></li></ol></li><li><a href="#toc28" tabindex="0">UNIQUE・FILTER・SORT・SEQUENCE関数の対応バージョンと互換性</a><ol><li><a href="#toc29" tabindex="0">Excelバージョンごとの対応</a></li><li><a href="#toc30" tabindex="0">Excel 2019以前で開いたときの挙動</a></li><li><a href="#toc31" tabindex="0">Googleスプレッドシートとの互換性</a></li><li><a href="#toc32" tabindex="0">LibreOffice Calcとの互換性</a></li></ol></li><li><a href="#toc33" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">Excelのスピル（動的配列）とは？従来の数式との違い</span></h2>



<p class="wp-block-paragraph"><strong>スピル（spill）</strong>は「あふれ出す」という意味の英語です。Excelの数式が複数の値を返すとき、その結果が周辺セルへ自動的にあふれ出す動作を指します。</p>



<p class="wp-block-paragraph">従来のExcelでは、配列を返す数式に <code>Ctrl + Shift + Enter</code> で「配列数式」として確定する必要がありました。スピル対応のExcelなら、普通に <code>Enter</code> するだけで結果が複数セルに展開されます。</p>



<h3 class="wp-block-heading"><span id="toc2">スピルの特徴</span></h3>



<ul class="wp-block-list"><li>数式は<strong>左上の1セルにだけ</strong>入力する</li><li>結果が展開された範囲を「<strong>スピル範囲</strong>」と呼ぶ</li><li>スピル範囲全体を参照したいときは <code>A2#</code> のように <code>#</code>（スピル範囲演算子）を付ける</li><li>元データの行数が変わっても、スピル範囲は自動で伸び縮みする</li></ul>



<pre class="wp-block-code"><code>=UNIQUE(A2:A100)</code></pre>



<p class="wp-block-paragraph">この数式を <code>D2</code> に入れると、結果が <code>D2</code> から下方向に自動展開されます。これがスピルです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>スピル機能はMicrosoft 365 / Excel 2021 / Excel for the web / Excel 2024で利用できます。Excel 2019・2016・2013以前では動作しません。詳しくは記事末尾の互換性セクションを参照してください。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc3"># 演算子（スピル範囲演算子）の使い方</span></h3>



<p class="wp-block-paragraph">スピル範囲を別の数式で参照するときは、左上セルの後ろに <code>#</code> を付けます。</p>



<pre class="wp-block-code"><code>=COUNTA(D2#)</code></pre>



<p class="wp-block-paragraph">これで <code>D2</code> から始まるスピル範囲全体の個数をカウントできます。元データが増減してスピル範囲が変わっても、自動的に追随するのが便利なポイントです。</p>



<h2 class="wp-block-heading"><span id="toc4">ExcelのUNIQUE関数で重複を一発削除する</span></h2>



<p class="wp-block-paragraph">UNIQUE関数は、指定範囲から<strong>重複を取り除いた一意のリスト</strong>を返します。「データ→重複の削除」と違い、元データを変更せずに集計用の一覧を作れます。</p>



<h3 class="wp-block-heading"><span id="toc5">UNIQUE関数の構文</span></h3>



<pre class="wp-block-code"><code>=UNIQUE(配列, [列の比較], [回数指定])</code></pre>



<ul class="wp-block-list"><li><strong>配列</strong>（必須）: 一意の値を取り出したい範囲</li><li><strong>列の比較</strong>（省略可）: TRUE で列方向の比較、FALSE/省略で行方向の比較</li><li><strong>回数指定</strong>（省略可）: TRUE で「1回しか出現しない値」だけ返す、FALSE/省略で重複を除いた全種類</li></ul>



<h3 class="wp-block-heading"><span id="toc6">基本的な使い方</span></h3>



<p class="wp-block-paragraph">A列に部署名がランダムに並んでいるとき、ユニークな部署名のリストを取り出します。</p>



<pre class="wp-block-code"><code>=UNIQUE(A2:A100)</code></pre>



<p class="wp-block-paragraph">部署名が「営業」「開発」「総務」「営業」「開発」…と並んでいても、「営業」「開発」「総務」の3つだけが返ります。</p>



<h3 class="wp-block-heading"><span id="toc7">「1回しか出現しない値」だけ取り出す</span></h3>



<p class="wp-block-paragraph">第3引数を <code>TRUE</code> にすると、複数回登場する値は除外されます。<strong>1回しか登場しない値のみ</strong>が返ります。</p>



<pre class="wp-block-code"><code>=UNIQUE(A2:A100, FALSE, TRUE)</code></pre>



<p class="wp-block-paragraph">「異常値が1件だけ混入していないか」「ユニークな顧客だけ抽出したい」といった用途で重宝します。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>UNIQUE関数の詳しい使い方や応用例は、個別記事「<a href="https://mashukabu.com/excel-function-howto-use-unique/">ExcelのUNIQUE関数で重複データを除外する方法</a>」も参考にしてください。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc8">ExcelのFILTER関数で条件に合う行だけ抽出する</span></h2>



<p class="wp-block-paragraph">FILTER関数は、<strong>条件に合致する行だけ</strong>を抽出してスピル展開する関数です。オートフィルタの「数式版」と考えると分かりやすいです。</p>



<h3 class="wp-block-heading"><span id="toc9">FILTER関数の構文</span></h3>



<pre class="wp-block-code"><code>=FILTER(配列, 含む, [空の場合])</code></pre>



<ul class="wp-block-list"><li><strong>配列</strong>（必須）: フィルタしたい元データの範囲</li><li><strong>含む</strong>（必須）: 「配列」と同じ高さのTRUE/FALSE配列。条件式 <code>(範囲=値)</code> で自動生成される</li><li><strong>空の場合</strong>（省略可）: 該当行が0件の場合に返す代替値</li></ul>



<h3 class="wp-block-heading"><span id="toc10">基本的な使い方</span></h3>



<p class="wp-block-paragraph">A〜C列の表から、B列が「営業」の行だけ抽出します。</p>



<pre class="wp-block-code"><code>=FILTER(A2:C100, B2:B100=&quot;営業&quot;, &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">第3引数に <code>"該当なし"</code> を入れておくと、ヒットがゼロでも <code>#CALC!</code> エラーになりません。代わりに指定した文字列が表示されます。</p>



<h3 class="wp-block-heading"><span id="toc11">AND条件とOR条件</span></h3>



<p class="wp-block-paragraph">複数条件を組み合わせるときは、<strong>AND は <code>*</code></strong>、<strong>OR は <code>+</code></strong> で連結します。</p>



<pre class="wp-block-code"><code>=FILTER(A2:C100, (B2:B100=&quot;営業&quot;)*(C2:C100&gt;=100), &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">「営業部署」かつ「数値が100以上」の行を抽出するAND条件の例です。</p>



<pre class="wp-block-code"><code>=FILTER(A2:C100, (B2:B100=&quot;営業&quot;)+(B2:B100=&quot;開発&quot;), &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">「営業」または「開発」を抽出するOR条件の例です。<code>*</code> と <code>+</code> の使い分けがFILTER関数の肝になります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>SUMIFSやCOUNTIFSと違い、FILTER関数は条件をかけ算・足し算で表現します。慣れないうちは違和感がありますが、TRUE=1、FALSE=0として扱われるルールから来ています。</p></blockquote>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>FILTER関数の応用パターンは、個別記事「<a href="https://mashukabu.com/excel-function-howto-use-filter/">ExcelのFILTER関数で条件に合うデータだけ抽出する方法</a>」で詳しく解説しています。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc12">ExcelのSORT関数で並び替えを数式化する</span></h2>



<p class="wp-block-paragraph">SORT関数は、<strong>並び替え結果を数式で取得</strong>する関数です。元データを並び替えずに、別の場所にソート済みリストを作れるのが強みです。</p>



<h3 class="wp-block-heading"><span id="toc13">SORT関数の構文</span></h3>



<pre class="wp-block-code"><code>=SORT(配列, [並び替えインデックス], [並び替え順序], [並び替え基準])</code></pre>



<ul class="wp-block-list"><li><strong>配列</strong>（必須）: 並び替えたい範囲</li><li><strong>並び替えインデックス</strong>（省略可）: 並び替えに使う列番号（1から開始、省略時は1列目）</li><li><strong>並び替え順序</strong>（省略可）: 1=昇順（既定）、-1=降順</li><li><strong>並び替え基準</strong>（省略可）: FALSE/省略で行方向、TRUE で列方向</li></ul>



<h3 class="wp-block-heading"><span id="toc14">基本的な使い方</span></h3>



<p class="wp-block-paragraph">A〜C列の表全体を、C列（売上）の降順で並び替えます。</p>



<pre class="wp-block-code"><code>=SORT(A2:C100, 3, -1)</code></pre>



<p class="wp-block-paragraph">数式を入れた場所にC列降順で並んだ表が展開されます。元データはそのままです。</p>



<h3 class="wp-block-heading"><span id="toc15">SORTBY関数で別範囲を基準に並び替える</span></h3>



<p class="wp-block-paragraph">似た関数に <strong>SORTBY関数</strong> があります。並び替え対象と並び替え基準を別範囲にしたいときに便利です。</p>



<pre class="wp-block-code"><code>=SORTBY(A2:B100, C2:C100, -1)</code></pre>



<p class="wp-block-paragraph">A〜B列の範囲を、C列の値を基準に降順で並び替えます。「表示したい列」と「並び替えに使う列」を分けられるのがポイントです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>SORT関数とSORTBY関数の使い分けは、個別記事「<a href="https://mashukabu.com/excel-function-howto-use-sort/">ExcelのSORT関数の使い方</a>」で詳しく扱っています。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc16">ExcelのSEQUENCE関数で連番・行番号を自動生成する</span></h2>



<p class="wp-block-paragraph">SEQUENCE関数は、<strong>連番や行番号を自動生成</strong>する関数です。一見地味ですが、他のスピル関数と組み合わせるととても強力になります。</p>



<h3 class="wp-block-heading"><span id="toc17">SEQUENCE関数の構文</span></h3>



<pre class="wp-block-code"><code>=SEQUENCE(行, [列], [開始値], [増分])</code></pre>



<ul class="wp-block-list"><li><strong>行</strong>（必須）: 生成する行数</li><li><strong>列</strong>（省略可）: 生成する列数（既定は1）</li><li><strong>開始値</strong>（省略可）: 開始する数値（既定は1）</li><li><strong>増分</strong>（省略可）: 増加する間隔（既定は1）</li></ul>



<h3 class="wp-block-heading"><span id="toc18">基本的な使い方</span></h3>



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



<p class="wp-block-paragraph">1から10まで縦に並んだ連番が展開されます。</p>



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



<p class="wp-block-paragraph">5行3列の数値表が展開されます。100始まり10刻みなので、1行目は100・110・120、2行目は130・140・150…と続きます。</p>



<h3 class="wp-block-heading"><span id="toc19">日付の連番を作る</span></h3>



<p class="wp-block-paragraph">開始値に日付を渡せば、日付の連番も作れます。</p>



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



<p class="wp-block-paragraph">今日から7日分の日付がスピル展開されます。表示形式を「日付」に変えれば、週次の予定表のひな形が一瞬で完成します。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>SEQUENCE関数の活用パターンは、個別記事「<a href="https://mashukabu.com/excel-function-howto-use-sequence/">ExcelのSEQUENCE関数で連続した数値を生成する方法</a>」も参考にしてください。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc20">UNIQUE・FILTER・SORT・SEQUENCEを組み合わせた実務テクニック</span></h2>



<p class="wp-block-paragraph">4関数の真価は<strong>組み合わせ</strong>にあります。実務でよく使うパターンを4つ紹介します。</p>



<h3 class="wp-block-heading"><span id="toc21">パターン1: 重複削除＋並び替え</span></h3>



<p class="wp-block-paragraph">ユニークな部署一覧を昇順で取得します。</p>



<pre class="wp-block-code"><code>=SORT(UNIQUE(A2:A100))</code></pre>



<p class="wp-block-paragraph">UNIQUEで重複を除いた結果を、SORTでそのまま並び替えています。スピル関数同士はネストできるのが特徴です。</p>



<h3 class="wp-block-heading"><span id="toc22">パターン2: 条件抽出＋並び替え＋上位N件</span></h3>



<p class="wp-block-paragraph">営業部署の行だけ抽出し、売上（C列）の降順で並べます。</p>



<pre class="wp-block-code"><code>=SORT(FILTER(A2:C100, B2:B100=&quot;営業&quot;, &quot;該当なし&quot;), 3, -1)</code></pre>



<p class="wp-block-paragraph">さらに「上位5件だけ」に絞りたい場合は、Microsoft 365 の <code>TAKE</code> 関数が便利です。</p>



<pre class="wp-block-code"><code>=TAKE(SORT(FILTER(A2:C100, B2:B100=&quot;営業&quot;), 3, -1), 5)</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>TAKE関数はMicrosoft 365で利用できる比較的新しい関数です。Excel 2021では未対応のため、上位N件の抽出はINDEXとSEQUENCEで代替してください。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc23">パターン3: 動的に伸び縮みするドロップダウンリスト</span></h3>



<p class="wp-block-paragraph">データ追加で自動拡張するプルダウンを作るには、入力規則のリスト元に<strong>スピル範囲演算子 <code>#</code></strong> を使います。</p>



<ol class="wp-block-list"><li>任意の作業セル（例: <code>Z2</code>）に <code>=UNIQUE(A2:A100)</code> を入力</li><li>入力規則のリスト元に <code>=$Z$2#</code> と指定</li></ol>



<p class="wp-block-paragraph">A列にデータを追加すると、プルダウンの選択肢も自動で増えます。<code>OFFSET</code> と <code>COUNTA</code> で組んでいた動的リストが、スピルなら一発で実現できます。</p>



<h3 class="wp-block-heading"><span id="toc24">パターン4: ピボット代替のクロス集計ひな形</span></h3>



<p class="wp-block-paragraph">UNIQUE で集計軸を作り、SUMIFS で値を埋めるとピボット不要のクロス集計が作れます。</p>



<pre class="wp-block-code"><code>=UNIQUE(A2:A100)       ' D2 に入力（部署一覧がスピル展開）
=SUMIFS(C:C, A:A, D2#) ' E2 に入力（D2のスピル範囲に対して集計がスピル展開）</code></pre>



<p class="wp-block-paragraph"><code>D2</code> にUNIQUEの結果を出し、<code>E2</code> にSUMIFSを入れます。<code>D2#</code> のスピル範囲に対してSUMIFSもスピル展開されるため、元データが増えても集計表が自動で伸び縮みします。</p>



<h2 class="wp-block-heading"><span id="toc25">スピル特有のエラー（#SPILL!・#CALC!）と対処法</span></h2>



<p class="wp-block-paragraph">スピル関数を使い始めると、見慣れないエラーに遭遇することがあります。代表的な2つを覚えておきましょう。</p>



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



<p class="wp-block-paragraph">スピル範囲に<strong>何かが入っている</strong>ためにあふれ出せないときに発生します。原因と対処は次のとおりです。</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>セル結合を解除する</td></tr><tr><td>Excelの「テーブル」内にスピル数式を入れた</td><td>テーブル外で使うか、テーブルを通常の範囲に変換する</td></tr><tr><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>#SPILL!</code> セルを選択すると、エラー三角マークの横に「障害物のあるセルを選択」リンクが表示されます。クリックすると原因セルを特定できます。</p></blockquote>



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



<p class="wp-block-paragraph">FILTER関数で<strong>該当データが0件</strong>のときに最もよく見ます。第3引数（空の場合）を指定すれば回避できます。</p>



<pre class="wp-block-code"><code>=FILTER(A2:C100, B2:B100=&quot;営業&quot;, &quot;データなし&quot;)</code></pre>



<p class="wp-block-paragraph">ほかに、スピル関数同士のサイズ不整合や、空の配列を返す関数を渡したときにも発生します。FILTERの第3引数を習慣的に書く癖をつけると安全です。</p>



<h2 class="wp-block-heading"><span id="toc28">UNIQUE・FILTER・SORT・SEQUENCE関数の対応バージョンと互換性</span></h2>



<p class="wp-block-paragraph">スピル関数は新しい機能のため、環境によって動作が大きく変わります。</p>



<h3 class="wp-block-heading"><span id="toc29">Excelバージョンごとの対応</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>UNIQUE/FILTER/SORT/SEQUENCE 対応</td></tr><tr><td>Excel for the web</td><td>完全対応</td></tr><tr><td>Excel 2019・2016・2013</td><td>未対応（<code>#NAME?</code> または暗黙的交差で動かない）</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc30">Excel 2019以前で開いたときの挙動</span></h3>



<p class="wp-block-paragraph">スピル数式を含むxlsxファイルをExcel 2019以前で開くと、数式は自動変換されます。<code>@</code> 演算子付きの「暗黙的な交差」形式になり、結果は1セルだけでスピル展開しません。複数人で共有するファイルでは、開く側の環境を事前に確認しておきましょう。</p>



<h3 class="wp-block-heading"><span id="toc31">Googleスプレッドシートとの互換性</span></h3>



<p class="wp-block-paragraph">GoogleスプレッドシートにはUNIQUE / FILTER / SORT / SEQUENCEがすべて存在します。ただし<strong>引数の仕様が一部異なります</strong>。特にFILTER関数のAND/OR表現が違うため、Excel数式をそのままコピペしても動かないケースがあります。両方使うなら、関数ごとに動作確認をおすすめします。</p>



<h3 class="wp-block-heading"><span id="toc32">LibreOffice Calcとの互換性</span></h3>



<p class="wp-block-paragraph">LibreOffice Calcは7.x以降でスピル関連関数の対応を進めています。古いバージョン（6.x以前）では未対応です。</p>



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



<p class="wp-block-paragraph">ExcelのUNIQUE・FILTER・SORT・SEQUENCE関数とスピル（動的配列）を使えば、集計・抽出作業を<strong>数式1本で自動化</strong>できます。ピボットや手作業でやっていた工程を一気に省けます。</p>



<ul class="wp-block-list"><li><strong>UNIQUE</strong>: 重複削除でユニークなリストを作る</li><li><strong>FILTER</strong>: 条件に合う行だけ抽出する</li><li><strong>SORT</strong>: 並び替えを数式化する（元データを汚さない）</li><li><strong>SEQUENCE</strong>: 連番・行番号・日付連番を自動生成する</li></ul>



<p class="wp-block-paragraph">4関数は単独でも便利ですが、<strong>組み合わせる</strong>ことで真価を発揮します。「UNIQUE→SORT」「FILTER→SORT」のネストや、<code>#</code> 演算子を使った動的範囲参照をぜひ試してみてください。毎日のExcel作業が一段速くなります。</p>



<p class="wp-block-paragraph">ピボットを使うほどではないけれど集計したい。フィルタを毎回設定し直すのが面倒。そんなときはスピル関数を試してみてください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-unique-filter-sort-sequence-spill/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<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-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">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-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">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-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">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のGROUPBY関数の使い方｜グループ集計を一発で作成</title>
		<link>https://mashukabu.com/excel-function-howto-use-groupby/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-groupby/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 04 Apr 2026 04:32:07 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[GROUPBY関数]]></category>
		<category><![CDATA[Microsoft 365]]></category>
		<category><![CDATA[グループ集計]]></category>
		<category><![CDATA[データ集計]]></category>
		<category><![CDATA[動的配列]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=5766</guid>

					<description><![CDATA[ExcelのGROUPBY関数でデータをグループごとに集計する方法を解説。SUM・AVERAGE・COUNTなど集計関数との組み合わせ、複数列でのグループ化、ソート、PIVOTBY関数との違いまで実務例付きで紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">売上データを部門ごとに合計したい、担当者ごとの平均単価を出したい。こういったグループ集計、ピボットテーブルを作るほどでもないけど手作業は面倒ですよね。GROUPBY関数を使えば、数式ひとつでグループごとの集計表を自動生成できます。この記事では基本の書き方から複数列でのグループ化、ソート、実務パターンまで丸ごと紹介します。</p>



<p class="wp-block-paragraph">この記事は次のような人におすすめ</p>



<ul class="wp-block-list"><li>売上や経費データをカテゴリごとにサッと合計・平均したい</li><li>ピボットテーブルを使わずに数式だけでグループ集計を作りたい</li><li>GROUPBY関数とPIVOTBY関数の違いを知りたい</li></ul>




  <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">GROUPBY関数とは？</a></li><li><a href="#toc2" tabindex="0">GROUPBY関数の書き方（構文と引数）</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">GROUPBY関数の基本的な使い方</a><ol><li><a href="#toc6" tabindex="0">1列でグループ集計する</a></li><li><a href="#toc7" tabindex="0">ヘッダー付きで集計する</a></li><li><a href="#toc8" tabindex="0">集計関数を変えてみる</a></li></ol></li><li><a href="#toc9" tabindex="0">GROUPBY関数の実務活用パターン</a><ol><li><a href="#toc10" tabindex="0">総計行を追加する</a></li><li><a href="#toc11" tabindex="0">結果を降順でソートする</a></li><li><a href="#toc12" tabindex="0">特定の条件でフィルターする</a></li><li><a href="#toc13" tabindex="0">複数列でグループ化する</a></li><li><a href="#toc14" tabindex="0">LAMBDA関数でカスタム集計する</a></li></ol></li><li><a href="#toc15" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc16" tabindex="0">GROUPBY関数とPIVOTBY関数の違い</a></li><li><a href="#toc17" tabindex="0">SUMIFS関数との比較</a></li><li><a href="#toc18" tabindex="0">まとめ</a><ol><li><a href="#toc19" tabindex="0">関連記事</a></li><li><a href="#toc20" tabindex="0">関数一覧</a></li></ol></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">GROUPBY（グループバイ）関数は、データの行を指定した列でグループ化し、集計関数を適用して結果を返す関数です。英語の「group by」は「〜ごとにまとめる」という意味で、SQLのGROUP BY句と同じ発想の関数です。</p>



<p class="wp-block-paragraph">たとえば売上データの「部門」列でグループ化して「金額」列をSUMで合計すれば、部門ごとの売上合計表が数式ひとつで出来上がります。結果はスピル（動的配列）で自動展開されるので、データが増えても数式を修正する必要がありません。</p>



<p class="wp-block-paragraph">GROUPBY関数はMicrosoft 365（Office 365）専用の関数です。Excel 2021以前のバージョンでは使用できません。</p>



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



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



<pre class="wp-block-code"><code>=GROUPBY(行フィールド, 値, 集計関数, [フィールドヘッダー], [合計の深さ], [並べ替え順], [フィルター配列], [フィールドの関係])</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></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>集計に使う関数（SUM, AVERAGE, COUNTなど）</td></tr><tr><td>フィールドヘッダー</td><td>省略可</td><td>ヘッダー行の扱い。0=なし、1=あり（非表示）、2=あり（表示）、3=自動生成。既定は2</td></tr><tr><td>合計の深さ</td><td>省略可</td><td>総計・小計の表示。0=なし、1=総計あり、2=総計＋小計、-1=総計のみ（データ行なし）。既定は0</td></tr><tr><td>並べ替え順</td><td>省略可</td><td>結果の並べ替え。0=昇順、1=降順。既定は0（昇順）</td></tr><tr><td>フィルター配列</td><td>省略可</td><td>行を絞り込むTRUE/FALSEの配列</td></tr><tr><td>フィールドの関係</td><td>省略可</td><td>0=階層（既定）、1=テーブル形式</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>必須の引数は3つだけです。まずは「行フィールド」「値」「集計関数」の3つを指定する基本形をおさえましょう。</p></blockquote>



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



<h3 class="wp-block-heading"><span id="toc6">1列でグループ集計する</span></h3>



<p class="wp-block-paragraph">次のような売上データがA1:C11にあるとします（1行目がヘッダー）。</p>



<figure class="wp-block-table"><table><thead><tr><th>部門</th><th>商品</th><th>金額</th></tr></thead><tbody><tr><td>営業部</td><td>商品A</td><td>50000</td></tr><tr><td>開発部</td><td>商品B</td><td>30000</td></tr><tr><td>営業部</td><td>商品C</td><td>45000</td></tr><tr><td>開発部</td><td>商品A</td><td>25000</td></tr><tr><td>総務部</td><td>商品B</td><td>15000</td></tr><tr><td>営業部</td><td>商品B</td><td>60000</td></tr><tr><td>総務部</td><td>商品C</td><td>20000</td></tr><tr><td>開発部</td><td>商品C</td><td>35000</td></tr><tr><td>営業部</td><td>商品A</td><td>40000</td></tr><tr><td>総務部</td><td>商品A</td><td>18000</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">部門ごとの売上合計を求めるには、次のように書きます。</p>



<pre class="wp-block-code"><code>=GROUPBY(A2:A11,C2:C11,SUM)</code></pre>



<p class="wp-block-paragraph">結果はスピルで展開され、以下のような表が自動生成されます。</p>



<figure class="wp-block-table"><table><thead><tr><th>営業部</th><th>195000</th></tr></thead><tbody><tr><td>開発部</td><td>90000</td></tr><tr><td>総務部</td><td>53000</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">行フィールドにA2:A11（部門列）、値にC2:C11（金額列）、集計関数にSUMを指定しただけです。SUMIFS関数で部門ごとに数式を並べる必要がなくなります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>集計関数の引数はSUM、AVERAGE、COUNT、MAX、MINなど、通常のExcel関数名をそのまま指定します。カッコは付けません。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc7">ヘッダー付きで集計する</span></h3>



<p class="wp-block-paragraph">データにヘッダー行が含まれている場合は、ヘッダー行ごと範囲に含めて第4引数を指定すると、結果にもヘッダーが表示されます。</p>



<pre class="wp-block-code"><code>=GROUPBY(A1:A11,C1:C11,SUM,2)</code></pre>



<p class="wp-block-paragraph">第4引数の「2」は「ヘッダーあり・表示する」を意味します。結果の1行目に「部門」「金額の合計」のようなヘッダーが自動表示されます。</p>



<h3 class="wp-block-heading"><span id="toc8">集計関数を変えてみる</span></h3>



<p class="wp-block-paragraph">集計関数の部分を変えるだけで、さまざまな集計ができます。</p>



<pre class="wp-block-code"><code>=GROUPBY(A2:A11,C2:C11,AVERAGE)</code></pre>



<p class="wp-block-paragraph">部門ごとの平均金額を求めます。</p>



<pre class="wp-block-code"><code>=GROUPBY(A2:A11,C2:C11,COUNT)</code></pre>



<p class="wp-block-paragraph">部門ごとの件数を求めます。</p>



<pre class="wp-block-code"><code>=GROUPBY(A2:A11,C2:C11,MAX)</code></pre>



<p class="wp-block-paragraph">部門ごとの最大金額を求めます。</p>



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



<h3 class="wp-block-heading"><span id="toc10">総計行を追加する</span></h3>



<p class="wp-block-paragraph">第5引数（合計の深さ）に1を指定すると、結果の最後に総計行が追加されます。</p>



<pre class="wp-block-code"><code>=GROUPBY(A2:A11,C2:C11,SUM,,1)</code></pre>



<p class="wp-block-paragraph">第4引数は省略（既定値を使用）するので、カンマだけ入れています。結果は次のようになります。</p>



<figure class="wp-block-table"><table><thead><tr><th>営業部</th><th>195000</th></tr></thead><tbody><tr><td>開発部</td><td>90000</td></tr><tr><td>総務部</td><td>53000</td></tr><tr><td>総計</td><td>338000</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">報告資料に使うときは総計行があると便利ですよね。</p>



<h3 class="wp-block-heading"><span id="toc11">結果を降順でソートする</span></h3>



<p class="wp-block-paragraph">第6引数に1を指定すると、結果が降順（大きい順）に並びます。</p>



<pre class="wp-block-code"><code>=GROUPBY(A2:A11,C2:C11,SUM,,,1)</code></pre>



<p class="wp-block-paragraph">売上が大きい部門から順に表示されるので、ランキング形式のレポートを作りたいときに使えます。</p>



<h3 class="wp-block-heading"><span id="toc12">特定の条件でフィルターする</span></h3>



<p class="wp-block-paragraph">第7引数にTRUE/FALSEの配列を渡すと、条件に合う行だけを集計対象にできます。たとえば金額が30000以上のデータだけで集計する場合です。</p>



<pre class="wp-block-code"><code>=GROUPBY(A2:A11,C2:C11,SUM,,,,(C2:C11&gt;=30000))</code></pre>



<p class="wp-block-paragraph">金額が30000未満の行は除外された状態で、部門ごとの合計が計算されます。</p>



<h3 class="wp-block-heading"><span id="toc13">複数列でグループ化する</span></h3>



<p class="wp-block-paragraph">行フィールドに複数列を指定すると、組み合わせでグループ化できます。部門と商品の両方でグループ化して集計する場合は、HSTACK関数で列を結合して渡します。</p>



<pre class="wp-block-code"><code>=GROUPBY(HSTACK(A2:A11,B2:B11),C2:C11,SUM)</code></pre>



<p class="wp-block-paragraph">結果は「営業部 × 商品A」「営業部 × 商品B」のように、すべての組み合わせごとに集計値が表示されます。</p>



<figure class="wp-block-table"><table><thead><tr><th>営業部</th><th>商品A</th><th>90000</th></tr></thead><tbody><tr><td>営業部</td><td>商品B</td><td>60000</td></tr><tr><td>営業部</td><td>商品C</td><td>45000</td></tr><tr><td>開発部</td><td>商品A</td><td>25000</td></tr><tr><td>開発部</td><td>商品B</td><td>30000</td></tr><tr><td>開発部</td><td>商品C</td><td>35000</td></tr><tr><td>総務部</td><td>商品A</td><td>18000</td></tr><tr><td>総務部</td><td>商品B</td><td>15000</td></tr><tr><td>総務部</td><td>商品C</td><td>20000</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ちょっとピボットテーブルに近い表が、数式だけで作れてしまいます。</p>



<h3 class="wp-block-heading"><span id="toc14">LAMBDA関数でカスタム集計する</span></h3>



<p class="wp-block-paragraph">第3引数にLAMBDA関数を指定すれば、独自の集計ロジックも使えます。たとえば最大値と最小値の差（レンジ）を求める場合です。</p>



<pre class="wp-block-code"><code>=GROUPBY(A2:A11,C2:C11,LAMBDA(x,MAX(x)-MIN(x)))</code></pre>



<p class="wp-block-paragraph">部門ごとに金額の振れ幅（最大値 &#8211; 最小値）が算出されます。標準の集計関数にない計算もLAMBDA関数で自由に定義できるのがGROUPBY関数の強みです。</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>#NAME?エラー</td><td>Excel 2021以前のバージョンで使用した</td><td>GROUPBY関数はMicrosoft 365専用です。バージョンを確認してください</td></tr><tr><td>#VALUE!エラー</td><td>行フィールドと値の行数が一致しない</td><td>グループ化列と集計列の行数を揃えてください。ヘッダーの有無も統一します</td></tr><tr><td>#SPILL!エラー</td><td>スピル先のセルにデータが入っている</td><td>結果が展開されるセル範囲を空にしてください</td></tr><tr><td>#CALC!エラー</td><td>集計関数の指定が正しくない</td><td>SUM、AVERAGE、COUNTなどの関数名をカッコなしで指定してください。「SUM()」ではなく「SUM」です</td></tr><tr><td>想定外のグループが表示される</td><td>同じに見える値に余分なスペースがある</td><td><a href="https://mashukabu.com/excel-function-howto-use-trim/">TRIM関数</a>でスペースを除去してからグループ化してください</td></tr><tr><td>結果が1行しか返らない</td><td>全データが同じグループに分類された</td><td>行フィールドの列指定が正しいか確認してください</td></tr></tbody></table></figure>



<h2 class="wp-block-heading"><span id="toc16">GROUPBY関数とPIVOTBY関数の違い</span></h2>



<p class="wp-block-paragraph">GROUPBY関数と同時期に追加されたPIVOTBY関数も、データを集計する関数です。一見似ていますが、出力形式がまったく異なります。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>GROUPBY関数</th><th>PIVOTBY関数</th></tr></thead><tbody><tr><td>出力形式</td><td><strong>縦方向のリスト</strong>（行方向に展開）</td><td><strong>クロス集計表</strong>（行と列の2軸で展開）</td></tr><tr><td>グループ化の軸</td><td>行方向のみ（1軸）</td><td>行と列の2軸</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">「部門ごとの売上合計」のように1軸でまとめたいならGROUPBY関数、「部門 × 四半期」のようにクロス表を作りたいならPIVOTBY関数です。</p>



<p class="wp-block-paragraph">たとえば同じデータから「部門 × 商品」のクロス集計表を作るなら、PIVOTBY関数のほうが適しています。</p>



<pre class="wp-block-code"><code>=PIVOTBY(A2:A11,B2:B11,C2:C11,SUM)</code></pre>



<p class="wp-block-paragraph">行に部門、列に商品が並ぶクロス表が出力されます。GROUPBYでは複数列をHSTACKで結合してリスト形式で出すことになるので、見た目の違いを意識して使い分けてください。</p>



<h2 class="wp-block-heading"><span id="toc17">SUMIFS関数との比較</span></h2>



<p class="wp-block-paragraph">グループ集計といえば<a href="https://mashukabu.com/excel-function-howto-use-sumifs/">SUMIFS関数</a>を使っている方も多いですよね。GROUPBY関数との違いを整理します。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>GROUPBY関数</th><th>SUMIFS関数</th></tr></thead><tbody><tr><td>グループの自動認識</td><td>データから自動でグループを抽出</td><td>事前にグループ一覧を用意する必要がある</td></tr><tr><td>数式の数</td><td>1つの数式で全グループ分を出力</td><td>グループ数だけ数式をコピーする</td></tr><tr><td>データ増減への対応</td><td>スピルで自動拡張</td><td>グループが増えたら数式を追加する必要がある</td></tr><tr><td>対応バージョン</td><td>Microsoft 365のみ</td><td>Excel 2007以降</td></tr><tr><td>処理速度</td><td>大量データでも高速</td><td>データ量が多いと重くなることがある</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Microsoft 365を使っているなら、グループ集計はGROUPBY関数に置き換えたほうがメンテナンスが楽です。グループが増えても数式を追加する必要がないので、運用コストが大幅に下がります。</p>



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



<p class="wp-block-paragraph">GROUPBY関数は「データを指定した列でグループ化し、集計結果を一覧で返す」関数です。</p>



<ul class="wp-block-list"><li>行フィールド・値・集計関数の3つを指定するだけで、グループごとの集計表が自動生成される</li><li>SUM、AVERAGE、COUNT、MAX、MINなど集計関数を切り替えるだけで、さまざまな集計ができる</li><li>総計行の追加、降順ソート、フィルターなどオプション引数も充実している</li><li>複数列でのグループ化はHSTACK関数と組み合わせる</li><li>PIVOTBY関数はクロス集計表、GROUPBY関数は縦方向のリスト集計と使い分ける</li></ul>



<p class="wp-block-paragraph">ピボットテーブルを作るほどでもない日常的なグループ集計は、GROUPBY関数で数式化しておくとデータ更新時も自動で再計算されて便利です。ぜひ試してみてください。</p>



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-sumifs/">SUMIFS関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-sumif/">SUMIF関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-countifs/">COUNTIFS関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-filter/">FILTER関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-unique/">UNIQUE関数の使い方</a></li></ul>



<h3 class="wp-block-heading"><span id="toc20">関数一覧</span></h3>



<p class="wp-block-paragraph">Excel関数の一覧は下記の記事で確認できます。</p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-list-by-function/">Excel関数 機能別一覧</a></li></ul>



<p class="wp-block-paragraph">エラー値が表示される場合は、下記の記事も参考にしてみてください。</p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-error-value-list/">Excelのエラー値一覧</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-groupby/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのPIVOTBY関数の使い方｜2軸クロス集計表を数式で</title>
		<link>https://mashukabu.com/excel-function-howto-use-pivotby/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-pivotby/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 04 Apr 2026 04:32:03 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[Excel集計]]></category>
		<category><![CDATA[GROUPBY関数]]></category>
		<category><![CDATA[Microsoft 365]]></category>
		<category><![CDATA[PIVOTBY関数]]></category>
		<category><![CDATA[クロス集計]]></category>
		<category><![CDATA[動的配列]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=5764</guid>

					<description><![CDATA[ExcelのPIVOTBY関数で行×列の2軸クロス集計表を数式ひとつで作る方法を解説。基本構文から3つの実務ユースケース、GROUPBYとの使い分け、エラー対処まで紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Excelで売上データを「部門 × 月」や「担当者 × 商品」のようにクロス集計したい場面、よくありますよね。ピボットテーブルを作るのは少し手間がかかるし、数式で組もうとするとSUMIFS関数を大量にコピーすることになります。PIVOTBY関数を使えば、たった1つの数式で2軸のクロス集計表を自動生成できます。この記事では基本の書き方から実務で使える応用例、エラー対処法まで丸ごと解説します。</p>



<p class="wp-block-paragraph">この記事は次のような人におすすめ</p>



<ul class="wp-block-list"><li>「部門 × 商品」のようなクロス集計表を数式だけで作りたい</li><li>ピボットテーブルより手軽にクロス表を作成したい</li><li>PIVOTBY関数とGROUPBY関数の違いを知りたい</li></ul>




  <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">ExcelのPIVOTBY関数とは？</a></li><li><a href="#toc2" tabindex="0">PIVOTBY関数の書き方（構文と引数）</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">PIVOTBY関数の基本的な使い方</a><ol><li><a href="#toc6" tabindex="0">ヘッダー付きで出力する</a></li></ol></li><li><a href="#toc7" tabindex="0">実践的な使い方・応用例</a><ol><li><a href="#toc8" tabindex="0">部門 × 商品の売上クロス集計</a></li><li><a href="#toc9" tabindex="0">担当者 × 月の受注件数マトリクス</a></li><li><a href="#toc10" tabindex="0">カテゴリ × 四半期の売上比率表</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">#NAME? エラー</a></li><li><a href="#toc14" tabindex="0">#VALUE! エラー</a></li><li><a href="#toc15" tabindex="0">#SPILL! エラー</a></li><li><a href="#toc16" tabindex="0">#CALC! エラー</a></li></ol></li><li><a href="#toc17" tabindex="0">GROUPBYとPIVOTBYの使い分け</a></li><li><a href="#toc18" tabindex="0">まとめ</a><ol><li><a href="#toc19" tabindex="0">関連記事</a></li><li><a href="#toc20" tabindex="0">関数一覧</a></li></ol></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">PIVOTBY（ピボットバイ）関数は、データを行と列の2軸でグループ化し、クロス集計表を自動生成する関数です。「PIVOT（軸）」+「BY（〜で指定）」で、「指定した軸で回転させる」という意味があります。</p>



<p class="wp-block-paragraph">たとえば売上データの「部門」を行、「商品」を列に配置して「金額」をSUMで合計してみましょう。部門 × 商品のクロス表が数式ひとつで完成します。結果はスピル（動的配列）で出力されます。スピルとは、数式の結果が複数セルに自動展開される機能です。データが増えても数式の修正は不要ですよ。</p>



<p class="wp-block-paragraph">PIVOTBY関数はMicrosoft 365で利用できる関数です。Excel 2021以前のバージョンでは使用できません。</p>



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



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



<pre class="wp-block-code"><code>=PIVOTBY(行フィールド, 列フィールド, 値, 集計関数, [ヘッダー], [行集計], [行の並び順], [列集計], [列の並び順], [フィルター配列], [基準])</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></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>SUM、AVERAGE、COUNTなどの関数名をカッコなしで指定</td></tr><tr><td>ヘッダー</td><td>省略可</td><td>0=なし、1=あり（非表示）、2=あり（表示）、3=自動生成</td></tr><tr><td>行集計</td><td>省略可</td><td>0=なし、1=総計、2=総計＋小計。負値で上部に表示</td></tr><tr><td>行の並び順</td><td>省略可</td><td>並べ替え列を番号で指定。負値で降順</td></tr><tr><td>列集計</td><td>省略可</td><td>0=なし、1=総計、2=総計＋小計。負値で左側に表示</td></tr><tr><td>列の並び順</td><td>省略可</td><td>並べ替え列を番号で指定。負値で降順</td></tr><tr><td>フィルター配列</td><td>省略可</td><td>行を絞り込むTRUE/FALSEの配列</td></tr><tr><td>基準</td><td>省略可</td><td>PERCENTOF使用時の割合基準（0=列合計、1=行合計、2=総計）</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>必須の引数は4つです。まずは「行フィールド」「列フィールド」「値」「集計関数」の基本形をおさえましょう。</p></blockquote>



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



<p class="wp-block-paragraph">次のような売上データがA1:D13にあるとします（1行目がヘッダー）。</p>



<figure class="wp-block-table"><table><thead><tr><th>部門</th><th>商品</th><th>月</th><th>金額</th></tr></thead><tbody><tr><td>営業部</td><td>商品A</td><td>4月</td><td>50000</td></tr><tr><td>開発部</td><td>商品B</td><td>4月</td><td>30000</td></tr><tr><td>営業部</td><td>商品B</td><td>5月</td><td>45000</td></tr><tr><td>開発部</td><td>商品A</td><td>5月</td><td>25000</td></tr><tr><td>総務部</td><td>商品A</td><td>4月</td><td>15000</td></tr><tr><td>営業部</td><td>商品A</td><td>5月</td><td>60000</td></tr><tr><td>総務部</td><td>商品B</td><td>6月</td><td>20000</td></tr><tr><td>開発部</td><td>商品B</td><td>6月</td><td>35000</td></tr><tr><td>営業部</td><td>商品B</td><td>6月</td><td>40000</td></tr><tr><td>総務部</td><td>商品A</td><td>6月</td><td>18000</td></tr><tr><td>開発部</td><td>商品A</td><td>4月</td><td>32000</td></tr><tr><td>営業部</td><td>商品A</td><td>6月</td><td>55000</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">部門 × 商品のクロス集計表を作るには、次のように書きます。</p>



<pre class="wp-block-code"><code>=PIVOTBY(A2:A13,B2:B13,D2:D13,SUM)</code></pre>



<p class="wp-block-paragraph">結果はスピルで展開され、以下のようなクロス表が自動生成されます。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>商品A</th><th>商品B</th></tr></thead><tbody><tr><td>営業部</td><td>165000</td><td>85000</td></tr><tr><td>開発部</td><td>57000</td><td>65000</td></tr><tr><td>総務部</td><td>33000</td><td>20000</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">行フィールドにA2:A13（部門列）、列フィールドにB2:B13（商品列）を指定します。値にD2:D13（金額列）、集計関数にSUMを指定すれば完成です。部門と商品の2軸で集計されたクロス表がこれだけで出来上がります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>集計関数はSUMのほかにAVERAGE、COUNT、MAX、MINなども使えます。カッコは付けずに関数名だけを指定してください。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc6">ヘッダー付きで出力する</span></h3>



<p class="wp-block-paragraph">ヘッダー行を含めた範囲を指定し、第5引数に3を設定すると、結果にもヘッダーが付きます。</p>



<pre class="wp-block-code"><code>=PIVOTBY(A1:A13,B1:B13,D1:D13,SUM,3)</code></pre>



<p class="wp-block-paragraph">1行目・1列目に「部門」「商品A」「商品B」のようなヘッダーが自動表示されます。報告用の表を作るときに便利ですよ。</p>



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



<h3 class="wp-block-heading"><span id="toc8">部門 × 商品の売上クロス集計</span></h3>



<p class="wp-block-paragraph">先ほどの基本例に総計行と総計列を追加してみましょう。第6引数（行集計）と第8引数（列集計）にそれぞれ1を指定します。</p>



<pre class="wp-block-code"><code>=PIVOTBY(A2:A13,B2:B13,D2:D13,SUM,,1,,1)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>商品A</th><th>商品B</th><th>総計</th></tr></thead><tbody><tr><td>営業部</td><td>165000</td><td>85000</td><td>250000</td></tr><tr><td>開発部</td><td>57000</td><td>65000</td><td>122000</td></tr><tr><td>総務部</td><td>33000</td><td>20000</td><td>53000</td></tr><tr><td>総計</td><td>255000</td><td>170000</td><td>425000</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">行と列の両方に総計が付くので、全体の構成がひと目で分かります。省略する引数の位置はカンマだけで飛ばしてくださいね。</p>



<h3 class="wp-block-heading"><span id="toc9">担当者 × 月の受注件数マトリクス</span></h3>



<p class="wp-block-paragraph">データの行フィールドを担当者、列フィールドを月にすれば、担当者ごと・月ごとの件数表が作れます。集計関数をCOUNTに変えるだけです。</p>



<pre class="wp-block-code"><code>=PIVOTBY(A2:A13,C2:C13,D2:D13,COUNT)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>4月</th><th>5月</th><th>6月</th></tr></thead><tbody><tr><td>営業部</td><td>1</td><td>2</td><td>2</td></tr><tr><td>開発部</td><td>2</td><td>1</td><td>1</td></tr><tr><td>総務部</td><td>1</td><td>0</td><td>2</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">列フィールドをC列（月）に変えただけで、まったく違うクロス表が出力されます。集計関数を切り替えれば合計・平均・件数など自在に対応できますよ。</p>



<h3 class="wp-block-heading"><span id="toc10">カテゴリ × 四半期の売上比率表</span></h3>



<p class="wp-block-paragraph">PERCENTOF関数と組み合わせると、各セルを「全体に対する割合」で表示できます。第4引数にPERCENTOFを、第11引数（基準）に2（総計基準）を指定します。</p>



<pre class="wp-block-code"><code>=PIVOTBY(A2:A13,B2:B13,D2:D13,PERCENTOF,,,,,,,2)</code></pre>



<p class="wp-block-paragraph">各セルの値が「総計に対する割合」として表示されます。たとえば営業部 × 商品Aが全体の何%を占めるかがすぐに分かります。構成比の分析をしたいときに試してみてください。</p>



<h3 class="wp-block-heading"><span id="toc11">特定条件でフィルターする</span></h3>



<p class="wp-block-paragraph">第10引数にTRUE/FALSEの配列を渡すと、条件を絞ったクロス集計ができます。金額が30000以上のデータだけで集計する場合です。</p>



<pre class="wp-block-code"><code>=PIVOTBY(A2:A13,B2:B13,D2:D13,SUM,,,,,,(D2:D13&gt;=30000))</code></pre>



<p class="wp-block-paragraph">条件に合う行だけが集計対象になります。フィルター配列は元データと同じ行数にしてください。</p>



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



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



<p class="wp-block-paragraph">関数名のスペルミス、またはPIVOTBY関数に対応していないバージョンで発生します。PIVOTBY関数はMicrosoft 365専用です。Excel 2021以前ではこのエラーが表示されます。</p>



<p class="wp-block-paragraph"><strong>対処法</strong>: バージョンを確認してください。スペルが正しいかもあわせてチェックしましょう。</p>



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



<p class="wp-block-paragraph">行フィールド・列フィールド・値の行数が一致しない場合に発生します。ヘッダーの有無が揃っていないケースが多いです。</p>



<p class="wp-block-paragraph"><strong>対処法</strong>: 3つの範囲の行数を揃えてください。ヘッダー行を含めるなら全部含める、除くなら全部除くように統一します。</p>



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



<p class="wp-block-paragraph">スピル先のセル範囲に他のデータが入っている場合に発生します。PIVOTBY関数は行と列の両方向に展開するため、広い範囲が必要です。</p>



<p class="wp-block-paragraph"><strong>対処法</strong>: 数式を入力するセルの右下方向に十分な空きスペースを確保してください。</p>



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



<p class="wp-block-paragraph">フィルター配列で全行が除外された場合や、空の配列が渡された場合に発生します。</p>



<p class="wp-block-paragraph"><strong>対処法</strong>: フィルター条件を見直して、少なくとも1行はTRUEになるようにしてください。</p>



<h2 class="wp-block-heading"><span id="toc17">GROUPBYとPIVOTBYの使い分け</span></h2>



<p class="wp-block-paragraph">PIVOTBY関数と同時期に追加された<a href="https://mashukabu.com/excel-function-howto-use-groupby/">GROUPBY関数</a>も、データを集計する関数です。出力形式が大きく異なるので、目的に応じて使い分けましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>GROUPBY関数</th><th>PIVOTBY関数</th></tr></thead><tbody><tr><td>出力形式</td><td>縦方向のリスト</td><td>行 × 列のクロス集計表</td></tr><tr><td>グループ化の軸</td><td>行方向のみ（1軸）</td><td>行と列の2軸</td></tr><tr><td>必須引数</td><td>3つ（行・値・関数）</td><td>4つ（行・列・値・関数）</td></tr><tr><td>得意な場面</td><td>部門ごとの合計など1軸の集計</td><td>部門 × 月のクロス表</td></tr><tr><td>引数の数</td><td>8個</td><td>11個</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">判断基準はシンプルですよ。</p>



<ul class="wp-block-list"><li>「〜ごとの合計を縦に並べたい」 → GROUPBY関数</li><li>「〜ごと × 〜ごとの表を作りたい」 → PIVOTBY関数</li></ul>



<p class="wp-block-paragraph">たとえば「部門ごとの売上合計」ならGROUPBY関数で十分です。「部門 × 四半期の売上表」のように2つの軸が必要なら、PIVOTBY関数を選びましょう。</p>



<p class="wp-block-paragraph">PIVOTBYの結果を特定の列で並べ替えたい場合は、<a href="https://mashukabu.com/excel-function-howto-use-sortby/">SORTBY関数</a>も組み合わせて使えます。</p>



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



<p class="wp-block-paragraph">PIVOTBY関数は「行と列の2軸でデータをグループ化し、クロス集計表を自動生成する」関数です。</p>



<ul class="wp-block-list"><li>行フィールド・列フィールド・値・集計関数の4つを指定するだけで、クロス表が完成する</li><li>総計行・総計列の追加、ソート、フィルターなどオプション引数も充実している</li><li>PERCENTOF関数と組み合わせれば、構成比の分析もできる</li><li>1軸の縦リスト集計ならGROUPBY関数、2軸のクロス表ならPIVOTBY関数と使い分ける</li><li>Microsoft 365専用の関数なので、バージョンを確認してから使う</li></ul>



<p class="wp-block-paragraph">ピボットテーブルを作るほどでもないクロス集計は、PIVOTBY関数で数式化しておきましょう。データ更新時も自動で再計算されるので手間が省けます。ぜひ試してみてください。</p>



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-groupby/">GROUPBY関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-sortby/">SORTBY関数の使い方</a></li></ul>



<h3 class="wp-block-heading"><span id="toc20">関数一覧</span></h3>



<p class="wp-block-paragraph">Excel関数の一覧は下記の記事で確認できます。</p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-list-by-function/">Excel関数 機能別一覧</a></li></ul>



<p class="wp-block-paragraph">エラー値が表示される場合は、下記の記事も参考にしてみてください。</p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-error-value-list/">Excelのエラー値一覧</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-pivotby/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのRANDARRAY関数の使い方｜ランダムな配列を一括作成する方法</title>
		<link>https://mashukabu.com/excel-function-howto-use-randarray/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-randarray/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Tue, 27 Dec 2022 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[Microsoft 365]]></category>
		<category><![CDATA[RANDARRAY]]></category>
		<category><![CDATA[スピル]]></category>
		<category><![CDATA[データ生成]]></category>
		<category><![CDATA[乱数]]></category>
		<category><![CDATA[動的配列]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=2965</guid>

					<description><![CDATA[ExcelのRANDARRAY関数の使い方を解説。ランダムな数値（乱数）の配列を一括生成する方法を、引数の指定方法から整数・小数の切り替え、テストデータ作成・ランダムサンプリング・モンテカルロシミュレーション・SORT関数やINDEX関数との組み合わせ、RAND/RANDBETWEEN関数との使い分け、よくあるエラー対処まで実例付きで紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「テスト用にランダムなデータが大量にほしい」「シミュレーション用の乱数を手入力するのは面倒すぎる」と感じたことはありませんか？ セル1つずつに乱数を入力していたら、あっという間に日が暮れてしまいますよね。</p>



<p class="wp-block-paragraph">ExcelのRANDARRAY関数を使えば、指定した行数・列数のランダムな数値を一括で生成できます。 数式は1つだけでよく、後から行数を変えるのも引数を書き換えるだけ。 この記事では、RANDARRAY関数の基本構文から整数・小数の切り替え、テストデータ作成・ランダムサンプリング・モンテカルロシミュレーションといった実務での活用例、よくあるエラーの対処法まで、初心者の方でも迷わないようにわかりやすく解説します。</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">ExcelのRANDARRAY関数とは？</a><ol><li><a href="#toc2" tabindex="0">動的配列関数（スピル機能）の代表格</a></li></ol></li><li><a href="#toc3" tabindex="0">RANDARRAY関数の書き方（構文と引数）</a><ol><li><a href="#toc4" tabindex="0">基本構文</a></li><li><a href="#toc5" tabindex="0">引数の一覧</a></li><li><a href="#toc6" tabindex="0">引数を指定する順番に注意</a></li></ol></li><li><a href="#toc7" tabindex="0">RANDARRAY関数の基本的な使い方</a><ol><li><a href="#toc8" tabindex="0">例1: 5行3列のランダムな整数を生成する</a></li><li><a href="#toc9" tabindex="0">例2: 引数をすべて省略した場合</a></li><li><a href="#toc10" tabindex="0">例3: 行・列だけを指定する</a></li><li><a href="#toc11" tabindex="0">例4: 小数の範囲を指定する</a></li><li><a href="#toc12" tabindex="0">例5: マイナスを含む乱数を作る</a></li></ol></li><li><a href="#toc13" tabindex="0">RANDARRAY関数の実践的な活用例</a><ol><li><a href="#toc14" tabindex="0">活用例1: テストデータの一括生成</a></li><li><a href="#toc15" tabindex="0">活用例2: SORT関数と組み合わせてソート済みの乱数を作る</a></li><li><a href="#toc16" tabindex="0">活用例3: ランダムサンプリング（無作為抽出）</a></li><li><a href="#toc17" tabindex="0">活用例4: モンテカルロ法のシミュレーション</a></li><li><a href="#toc18" tabindex="0">活用例5: INT関数と組み合わせて整数に変換する</a></li><li><a href="#toc19" tabindex="0">活用例6: 値を固定する方法（再計算で変わらないようにする）</a></li></ol></li><li><a href="#toc20" tabindex="0">RANDARRAY関数でよくあるエラーと対処法</a><ol><li><a href="#toc21" tabindex="0">#VALUE! エラー</a></li><li><a href="#toc22" tabindex="0">#CALC! エラー</a></li><li><a href="#toc23" tabindex="0">#NAME? エラー</a></li><li><a href="#toc24" tabindex="0">#SPILL! エラー</a></li></ol></li><li><a href="#toc25" tabindex="0">RAND・RANDBETWEEN関数との違い・使い分け</a><ol><li><a href="#toc26" tabindex="0">使い分けの目安</a></li><li><a href="#toc27" tabindex="0">互換性の観点</a></li></ol></li><li><a href="#toc28" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">RANDARRAY関数は「ランダムアレイ」と読みます。 「Random（ランダム）」と「Array（配列）」を組み合わせた名前です。</p>



<p class="wp-block-paragraph">この関数は、指定したサイズのランダムな数値の配列を返します。 たとえば「5行3列の乱数テーブルがほしい」といった場面で、たった1つの数式で15個分の乱数を一括生成できますよ。</p>



<p class="wp-block-paragraph">RANDARRAY関数はMicrosoft 365またはExcel 2021以降で利用できます。 Excel 2019以前の環境では使えないので、ご注意くださいね。</p>



<h3 class="wp-block-heading"><span id="toc2">動的配列関数（スピル機能）の代表格</span></h3>



<p class="wp-block-paragraph">RANDARRAY関数は「動的配列関数」の1つで、結果が自動的に隣接セルへ展開（スピル）するのが特徴です。 スピルとは、1つのセルに入力した数式の結果が、必要な範囲のセルに自動的にあふれ出して表示される仕組みのこと。</p>



<p class="wp-block-paragraph">たとえば A1セルに <code>=RANDARRAY(5, 3)</code> と入力すると、A1からC5までの15セルに自動的に乱数が広がります。 数式が入っているのはA1だけなので、修正したいときも1か所を直すだけで全体が更新されますよ。</p>



<p class="wp-block-paragraph">スピル範囲全体を一度に参照したいときは、先頭セルのアドレスに <code>#</code> を付けて <code>A1#</code> のように書きます。 「合計や平均を計算したい」といった場面でも便利な書き方です。</p>



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



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



<pre class="wp-block-code"><code>=RANDARRAY([行], [列], [最小値], [最大値], [整数])</code></pre>



<p class="wp-block-paragraph">引数は5つありますが、すべて省略できます。 省略した場合は、0以上1未満の小数が1つだけ返されます（つまりRAND関数と同じ動きですね）。</p>



<h3 class="wp-block-heading"><span id="toc5">引数の一覧</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>配列の行数（1以上の整数）</td><td>1</td></tr><tr><td>列</td><td>省略可</td><td>配列の列数（1以上の整数）</td><td>1</td></tr><tr><td>最小値</td><td>省略可</td><td>生成する数値の下限</td><td>0</td></tr><tr><td>最大値</td><td>省略可</td><td>生成する数値の上限</td><td>1</td></tr><tr><td>整数</td><td>省略可</td><td>TRUE=整数 / FALSE=小数</td><td>FALSE（小数）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>「整数」引数のポイント</strong>: TRUEまたは1を指定すると整数だけが生成されます。 FALSEまたは0（省略時も同じ）だと小数値になります。 TRUEを指定したときは、最小値と最大値も整数で指定するのが安全ですよ。</p>



<h3 class="wp-block-heading"><span id="toc6">引数を指定する順番に注意</span></h3>



<p class="wp-block-paragraph">RANDARRAY関数の引数は「行→列→最小値→最大値→整数」の順番です。 RANDBETWEEN関数の引数の順番（下限→上限）に慣れていると、つい <code>=RANDARRAY(1, 100)</code> のように書いてしまいがちですが、これは「1行100列の0〜1の小数」を作る式になってしまいます。</p>



<p class="wp-block-paragraph">「1〜100の整数を1つだけほしい」場合は <code>=RANDARRAY(1, 1, 1, 100, TRUE)</code> と書く必要があります。 引数の順番は意識しておきたいポイントですね。</p>



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



<h3 class="wp-block-heading"><span id="toc8">例1: 5行3列のランダムな整数を生成する</span></h3>



<p class="wp-block-paragraph">1から100までの整数をランダムに生成してみましょう。</p>



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



<p class="wp-block-paragraph">この数式を1つのセルに入力するだけで、5行3列の15個の整数が自動的に展開されます。 入力したセルから右と下に結果がスピルされるので、展開先のセルは空けておいてくださいね。</p>



<h3 class="wp-block-heading"><span id="toc9">例2: 引数をすべて省略した場合</span></h3>



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



<p class="wp-block-paragraph">引数をすべて省略すると、0以上1未満の小数が1つ返されます。 この動きはRAND関数と同じです。 「とにかく乱数が1個ほしい」だけなら、RAND関数のほうが短くて済みますね。</p>



<h3 class="wp-block-heading"><span id="toc10">例3: 行・列だけを指定する</span></h3>



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



<p class="wp-block-paragraph">行と列だけを指定すると、3行4列の配列で0以上1未満の小数が返されます。 最小値・最大値・整数は省略時の初期値（0, 1, FALSE）が使われますよ。</p>



<h3 class="wp-block-heading"><span id="toc11">例4: 小数の範囲を指定する</span></h3>



<p class="wp-block-paragraph">「0〜100の小数（小数点以下も含む）」を作りたいときは、整数引数をFALSEまたは省略にします。</p>



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



<p class="wp-block-paragraph">これで0以上100未満の小数が15個生成されます。 売上の重み付けや確率シミュレーションなど、連続値が必要な場面で使えますよ。</p>



<h3 class="wp-block-heading"><span id="toc12">例5: マイナスを含む乱数を作る</span></h3>



<p class="wp-block-paragraph">最小値にマイナス値を指定すれば、負の数を含む乱数も生成できます。</p>



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



<p class="wp-block-paragraph">-50から50までの整数がランダムに生成されます。 偏差値の模擬データや、増減の幅を試したいシミュレーションで活躍する書き方です。</p>



<h2 class="wp-block-heading"><span id="toc13">RANDARRAY関数の実践的な活用例</span></h2>



<h3 class="wp-block-heading"><span id="toc14">活用例1: テストデータの一括生成</span></h3>



<p class="wp-block-paragraph">ダミーの売上データなどを作りたいときに便利です。 たとえば、100人分の売上金額（1,000円〜50,000円）を一括で作るなら次のように書きます。</p>



<pre class="wp-block-code"><code>=RANDARRAY(100, 1, 1000, 50000, TRUE)</code></pre>



<p class="wp-block-paragraph">100行1列の配列で、1,000から50,000の間の整数がランダムに生成されます。 ピボットテーブルやグラフの動作確認、研修用の練習データなど「中身は適当でいいから、それっぽい数字が大量にほしい」場面で重宝しますよ。</p>



<p class="wp-block-paragraph">複数列のテストデータがほしいときは、列ごとに別の引数で組み合わせます。 たとえば「売上（1,000〜50,000）」と「数量（1〜10）」の2列を作るなら、隣り合わせのセルに別々のRANDARRAY式を入れる形ですね。</p>



<h3 class="wp-block-heading"><span id="toc15">活用例2: SORT関数と組み合わせてソート済みの乱数を作る</span></h3>



<p class="wp-block-paragraph">ランダムに生成した数値を昇順で並べたいときは、SORT関数で囲みます。</p>



<pre class="wp-block-code"><code>=SORT(RANDARRAY(10, 1, 1, 100, TRUE))</code></pre>



<p class="wp-block-paragraph">これで1から100の整数が10個、小さい順に並んだ状態で表示されます。 降順にしたいときは <code>=SORT(RANDARRAY(10, 1, 1, 100, TRUE), 1, -1)</code> のように、SORT関数の第3引数に-1を指定してください。</p>



<p class="wp-block-paragraph">テスト用のソート済みデータがほしいときや、検索関数（VLOOKUP・XLOOKUPなど）の動作確認をしたいときに重宝しますよ。</p>



<h3 class="wp-block-heading"><span id="toc16">活用例3: ランダムサンプリング（無作為抽出）</span></h3>



<p class="wp-block-paragraph">「100人のリストから10人をランダムに選びたい」といった抽選・サンプリングの場面でもRANDARRAY関数が活躍します。 INDEX関数とSORTBY関数と組み合わせるのが定番ですね。</p>



<p class="wp-block-paragraph">たとえばA2:A101に100人分の名前があるとして、SORTBY関数を使えば次のように書けます。</p>



<pre class="wp-block-code"><code>=INDEX(SORTBY(A2:A101, RANDARRAY(100)), SEQUENCE(10))</code></pre>



<p class="wp-block-paragraph">RANDARRAY(100)で100個の乱数を作り、それをキーにA2:A101を並べ替えています。 結果のうち先頭10件をINDEX関数とSEQUENCE関数で取り出す形ですね。 「重複なし・等確率」で10人を抽出できます。</p>



<p class="wp-block-paragraph">シンプルに「ランダムな順番に並べ替える」だけでよければ、次の式でもOKです。</p>



<pre class="wp-block-code"><code>=SORTBY(A2:A101, RANDARRAY(100))</code></pre>



<p class="wp-block-paragraph">社内の班分けや当番決め、AB両グループへのランダム割り当てなど、抽選が絡む業務はこれで一発ですよ。</p>



<h3 class="wp-block-heading"><span id="toc17">活用例4: モンテカルロ法のシミュレーション</span></h3>



<p class="wp-block-paragraph">「サイコロを1,000回振ったら、6が出る回数の期待値はいくつか？」といった確率シミュレーションでも、RANDARRAY関数が便利です。 1,000個の乱数を一発で作って、条件に合う数を数えるだけで済みます。</p>



<pre class="wp-block-code"><code>=COUNTIF(RANDARRAY(1000, 1, 1, 6, TRUE), 6)</code></pre>



<p class="wp-block-paragraph">1,000個の1〜6の整数の中から、6が出た回数をCOUNTIF関数で数える式です。 理論上は約167回（1,000 ÷ 6）に近い値が出るはずですよ。</p>



<p class="wp-block-paragraph">売上予測や在庫シミュレーションなど、不確実性を含む試算ではモンテカルロ法が有効です。 RANDARRAY関数なら1つの数式で大量の試行ができるので、本格的なシミュレーションも手軽に組めますね。</p>



<h3 class="wp-block-heading"><span id="toc18">活用例5: INT関数と組み合わせて整数に変換する</span></h3>



<p class="wp-block-paragraph">「整数」引数をTRUEにする代わりに、INT関数で小数点以下を切り捨てる方法もあります。</p>



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



<p class="wp-block-paragraph">この書き方でも整数が得られます。 ただし、RANDARRAY関数の「整数」引数をTRUEにするほうがシンプルなので、通常はそちらがおすすめです。 INT関数を使うのは、小数で生成した結果を別の計算に流用したい場合に限られますね。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-int/">INT関数の使い方はこちらの記事</a>で詳しく解説しています。</p>



<h3 class="wp-block-heading"><span id="toc19">活用例6: 値を固定する方法（再計算で変わらないようにする）</span></h3>



<p class="wp-block-paragraph">RANDARRAY関数は「揮発性関数」です。 シートを再計算するたびに、値が新しい乱数に変わります。 セルを編集したり、別シートで関数を編集したりするだけでも値が変わってしまうので、「さっきの乱数のまま固定したい」場面では困りますよね。</p>



<p class="wp-block-paragraph">生成した値を固定したいときは、次の手順で対応しましょう。</p>



<ol class="wp-block-list"><li>RANDARRAY関数で生成されたセル範囲を選択する</li><li>Ctrl + C でコピーする</li><li>同じ範囲を選択した状態で「貼り付け」→「値」を選ぶ（ショートカット: Ctrl + Alt + V → V → Enter）</li></ol>



<p class="wp-block-paragraph">これで数式が値に置き換わり、再計算しても変わらなくなりますよ。 テストデータを納品したり、シミュレーション結果のスクリーンショットを撮ったりするときは、値貼り付けでの固定が必須です。</p>



<p class="wp-block-paragraph">なお、計算方法を「手動」に切り替える方法（数式タブ → 計算方法の設定 → 手動）もありますが、シート全体の挙動が変わってしまうのでおすすめしません。</p>



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



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



<p class="wp-block-paragraph">行数や列数に0以下の数値、または小数を指定すると発生します。 行と列には1以上の整数を指定してください。</p>



<pre class="wp-block-code"><code>=RANDARRAY(0, 3)    → #VALUE! エラー（行が0）
=RANDARRAY(2.5, 3)  → #VALUE! エラーになる場合あり（環境による）
=RANDARRAY(5, 3)    → 正常に動作</code></pre>



<p class="wp-block-paragraph">また、最小値が最大値より大きい場合も#VALUE!エラーになります。</p>



<pre class="wp-block-code"><code>=RANDARRAY(5, 3, 100, 1)   → #VALUE! エラー（最小値&gt;最大値）
=RANDARRAY(5, 3, 1, 100)   → 正常に動作</code></pre>



<p class="wp-block-paragraph">引数を変数（別セル参照）で渡している場合は、その参照先の値もチェックしておきましょう。</p>



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



<p class="wp-block-paragraph">生成する配列が大きすぎてシートに収まらない場合に発生します。 たとえば、A1セルに <code>=RANDARRAY(1048577, 1)</code> と入力すると、Excelの最大行数（1,048,576行）を超えるためエラーになります。</p>



<p class="wp-block-paragraph">行数・列数を見直して配列のサイズを小さくするか、入力セルの位置を表の左上付近に変更してみてください。 「100万行 × 100列」のような大きすぎる配列は、計算負荷も高いのでおすすめしません。</p>



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



<p class="wp-block-paragraph">RANDARRAY関数に対応していないバージョンのExcelで使おうとすると、#NAME?エラーが表示されます。 この関数はMicrosoft 365またはExcel 2021以降が必要です。 Excel 2019以前の環境では代わりに、RAND関数やRANDBETWEEN関数をセル単位でコピーして対応しましょう。</p>



<p class="wp-block-paragraph">お使いのバージョンが対応しているかは、「ファイル」→「アカウント」から確認できますよ。</p>



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



<p class="wp-block-paragraph">スピル先（配列が展開される先）のセルにデータが入っていると、#SPILL!エラーになります。 たとえばA1に <code>=RANDARRAY(5, 3)</code> と入力したのに、B3セルにすでに値が入っていると、配列を展開できないためエラーになる仕組みです。</p>



<p class="wp-block-paragraph">展開先のセルを空にすれば解消しますよ。 エラーが出ているセルをクリックすると、Excelが「スピルできない範囲」を青枠で表示してくれます。 その範囲のデータを削除するか、別の場所に移動してから数式を入れ直してみてください。</p>



<p class="wp-block-paragraph">結合セルがスピル先にある場合も#SPILL!の原因になります。 結合を解除してから数式を入力し直すと解決しますよ。</p>



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



<p class="wp-block-paragraph">Excelには乱数を生成する関数が3つあります。 目的に応じて使い分けましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>返す値</th><th>個数</th><th>引数</th></tr></thead><tbody><tr><td>RAND()</td><td>0以上1未満の小数</td><td>1つ</td><td>なし</td></tr><tr><td>RANDBETWEEN(下限, 上限)</td><td>指定範囲の整数</td><td>1つ</td><td>2つ</td></tr><tr><td>RANDARRAY(行, 列, 最小, 最大, 整数)</td><td>指定範囲の整数または小数</td><td>配列（複数）</td><td>5つ（すべて省略可）</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc26">使い分けの目安</span></h3>



<ul class="wp-block-list"><li><strong>乱数（小数）が1つだけほしい</strong> → RAND関数が一番シンプル</li><li><strong>整数の乱数が1つほしい</strong> → RANDBETWEEN関数が手軽</li><li><strong>複数の乱数を一括で生成したい</strong> → RANDARRAY関数</li><li><strong>小数の範囲を指定して乱数を作りたい</strong> → RANDARRAY関数のみ可能</li></ul>



<p class="wp-block-paragraph">RANDARRAY関数は配列で返せるのが最大の強みです。 RAND関数やRANDBETWEEN関数だと、必要なセルの数だけ数式をコピーする必要がありますが、RANDARRAY関数なら1つの数式で完結します。 行数を変えたいときも引数を書き換えるだけなので、管理もラクですよ。</p>



<p class="wp-block-paragraph">また、RANDBETWEEN関数では指定できない「小数の範囲」も指定できるのがRANDARRAY関数の強みです。 「0.0〜1.0の連続値が10個ほしい」といった場面では、RANDARRAY関数一択になります。</p>



<h3 class="wp-block-heading"><span id="toc27">互換性の観点</span></h3>



<p class="wp-block-paragraph">Excel 2019以前で動作させる必要があるブックでは、RAND関数・RANDBETWEEN関数を使ってください。 RANDARRAY関数を含むブックを古いExcelで開くと#NAME?エラーになり、その場で値が壊れてしまいます。 取引先や社内で旧バージョンのExcelが残っているなら、互換性を考えてRAND/RANDBETWEEN関数を選ぶのが安全ですね。</p>



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



<p class="wp-block-paragraph">この記事では、ExcelのRANDARRAY関数の使い方を解説しました。 ポイントをおさらいしましょう。</p>



<ul class="wp-block-list"><li><strong>RANDARRAY関数</strong>は、指定した行数・列数のランダムな数値の配列を一括生成できる動的配列関数</li><li>引数は5つ（行・列・最小値・最大値・整数）で、すべて省略可能</li><li>「整数」引数をTRUEにすると整数、FALSEまたは省略で小数が返される</li><li>結果は隣接セルへ自動展開（<strong>スピル</strong>）される。スピル範囲は <code>A1#</code> のように <code>#</code> 付きで参照可能</li><li><strong>揮発性関数</strong>なので再計算のたびに値が変わる。固定するにはコピー → 値貼り付け</li><li><strong>SORT関数</strong>と組み合わせるとソート済み乱数、<strong>SORTBY関数</strong>と組み合わせるとランダムサンプリングが作れる</li><li><strong>モンテカルロシミュレーション</strong>のように大量の乱数を扱う処理にも便利</li><li><strong>RAND関数・RANDBETWEEN関数</strong>との違いは「配列で一括生成できるか」「小数の範囲を指定できるか」</li><li><strong>Microsoft 365またはExcel 2021以降</strong>が必要。古い環境ではRAND/RANDBETWEEN関数で代用</li></ul>



<p class="wp-block-paragraph">テストデータの作成、ランダム抽選、シミュレーションなど、ランダムなデータが必要な場面でぜひ活用してみてください。 1つの数式で完結するシンプルさは、一度使うと手放せなくなりますよ。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-randarray/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>TOROW関数の使い方｜引数・TOCOL比較・エラー対処</title>
		<link>https://mashukabu.com/excel-function-howto-use-torow/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-torow/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Fri, 18 Nov 2022 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[TOCOL関数]]></category>
		<category><![CDATA[TOROW関数]]></category>
		<category><![CDATA[TRANSPOSE関数]]></category>
		<category><![CDATA[スピル関数]]></category>
		<category><![CDATA[動的配列]]></category>
		<category><![CDATA[配列関数]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=3025</guid>

					<description><![CDATA[ExcelのTOROW関数の使い方を引数の意味から解説。空白・エラーの除外方法やスキャン方向の使い分け、TOCOL・TRANSPOSEとの違いを比較表で整理しています。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Excelで複数行・複数列にまたがるデータを、横1行にまとめたいことってありますよね。手動でコピー＆ペーストしていると時間がかかりますし、元データが変わるたびにやり直しです。</p>



<p class="wp-block-paragraph">TOROW関数を使えば、2次元の範囲を数式ひとつで横1行に変換できます。空白やエラーの除外もオプションひとつで設定できるので、データ整理が一気にスムーズになりますよ。</p>



<p class="wp-block-paragraph">この記事では、TOROW関数の引数の意味から使い方を解説します。<a href="https://mashukabu.com/excel-function-howto-use-tocol/">TOCOL関数</a>・<a href="https://mashukabu.com/excel-function-howto-use-transpose/">TRANSPOSE関数</a>との違い、よくあるエラーの対処法もあわせて紹介しますよ。</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">ExcelのTOROW関数とは？</a><ol><li><a href="#toc2" tabindex="0">読み方と基本概念</a></li><li><a href="#toc3" tabindex="0">使えるバージョン</a></li></ol></li><li><a href="#toc4" tabindex="0">TOROW関数の引数を丁寧に解説</a><ol><li><a href="#toc5" tabindex="0">第1引数「配列」</a></li><li><a href="#toc6" tabindex="0">第2引数「無視」（0/1/2/3）</a></li><li><a href="#toc7" tabindex="0">第3引数「scan_by_column」（行順vs列順）</a></li></ol></li><li><a href="#toc8" tabindex="0">TOROW関数の使用例（基本から応用まで）</a><ol><li><a href="#toc9" tabindex="0">基本：セル範囲を横1行に変換</a></li><li><a href="#toc10" tabindex="0">空白セルを除外して変換（ignore=1）</a></li><li><a href="#toc11" tabindex="0">列方向スキャンで並び順を変える（scan_by_column=TRUE）</a></li></ol></li><li><a href="#toc12" tabindex="0">TOCOL・TRANSPOSEとの違い</a><ol><li><a href="#toc13" tabindex="0">TOROW vs TOCOL</a></li><li><a href="#toc14" tabindex="0">TOROW vs TRANSPOSE</a></li><li><a href="#toc15" tabindex="0">比較表</a></li></ol></li><li><a href="#toc16" tabindex="0">他の関数との組み合わせ活用</a><ol><li><a href="#toc17" tabindex="0">UNIQUE + TOROW</a></li><li><a href="#toc18" tabindex="0">FILTER + TOROW</a></li><li><a href="#toc19" tabindex="0">HSTACK + TOROW</a></li><li><a href="#toc20" tabindex="0">SORT + TOROW：横1行に変換してから並べ替える</a></li></ol></li><li><a href="#toc21" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc22" tabindex="0">#SPILL!</a></li><li><a href="#toc23" tabindex="0">#NAME?</a></li><li><a href="#toc24" tabindex="0">#NUM!</a></li></ol></li><li><a href="#toc25" tabindex="0">TOROW関数に関するよくある質問</a><ol><li><a href="#toc26" tabindex="0">Q1. GoogleスプレッドシートでもTOROW関数は使えますか？</a></li><li><a href="#toc27" tabindex="0">Q2. 第2引数を省略すると空白も含まれますか？</a></li><li><a href="#toc28" tabindex="0">Q3. 結果が横に広がって隣のセルと干渉する場合はどうすればいいですか？</a></li><li><a href="#toc29" tabindex="0">Q4. 横1行から2次元の表に戻す（逆変換）にはどうすればいいですか？</a></li><li><a href="#toc30" tabindex="0">Q5. Microsoft 365 Personal/FamilyとBusiness/Enterpriseの両方で使えますか？</a></li></ol></li><li><a href="#toc31" tabindex="0">まとめ</a><ol><li><a href="#toc32" tabindex="0">この記事で紹介した関数・関連記事</a></li></ol></li></ol>
    </div>
  </div>

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



<h3 class="wp-block-heading"><span id="toc2">読み方と基本概念</span></h3>



<p class="wp-block-paragraph">TOROW関数（読み方: トゥロウ関数）は、2次元のセル範囲や配列を<strong>横1行の配列に変換する</strong>関数です。「to row（行にする）」が名前の由来になっています。</p>



<p class="wp-block-paragraph">たとえば、3行x4列の表を横1行x12列に変換できます。元データと数式でつながっているため、元データを変更すると変換結果も自動で更新されますよ。</p>



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



<ul class="wp-block-list"><li>2次元のセル範囲を横1行に変換する</li><li>空白セルやエラー値を除外して変換できる</li><li>読み取り順序を行方向・列方向で切り替えられる</li><li>他の関数と組み合わせてデータ整理を効率化できる</li></ul>



<h3 class="wp-block-heading"><span id="toc3">使えるバージョン</span></h3>



<p class="wp-block-paragraph">TOROW関数は比較的新しい関数です。使えるバージョンは限られているので、事前に確認しておきましょう。</p>



<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 for the web</td><td>対応</td></tr><tr><td>Excel 2021</td><td>非対応</td></tr><tr><td>Excel 2019以前</td><td>非対応</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Excel 2021以前のバージョンでは <code>#NAME?</code> エラーになります。職場のExcelバージョンが対応しているか、先に確認してくださいね。</p>



<h2 class="wp-block-heading"><span id="toc4">TOROW関数の引数を丁寧に解説</span></h2>



<p class="wp-block-paragraph">まずはTOROW関数の構文を確認しましょう。</p>



<pre class="wp-block-code"><code>=TOROW(配列, [無視], [scan_by_column])</code></pre>



<p class="wp-block-paragraph">引数は3つありますが、必須なのは第1引数の「配列」だけです。第2・第3引数は省略できます。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>説明</th></tr></thead><tbody><tr><td>配列</td><td>必須</td><td>1行に変換したいセル範囲または配列</td></tr><tr><td>無視</td><td>任意</td><td>除外する値の種類を指定する（0〜3）</td></tr><tr><td>scan_by_column</td><td>任意</td><td>読み取り方向を指定する（FALSE/TRUE）</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc5">第1引数「配列」</span></h3>



<p class="wp-block-paragraph">「配列」には、横1行に変換したいセル範囲を指定します。<code>B2:D5</code> のようなセル範囲のほか、他の関数の結果（配列）を渡すこともできます。</p>



<pre class="wp-block-code"><code>=TOROW(B2:D5)</code></pre>



<p class="wp-block-paragraph">指定した範囲のすべてのセルが、横1行に展開されます。</p>



<h3 class="wp-block-heading"><span id="toc6">第2引数「無視」（0/1/2/3）</span></h3>



<p class="wp-block-paragraph">第2引数では、変換時に除外する値の種類を数値で指定します。省略すると0（すべて保持）になります。</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">データに歯抜けやエラーが混ざっている場合は、1や3を指定するとクリーンな結果を取得できます。特に3を指定すると空白とエラーをまとめて除外できるので便利ですよ。</p>



<h3 class="wp-block-heading"><span id="toc7">第3引数「scan_by_column」（行順vs列順）</span></h3>



<p class="wp-block-paragraph">第3引数では、2次元データをどの順番で読み取るかを指定します。省略するとFALSE（行方向）になります。</p>



<figure class="wp-block-table"><table><thead><tr><th>値</th><th>読み取り順序</th><th>説明</th></tr></thead><tbody><tr><td>FALSE（省略時）</td><td>行方向</td><td>1行目を左から右へ → 2行目を左から右へ → &#8230;</td></tr><tr><td>TRUE</td><td>列方向</td><td>1列目を上から下へ → 2列目を上から下へ → &#8230;</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">たとえば以下の2行x2列のデータを変換する場合です。</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>A</td><td>B</td></tr><tr><td>2行目</td><td>1</td><td>2</td></tr></tbody></table></figure>



<ul class="wp-block-list"><li><strong>FALSE（行方向）</strong>: A → B → 1 → 2</li><li><strong>TRUE（列方向）</strong>: A → 1 → B → 2</li></ul>



<p class="wp-block-paragraph">並び順が結果に影響するので、用途に合わせて切り替えてください。</p>



<h2 class="wp-block-heading"><span id="toc8">TOROW関数の使用例（基本から応用まで）</span></h2>



<h3 class="wp-block-heading"><span id="toc9">基本：セル範囲を横1行に変換</span></h3>



<p class="wp-block-paragraph">月別・拠点別の売上データを横1行に変換してみましょう。</p>



<p class="wp-block-paragraph">B2:D4に以下のデータが入っているとします。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>B</th><th>C</th><th>D</th></tr></thead><tbody><tr><td>1</td><td>4月</td><td>5月</td><td>6月</td></tr><tr><td>2</td><td>100</td><td>120</td><td>110</td></tr><tr><td>3</td><td>80</td><td>90</td><td>85</td></tr><tr><td>4</td><td>60</td><td>70</td><td>65</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">数値部分（B2:D4）を横1行に変換します。出力先のセルに以下の数式を入力してください。</p>



<pre class="wp-block-code"><code>=TOROW(B2:D4)</code></pre>



<p class="wp-block-paragraph">行方向に読み取られ、結果は次のように横1行に並びます。</p>



<p class="wp-block-paragraph">| 100 | 120 | 110 | 80 | 90 | 85 | 60 | 70 | 65 |</p>



<p class="wp-block-paragraph">1行目の100→120→110、2行目の80→90→85、3行目の60→70→65という順番で展開されていますね。</p>



<h3 class="wp-block-heading"><span id="toc10">空白セルを除外して変換（ignore=1）</span></h3>



<p class="wp-block-paragraph">データに空白セルが含まれている場合は、第2引数に1を指定しましょう。</p>



<p class="wp-block-paragraph">たとえば、C3が空白だったとします。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>B</th><th>C</th><th>D</th></tr></thead><tbody><tr><td>2</td><td>100</td><td>120</td><td>110</td></tr><tr><td>3</td><td>80</td><td>&nbsp;</td><td>85</td></tr><tr><td>4</td><td>60</td><td>70</td><td>65</td></tr></tbody></table></figure>



<pre class="wp-block-code"><code>=TOROW(B2:D4, 1)</code></pre>



<p class="wp-block-paragraph">空白セルがスキップされ、値のあるセルだけが横1行に並びます。結果は8個の値になります。</p>



<p class="wp-block-paragraph">| 100 | 120 | 110 | 80 | 85 | 60 | 70 | 65 |</p>



<p class="wp-block-paragraph">歯抜けのデータを詰めて並べたいときに重宝しますよ。</p>



<h3 class="wp-block-heading"><span id="toc11">列方向スキャンで並び順を変える（scan_by_column=TRUE）</span></h3>



<p class="wp-block-paragraph">第3引数にTRUEを指定すると、列方向に読み取ります。</p>



<pre class="wp-block-code"><code>=TOROW(B2:D4, 0, TRUE)</code></pre>



<p class="wp-block-paragraph">| 100 | 80 | 60 | 120 | 90 | 70 | 110 | 85 | 65 |</p>



<p class="wp-block-paragraph">今度は列方向に読み取られています。B列の100→80→60、C列の120→90→70、D列の110→85→65という順番です。</p>



<p class="wp-block-paragraph">「拠点ごとにまとめたい」なら行方向（FALSE）、「月ごとにまとめたい」なら列方向（TRUE）と使い分けてください。</p>



<h2 class="wp-block-heading"><span id="toc12">TOCOL・TRANSPOSEとの違い</span></h2>



<h3 class="wp-block-heading"><span id="toc13">TOROW vs TOCOL</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-tocol/">TOCOL関数</a>は、TOROW関数のペアとなる関数です。違いは出力の方向だけで、引数の構造はまったく同じです。</p>



<ul class="wp-block-list"><li><strong>TOROW関数</strong>: 横1行に変換する（右方向にスピル）</li><li><strong>TOCOL関数</strong>: 縦1列に変換する（下方向にスピル）</li></ul>



<p class="wp-block-paragraph">引数を変えずに関数名を入れ替えるだけで、出力方向を切り替えられます。</p>



<h3 class="wp-block-heading"><span id="toc14">TOROW vs TRANSPOSE</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-transpose/">TRANSPOSE関数</a>は、行と列を入れ替える（転置する）関数です。TOROW関数との大きな違いは、データの「形」が変わるかどうかです。</p>



<ul class="wp-block-list"><li><strong>TOROW関数</strong>: 2次元データを1次元（横1行）にフラット化する</li><li><strong>TRANSPOSE関数</strong>: 2次元の形を維持したまま行と列を入れ替える</li></ul>



<p class="wp-block-paragraph">たとえば3行x2列のデータに対して、TOROW関数は1行x6列に変換します。TRANSPOSE関数は2行x3列に変換します。目的がまったく異なる関数ですね。</p>



<h3 class="wp-block-heading"><span id="toc15">比較表</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>TOROW関数</th><th>TOCOL関数</th><th>TRANSPOSE関数</th></tr></thead><tbody><tr><td>出力形状</td><td>横1行（1次元）</td><td>縦1列（1次元）</td><td>行列転置（2次元）</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><code>=TOROW(配列, [無視], [scan])</code></td><td><code>=TOCOL(配列, [無視], [scan])</code></td><td><code>=TRANSPOSE(配列)</code></td></tr><tr><td>主な用途</td><td>データを横1行に展開</td><td>データを縦1列に展開</td><td>行と列の入れ替え</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">データをフラット化したいならTOROW関数またはTOCOL関数、行列の向きを変えたいならTRANSPOSE関数、と覚えておけば迷いません。</p>



<h2 class="wp-block-heading"><span id="toc16">他の関数との組み合わせ活用</span></h2>



<p class="wp-block-paragraph">TOROW関数は単体でも便利ですが、他の関数と組み合わせると活用の幅がさらに広がります。</p>



<h3 class="wp-block-heading"><span id="toc17">UNIQUE + TOROW</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-unique/">UNIQUE関数</a>（重複を除外する関数）と組み合わせると、複数列に散らばったデータから重複なしの横1行リストを作れます。</p>



<p class="wp-block-paragraph">たとえばB2:D5に担当者名が入っている場合です。</p>



<pre class="wp-block-code"><code>=UNIQUE(TOROW(B2:D5, 1))</code></pre>



<p class="wp-block-paragraph">TOROW関数で全担当者を横1行にまとめてから、UNIQUE関数で重複を除外しています。横方向のユニークリストが必要な場面で活躍します。</p>



<h3 class="wp-block-heading"><span id="toc18">FILTER + TOROW</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-filter/">FILTER関数</a>（条件に合うデータを抽出する関数）の結果をTOROW関数で横1行に展開するパターンです。</p>



<pre class="wp-block-code"><code>=TOROW(FILTER(B2:D10, A2:A10=&quot;営業&quot;), 1)</code></pre>



<p class="wp-block-paragraph">FILTER関数で営業部のデータだけを抽出し、TOROW関数で横1行にまとめています。条件抽出の結果をフラットに並べたいときに使えます。</p>



<p class="wp-block-paragraph">ただし、FILTER関数の結果が空（条件に合うデータがない）の場合は <code>#CALC!</code> エラーになります。データが空になる可能性があるときは、IFERROR関数で囲んでおくと安心です。</p>



<pre class="wp-block-code"><code>=IFERROR(TOROW(FILTER(B2:D10, A2:A10=&quot;営業&quot;), 1), &quot;該当なし&quot;)</code></pre>



<h3 class="wp-block-heading"><span id="toc19">HSTACK + TOROW</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-hstack/">HSTACK関数</a>（複数の範囲を横方向に結合する関数）と組み合わせると、離れた複数の範囲をまとめて横1行に変換できます。</p>



<pre class="wp-block-code"><code>=TOROW(HSTACK(B2:C5, E2:F5))</code></pre>



<p class="wp-block-paragraph">HSTACK関数で2つの範囲を横方向に結合してから、TOROW関数で横1行にフラット化しています。離れた範囲のデータを統合したいときに便利ですよ。</p>



<p class="wp-block-paragraph">同じことを縦方向で結合するなら、<a href="https://mashukabu.com/excel-function-howto-use-vstack/">VSTACK関数</a>を使います。</p>



<pre class="wp-block-code"><code>=TOROW(VSTACK(B2:D3, B6:D7))</code></pre>



<h3 class="wp-block-heading"><span id="toc20">SORT + TOROW：横1行に変換してから並べ替える</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-sort/">SORT関数</a>（データを並べ替える関数）と組み合わせると、並べ替えた結果を横1行に展開できます。売上ランキングの表示にぴったりのパターンですよ。</p>



<p class="wp-block-paragraph">たとえば、A2:A6に商品名、B2:B6に売上が入っているとします。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A</th><th>B</th></tr></thead><tbody><tr><td>2</td><td>商品A</td><td>120</td></tr><tr><td>3</td><td>商品B</td><td>350</td></tr><tr><td>4</td><td>商品C</td><td>80</td></tr><tr><td>5</td><td>商品D</td><td>210</td></tr><tr><td>6</td><td>商品E</td><td>290</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">売上の高い順に並べ替えてから、横1行で表示してみましょう。</p>



<pre class="wp-block-code"><code>=TOROW(SORT(B2:B6, 1, -1))</code></pre>



<p class="wp-block-paragraph">SORT関数の第3引数に-1を指定すると降順（大きい順）になります。並べ替えた売上が横1行に展開され、ランキングが完成します。</p>



<p class="wp-block-paragraph">| 350 | 290 | 210 | 120 | 80 |</p>



<p class="wp-block-paragraph">商品名もセットで横1行に並べたい場合は、HSTACK関数で商品名と売上を結合してから渡します。</p>



<pre class="wp-block-code"><code>=TOROW(SORT(HSTACK(A2:A6, B2:B6), 2, -1))</code></pre>



<p class="wp-block-paragraph">SORT関数の第2引数（並べ替えの基準列）に2を指定して、2列目の売上を基準に降順で並べ替えています。「商品名→売上→商品名→売上…」の順で横1行に並ぶので、ダッシュボード上部に売上ランキングをコンパクトに表示したいときなどに重宝しますよ。</p>



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



<p class="wp-block-paragraph">TOROW関数を使っていて遭遇しやすいエラーをまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td><code>#SPILL!</code></td><td>スピル先のセルにデータがある</td><td>出力先の横方向のセルを空にしてください</td></tr><tr><td><code>#NAME?</code></td><td>非対応バージョンで使用した</td><td>Microsoft 365・Excel 2024以降にアップグレードしてください</td></tr><tr><td><code>#NUM!</code></td><td>配列が大きすぎる</td><td>変換対象の範囲を小さくしてください</td></tr><tr><td><code>#CALC!</code></td><td>FILTER関数との組み合わせで空集合になった</td><td>IFERROR関数でエラー時の代替値を指定してください</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc22">#SPILL!</span></h3>



<p class="wp-block-paragraph">TOROW関数はスピル機能を使って結果を横方向に展開します。展開先のセルに値や数式が入っていると <code>#SPILL!</code> エラーが発生します。</p>



<p class="wp-block-paragraph">対処法はシンプルで、スピル先の横方向のセルを空にするだけです。結果が何セル分展開されるかを事前に確認して、十分な空きスペースを確保しておきましょう。</p>



<h3 class="wp-block-heading"><span id="toc23">#NAME?</span></h3>



<p class="wp-block-paragraph"><code>#NAME?</code> エラーが出る場合、Excel 2021以前のバージョンを使っている可能性が高いです。TOROW関数はMicrosoft 365またはExcel 2024以降でないと使えません。</p>



<p class="wp-block-paragraph">関数名のスペルミスでも <code>#NAME?</code> になります。「TOROW」のつづりが正しいか、まず確認してくださいね。</p>



<p class="wp-block-paragraph">バージョンの都合で使えない場合は、<a href="https://mashukabu.com/excel-function-howto-use-transpose/">TRANSPOSE関数</a>とINDEX関数の組み合わせで代替できます。ただし数式が複雑になるので、バージョンアップがおすすめです。</p>



<h3 class="wp-block-heading"><span id="toc24">#NUM!</span></h3>



<p class="wp-block-paragraph">変換対象の配列が大きすぎると <code>#NUM!</code> エラーになります。Excelの列数の上限（16,384列）を超える数のセルを横1行に展開しようとした場合に発生します。</p>



<p class="wp-block-paragraph">範囲が大きい場合は、先に<a href="https://mashukabu.com/excel-function-howto-use-chooserows/">CHOOSEROWS関数</a>や<a href="https://mashukabu.com/excel-function-howto-use-choosecols/">CHOOSECOLS関数</a>で絞り込みましょう。必要な行・列だけを取り出してからTOROW関数に渡すことで解決できます。</p>



<pre class="wp-block-code"><code>=TOROW(CHOOSEROWS(A1:Z1000, SEQUENCE(10)))</code></pre>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-sequence/">SEQUENCE関数</a>（連番を生成する関数）で先頭10行だけを指定し、範囲を絞り込んでいます。</p>



<h2 class="wp-block-heading"><span id="toc25">TOROW関数に関するよくある質問</span></h2>



<p class="wp-block-paragraph">TOROW関数について、読者の方からよく寄せられる疑問をまとめました。</p>



<h3 class="wp-block-heading"><span id="toc26">Q1. GoogleスプレッドシートでもTOROW関数は使えますか？</span></h3>



<p class="wp-block-paragraph">いいえ、2026年5月時点でGoogleスプレッドシートにTOROW関数は搭載されていません。TOROW関数はExcel（Microsoft 365・Excel 2024以降）専用の関数です。</p>



<p class="wp-block-paragraph">スプレッドシートで2次元データを1次元に展開したい場合は、FLATTEN関数を使います。ただしFLATTEN関数は縦1列にまとめる関数なので、ExcelのTOROW（横1行）よりはTOCOL（縦1列）に近い動きです。</p>



<pre class="wp-block-code"><code>=TRANSPOSE(FLATTEN(B2:D4))</code></pre>



<p class="wp-block-paragraph">FLATTEN関数で縦1列にまとめてから、TRANSPOSE関数で横向きに転置すれば、TOROW関数と同じ「横1行」の結果に近づけられます。なおFLATTEN関数には空白・エラーの除外オプションがないので、その点はExcelのTOROW関数のほうが手軽ですね。</p>



<h3 class="wp-block-heading"><span id="toc27">Q2. 第2引数を省略すると空白も含まれますか？</span></h3>



<p class="wp-block-paragraph">はい、含まれます。第2引数「無視」を省略すると0（すべての値を保持）として扱われるため、空白セルも空の要素として横1行に並びます。</p>



<p class="wp-block-paragraph">空白を詰めて並べたいときは、第2引数に1（空白を除外）か3（空白とエラーを除外）を指定してください。</p>



<pre class="wp-block-code"><code>=TOROW(B2:D4, 1)</code></pre>



<p class="wp-block-paragraph">「歯抜けのデータが空白のまま並んで困る」という場合は、まず第2引数を確認するのが解決の近道です。</p>



<h3 class="wp-block-heading"><span id="toc28">Q3. 結果が横に広がって隣のセルと干渉する場合はどうすればいいですか？</span></h3>



<p class="wp-block-paragraph">TOROW関数は結果を右方向に展開（スピル）するため、出力先の横方向に十分な空きスペースが必要です。隣のセルにデータがあると <code>#SPILL!</code> エラーになります。</p>



<p class="wp-block-paragraph">対処法は次の3つです。</p>



<ul class="wp-block-list"><li>数式を入力するセルを、右側に空きが多い位置（行の左端寄りなど）に移動する</li><li>スピル先にある不要なデータや数式を削除する</li><li>横方向ではなく縦方向に展開したい場合は、<a href="https://mashukabu.com/excel-function-howto-use-tocol/">TOCOL関数</a>に切り替える</li></ul>



<p class="wp-block-paragraph">特に「すでに表が右側に詰まっている」シートでは、TOCOL関数で縦に展開したほうが干渉を避けやすいケースもあります。レイアウトに合わせて使い分けてください。</p>



<h3 class="wp-block-heading"><span id="toc29">Q4. 横1行から2次元の表に戻す（逆変換）にはどうすればいいですか？</span></h3>



<p class="wp-block-paragraph">TOROW関数には逆変換の専用関数はありませんが、WRAPROWS関数を使えば横1行を指定した列数で折り返して2次元に戻せます。</p>



<pre class="wp-block-code"><code>=WRAPROWS(横1行の範囲, 3)</code></pre>



<p class="wp-block-paragraph">WRAPROWS関数の第2引数に列数（ここでは3）を指定すると、3列ごとに折り返して複数行の表に変換されます。縦方向に折り返したい場合は、列単位で折り返すWRAPCOLS関数を使います。</p>



<p class="wp-block-paragraph">「TOROWで1行にまとめたあと、また表の形に整えたい」というときに覚えておくと便利ですよ。</p>



<h3 class="wp-block-heading"><span id="toc30">Q5. Microsoft 365 Personal/FamilyとBusiness/Enterpriseの両方で使えますか？</span></h3>



<p class="wp-block-paragraph">はい、エディションを問わず利用できます。TOROW関数はMicrosoft 365のPersonalやFamily（個人向け）でも、BusinessやEnterprise（法人向け）でも同じように使えます。</p>



<p class="wp-block-paragraph">判断のポイントはエディションの種類ではなく、Excelが最新の状態に更新されているかどうかです。Microsoft 365は自動更新で新関数が順次追加されるため、更新が滞っていると使えないことがあります。<code>#NAME?</code> エラーが出る場合は、Excelを最新バージョンに更新してから試してみてください。</p>



<p class="wp-block-paragraph">買い切り版では、Excel 2024以降が対応しています。Excel 2021以前は非対応なので注意しましょう。</p>



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



<p class="wp-block-paragraph">TOROW関数は、2次元のセル範囲を横1行に変換するための関数です。空白やエラーの除外、スキャン方向の制御まで備わっており、データ整理を効率化できます。</p>



<p class="wp-block-paragraph">この記事のポイントをおさらいしておきましょう。</p>



<ul class="wp-block-list"><li>TOROW関数は <code>=TOROW(範囲)</code> で、2次元データを横1行に変換する</li><li>第2引数で空白（1）やエラー（2）を除外できる。両方除外は3を指定する</li><li>第3引数でスキャン方向を切り替えられる（FALSE: 行方向、TRUE: 列方向）</li><li>TOCOL関数はペア関数で、縦1列に変換する。引数の構造は同じ</li><li>TRANSPOSE関数とは目的が異なる。フラット化ならTOROW、転置ならTRANSPOSE</li></ul>



<p class="wp-block-paragraph">まずは <code>=TOROW(A1:C3)</code> のシンプルな形から試してみてください。UNIQUE関数やFILTER関数、SORT関数と組み合わせれば、散らばったデータの整理がグッと楽になりますよ。</p>



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



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-tocol/">TOCOL関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-transpose/">TRANSPOSE関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-chooserows/">CHOOSEROWS関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-choosecols/">CHOOSECOLS関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-filter/">FILTER関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-hstack/">HSTACK関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-vstack/">VSTACK関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-unique/">UNIQUE関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-sort/">SORT関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-sequence/">SEQUENCE関数の使い方</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-torow/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>TOCOL関数の使い方｜配列を1列に変換・空白除外・実務活用5例</title>
		<link>https://mashukabu.com/excel-function-howto-use-tocol/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-tocol/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 17 Nov 2022 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[TOCOL]]></category>
		<category><![CDATA[スピル]]></category>
		<category><![CDATA[動的配列]]></category>
		<category><![CDATA[配列操作]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=3022</guid>

					<description><![CDATA[ExcelのTOCOL関数で配列を1列に変換する方法を解説。空白除外・TOROW関数との違い・UNIQUE連携など実務5事例と、scan_by_columnの使い方も紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">複数列にまたがるデータを1列にまとめたいとき、ありませんか。</p>



<p class="wp-block-paragraph">手作業でコピペを繰り返すのは面倒ですし、VBAを書くのは大げさですよね。</p>



<p class="wp-block-paragraph">TOCOL関数を使えば、数式ひとつで2次元データを縦1列に変換できます。空白やエラーの除外もオプションで指定できるので、データの前処理にぴったりです。</p>



<p class="wp-block-paragraph">この記事では、TOCOL関数の基本から実務での活用例まで解説します。</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">TOCOL関数とは</a></li><li><a href="#toc2" tabindex="0">TOCOL関数の構文と引数</a><ol><li><a href="#toc3" tabindex="0">引数「無視」の値</a></li><li><a href="#toc4" tabindex="0">引数「scan_by_column」の動作</a></li></ol></li><li><a href="#toc5" tabindex="0">TOCOL関数の基本的な使い方</a><ol><li><a href="#toc6" tabindex="0">2次元データをそのまま1列にする</a></li><li><a href="#toc7" tabindex="0">空白セルを除外して1列にする</a></li><li><a href="#toc8" tabindex="0">エラー値を除外して1列にする</a></li><li><a href="#toc9" tabindex="0">列方向にスキャンして1列にする</a></li></ol></li><li><a href="#toc10" tabindex="0">TOCOL関数とTOROW関数の違いと使い分け</a></li><li><a href="#toc11" tabindex="0">他の配列関数とTOCOL関数の組み合わせ活用</a><ol><li><a href="#toc12" tabindex="0">HSTACK / VSTACKとの組み合わせ</a></li><li><a href="#toc13" tabindex="0">UNIQUEとの組み合わせ</a></li><li><a href="#toc14" tabindex="0">FILTERとの組み合わせ</a></li><li><a href="#toc15" tabindex="0">SORTとの組み合わせ</a></li></ol></li><li><a href="#toc16" tabindex="0">WRAPCOLS / WRAPROWSとの関係</a></li><li><a href="#toc17" tabindex="0">TOCOL関数の実務活用例5選</a><ol><li><a href="#toc18" tabindex="0">名簿管理：部署別の名前を1列にまとめる</a></li><li><a href="#toc19" tabindex="0">商品管理：カテゴリ別コードの重複チェック</a></li><li><a href="#toc20" tabindex="0">アンケート集計：複数列の回答をCOUNTIF集計</a></li><li><a href="#toc21" tabindex="0">データ前処理：横結合→1列→重複除去</a></li><li><a href="#toc22" tabindex="0">レポート生成：条件抽出→1列→並び替え</a></li></ol></li><li><a href="#toc23" tabindex="0">TOCOL関数のよくあるエラーと対処法</a></li><li><a href="#toc24" tabindex="0">TAKE・DROP と組み合わせて先頭・末尾N件を取り出す</a></li><li><a href="#toc25" tabindex="0">BYROW + TOCOL で行ごとに列を縦結合する</a></li><li><a href="#toc26" tabindex="0">INDIRECT と組み合わせて複数シートのデータを1列に集約する</a></li><li><a href="#toc27" tabindex="0">TRIMRANGE と組み合わせて端の空白を除去してから1列に変換する</a></li><li><a href="#toc28" tabindex="0">TOCOL関数が重い・遅いときの対処法</a><ol><li><a href="#toc29" tabindex="0">参照範囲を必要最小限に絞る</a></li><li><a href="#toc30" tabindex="0">テーブル機能で動的範囲化する</a></li><li><a href="#toc31" tabindex="0">揮発性関数との併用を避ける</a></li><li><a href="#toc32" tabindex="0">結果を値貼り付けに置き換える</a></li></ol></li><li><a href="#toc33" tabindex="0">GoogleスプレッドシートでTOCOLを使う方法</a></li><li><a href="#toc34" tabindex="0">Excel 2021以前のバージョンで同じ結果を得る代替手段</a><ol><li><a href="#toc35" tabindex="0">Power Queryの「列のピボット解除」を使う</a></li><li><a href="#toc36" tabindex="0">INDEX関数とROW・COLUMN式で再現する</a></li></ol></li><li><a href="#toc37" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">TOCOL関数は、配列やセル範囲を縦1列に変換する関数です。読み方は「トゥーコル」で、&#8221;TO COLumn&#8221;（列へ変換）の略です。</p>



<p class="wp-block-paragraph">たとえば3行×4列の表なら、12行×1列に展開できます。結果はスピルで自動展開されるので、出力セルを1つずつ指定する必要はありません。</p>



<p class="wp-block-paragraph">TOCOL関数でできることを整理すると、次のようになります。</p>



<ul class="wp-block-list"><li>複数列に分散したデータを縦1列にまとめる</li><li>空白セルやエラー値を除外して詰めた一覧を作る</li><li>行方向・列方向の2通りのスキャン順序を選べる</li><li>UNIQUE・FILTER・SORTなど他の配列関数と組み合わせて柔軟に加工できる</li></ul>



<p class="wp-block-paragraph">対応バージョンはMicrosoft 365とExcel 2024です。Excel 2021では使用できないので注意してください。Excel 2021はスピル対応済みですが、TOCOL関数自体は含まれていません。</p>



<h2 class="wp-block-heading"><span id="toc2">TOCOL関数の構文と引数</span></h2>



<pre class="wp-block-code"><code>=TOCOL(配列, [無視], [scan_by_column])</code></pre>



<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>除外する値の種類を指定（0〜3）</td></tr><tr><td>scan_by_column</td><td>省略可</td><td>スキャン方向を指定（FALSEまたはTRUE）</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc3">引数「無視」の値</span></h3>



<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">第2引数を省略すると0と同じ扱いです。空白やエラーが混在するデータでは、1や3を指定すると余計な行が入りません。</p>



<h3 class="wp-block-heading"><span id="toc4">引数「scan_by_column」の動作</span></h3>



<p class="wp-block-paragraph">次のような2行3列のデータで考えます。</p>



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



<ul class="wp-block-list"><li>FALSE（省略時）：1, 2, 3, 4, 5, 6の順になります。行を左から右へ読む動きです。</li><li>TRUE：1, 4, 2, 5, 3, 6の順になります。列を上から下へ読む動きです。</li></ul>



<p class="wp-block-paragraph">各行が1レコードの表ならFALSEが自然です。月別データなど列単位のまとまりがあればTRUEを使います。</p>



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



<h3 class="wp-block-heading"><span id="toc6">2次元データをそのまま1列にする</span></h3>



<p class="wp-block-paragraph">A2:C4に3行3列のデータがある場合です。</p>



<pre class="wp-block-code"><code>=TOCOL(A2:C4)</code></pre>



<p class="wp-block-paragraph">行順（左→右→次の行）で9行1列に展開されます。</p>



<h3 class="wp-block-heading"><span id="toc7">空白セルを除外して1列にする</span></h3>



<p class="wp-block-paragraph">データに空白が混在している場合です。第2引数に1を指定します。</p>



<pre class="wp-block-code"><code>=TOCOL(A2:C10, 1)</code></pre>



<p class="wp-block-paragraph">空白セルを飛ばし、値だけを詰めた1列が返ります。</p>



<h3 class="wp-block-heading"><span id="toc8">エラー値を除外して1列にする</span></h3>



<p class="wp-block-paragraph">#N/Aや#VALUE!が含まれるデータ向けです。</p>



<pre class="wp-block-code"><code>=TOCOL(A2:C10, 2)</code></pre>



<p class="wp-block-paragraph">エラーセルを除外して値だけを1列にします。</p>



<h3 class="wp-block-heading"><span id="toc9">列方向にスキャンして1列にする</span></h3>



<p class="wp-block-paragraph">第3引数にTRUEを指定します。</p>



<pre class="wp-block-code"><code>=TOCOL(A2:C4, 0, TRUE)</code></pre>



<p class="wp-block-paragraph">列単位で上から下へ読み取ります。月別に並んだ列を時系列で1列にしたいときに向いています。</p>



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



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-torow/">TOROW関数</a>は、配列を横1行に変換する関数です。TOCOLとは出力の方向だけが異なります。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>TOCOL</th><th>TOROW</th></tr></thead><tbody><tr><td>出力方向</td><td>縦1列</td><td>横1行</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">使い分けのポイントは、後続の関数が何を求めるかです。XLOOKUPの検索範囲は縦配列なのでTOCOLが向いています。横に並べたい場面ではTOROWを選びます。</p>



<p class="wp-block-paragraph">なお、従来の<a href="https://mashukabu.com/excel-function-howto-use-transpose/">TRANSPOSE関数</a>は行列の転置のみです。2次元を1次元にフラット化するのはTOCOL/TOROWの役割です。</p>



<h2 class="wp-block-heading"><span id="toc11">他の配列関数とTOCOL関数の組み合わせ活用</span></h2>



<p class="wp-block-paragraph">TOCOL関数は他の配列関数と組み合わせると、活用の幅が広がります。</p>



<h3 class="wp-block-heading"><span id="toc12">HSTACK / VSTACKとの組み合わせ</span></h3>



<p class="wp-block-paragraph">離れた列を<a href="https://mashukabu.com/excel-function-howto-use-hstack/">HSTACK関数</a>で横結合してから1列にできます。</p>



<pre class="wp-block-code"><code>=TOCOL(HSTACK(A2:A10, C2:C10, E2:E10))</code></pre>



<p class="wp-block-paragraph">複数シートのデータは<a href="https://mashukabu.com/excel-function-howto-use-vstack/">VSTACK関数</a>で縦結合してから渡します。</p>



<pre class="wp-block-code"><code>=TOCOL(VSTACK(Sheet1!A2:D5, Sheet2!A2:D5), 1)</code></pre>



<h3 class="wp-block-heading"><span id="toc13">UNIQUEとの組み合わせ</span></h3>



<p class="wp-block-paragraph">複数列のデータを1列にまとめて重複を除去できます。</p>



<pre class="wp-block-code"><code>=UNIQUE(TOCOL(A2:D20, 1))</code></pre>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-unique/">UNIQUE関数</a>で一意の値だけを取り出せます。</p>



<h3 class="wp-block-heading"><span id="toc14">FILTERとの組み合わせ</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-filter/">FILTER関数</a>の抽出結果を1列に整形できます。</p>



<pre class="wp-block-code"><code>=TOCOL(FILTER(A2:D10, B2:B10=&quot;東京&quot;), 1)</code></pre>



<h3 class="wp-block-heading"><span id="toc15">SORTとの組み合わせ</span></h3>



<p class="wp-block-paragraph">1列にしたデータを<a href="https://mashukabu.com/excel-function-howto-use-sort/">SORT関数</a>で並び替えできます。</p>



<pre class="wp-block-code"><code>=SORT(TOCOL(A2:C10, 1))</code></pre>



<h2 class="wp-block-heading"><span id="toc16">WRAPCOLS / WRAPROWSとの関係</span></h2>



<p class="wp-block-paragraph">TOCOLで1列にしたデータを別の列数で並べ直したいときがあります。WRAPCOLS関数なら、1列のデータを指定列数で折り返して2次元に再形成できます。WRAPROWSは行数で折り返す関数です。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>変換方向</th><th>用途</th></tr></thead><tbody><tr><td>TOCOL</td><td>2次元 → 縦1列</td><td>複数列を縦1列にフラット化</td></tr><tr><td>TOROW</td><td>2次元 → 横1行</td><td>複数列を横1行にフラット化</td></tr><tr><td>WRAPCOLS</td><td>縦1列 → 2次元</td><td>1列を指定列数で折り返して2次元に変換</td></tr><tr><td>WRAPROWS</td><td>横1行 → 2次元</td><td>1行を指定行数で折り返して2次元に変換</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">TOCOLとWRAPCOLSはちょうど逆の操作にあたります。「1列にしてから別の列数で並べ直したい」ときはこの2つをセットで使うと便利です。</p>



<h2 class="wp-block-heading"><span id="toc17">TOCOL関数の実務活用例5選</span></h2>



<h3 class="wp-block-heading"><span id="toc18">名簿管理：部署別の名前を1列にまとめる</span></h3>



<p class="wp-block-paragraph">部署ごとに列が分かれた名簿をTOCOLで1列にします。空白除外を指定すれば、人数差による空白も飛ばせます。そのままXLOOKUPの検索リストとして使えます。</p>



<pre class="wp-block-code"><code>=TOCOL(A2:E20, 1)</code></pre>



<h3 class="wp-block-heading"><span id="toc19">商品管理：カテゴリ別コードの重複チェック</span></h3>



<p class="wp-block-paragraph">カテゴリ別に分散した商品コードを1列にまとめ、UNIQUEで重複を検出します。元データより行数が少なければ重複ありです。</p>



<pre class="wp-block-code"><code>=UNIQUE(TOCOL(A2:D50, 1))</code></pre>



<h3 class="wp-block-heading"><span id="toc20">アンケート集計：複数列の回答をCOUNTIF集計</span></h3>



<p class="wp-block-paragraph">自由回答が複数列にまたがるとき、TOCOLで1列にしてからCOUNTIFで集計します。列ごとに数式を書く手間が省けます。</p>



<pre class="wp-block-code"><code>=COUNTIF(TOCOL(B2:D100, 1), &quot;満足&quot;)</code></pre>



<h3 class="wp-block-heading"><span id="toc21">データ前処理：横結合→1列→重複除去</span></h3>



<p class="wp-block-paragraph">HSTACKで横結合した表をTOCOLで1列にし、UNIQUEで重複を除去する3段階の流れです。</p>



<pre class="wp-block-code"><code>=UNIQUE(TOCOL(HSTACK(A2:A50, C2:C50), 1))</code></pre>



<h3 class="wp-block-heading"><span id="toc22">レポート生成：条件抽出→1列→並び替え</span></h3>



<p class="wp-block-paragraph">FILTERで条件に合うデータを抽出し、TOCOLで1列にしてからSORTで昇順に並べます。</p>



<pre class="wp-block-code"><code>=SORT(TOCOL(FILTER(A2:D20, E2:E20&gt;=100), 1))</code></pre>



<p class="wp-block-paragraph">条件に合う値だけを並び替えた一覧を作れます。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>#SPILL!</td><td>出力先の下に既存データがある</td><td>出力先の下方向を空けてください</td></tr><tr><td>#NUM!</td><td>配列が大きすぎて列に収まらない</td><td>より小さい範囲を参照してください</td></tr><tr><td>#VALUE!</td><td>引数に不正な値を指定している</td><td>各引数の値を確認してください</td></tr><tr><td>#NAME?</td><td>非対応バージョンで使用している</td><td>Microsoft 365またはExcel 2024で使用してください</td></tr><tr><td>#CALC!</td><td>結果が空（FILTER等の組み合わせ時）</td><td>入力データや条件を見直してください</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">よく出るのは<code>#NAME?</code>と<code>#SPILL!</code>の2つです。<code>#NAME?</code>が出たら、まずバージョンを確認しましょう。TOCOL関数はMicrosoft 365とExcel 2024で使えます。Excel 2021では対応していません。</p>



<p class="wp-block-paragraph"><code>#SPILL!</code>は出力先の下に既存データがある場合に発生します。TOCOL関数の出力行数は可変なので、出力先セルの下は十分に空けておいてください。</p>



<p class="wp-block-paragraph"><code>#CALC!</code>はFILTERと組み合わせたときに条件に一致する行がゼロの場合に発生します。IFERRORで囲むか、条件式を見直してください。</p>



<h2 class="wp-block-heading"><span id="toc24">TAKE・DROP と組み合わせて先頭・末尾N件を取り出す</span></h2>



<p class="wp-block-paragraph">TOCOLで1列に変換したあと、<a href="https://mashukabu.com/excel-function-howto-use-take/">TAKE関数</a>や<a href="https://mashukabu.com/excel-function-howto-use-drop/">DROP関数</a>で先頭や末尾のN件だけを取り出せます。「複数列にまたがるデータを1列に並べ、そのうち上位10件だけを表示したい」といった場面でよく使います。</p>



<pre class="wp-block-code"><code>' 複数列データを1列にしてから上位5件を取り出す
=TAKE(SORT(TOCOL(A2:D20, 1), 1, -1), 5)</code></pre>



<p class="wp-block-paragraph">SORTで降順に並び替えた1列データから、TAKEで先頭5件（=上位5件）を取得しています。上位N件を動的に変えたいときはTAKEの第2引数をセル参照にしておくと便利です。</p>



<p class="wp-block-paragraph">逆にDROPを使えばヘッダー行や不要な先頭行を除いてから処理できます。</p>



<pre class="wp-block-code"><code>' 先頭1行を除いてから1列に変換する
=TOCOL(DROP(A1:D10, 1), 1)</code></pre>



<p class="wp-block-paragraph">TAKE・DROPはMicrosoft 365とExcel 2024で使用できます。TOCOLと同じ対応バージョンなので、セットで使っても問題ありません。</p>



<h2 class="wp-block-heading"><span id="toc25">BYROW + TOCOL で行ごとに列を縦結合する</span></h2>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-byrow/">BYROW関数</a>とTOCOLを組み合わせると、各行の複数列を「行ごとに結合した文字列」に変換できます。たとえば「姓・名・部署が3列に分かれているデータを1列のフルラベルにしたい」場面で役立ちます。</p>



<pre class="wp-block-code"><code>' 各行の3列（A:C列）を「姓 名（部署）」形式で結合して1列に返す
=BYROW(A2:C10, LAMBDA(row, TOCOL(row, 1)(1) &amp; &quot; &quot; &amp; TOCOL(row, 1)(2) &amp; &quot;（&quot; &amp; TOCOL(row, 1)(3) &amp; &quot;）&quot;))</code></pre>



<p class="wp-block-paragraph">ただし、TEXTJOIN関数の方がシンプルなケースも多いです。BYROW + TOCOLは「行ごとに可変個の値を動的に結合する」など複雑な処理を共通化するときに有効です。</p>



<p class="wp-block-paragraph">より実用的なパターンとして、各行の非空白値だけを抽出してカンマ区切りにする例を示します。</p>



<pre class="wp-block-code"><code>' 各行の空白以外の値をカンマ区切りで1セルに収める
=BYROW(A2:E10, LAMBDA(row, TEXTJOIN(&quot;, &quot;, TRUE, TOCOL(row, 1))))</code></pre>



<p class="wp-block-paragraph">TOCOL(row, 1)で空白を除いた値だけ取り出し、TEXTJOINでつなげています。アンケートの複数選択肢や、月によって入力列が変わるような不規則なデータの集約に使えます。</p>



<h2 class="wp-block-heading"><span id="toc26">INDIRECT と組み合わせて複数シートのデータを1列に集約する</span></h2>



<p class="wp-block-paragraph">月別・支店別などシートが分かれているデータを1列にまとめたいときは、INDIRECTと組み合わせる方法があります。ただしINDIRECTは揮発性関数（ファイルを開くたびに全セル再計算）のため、大量データでは速度に注意が必要です。</p>



<pre class="wp-block-code"><code>' シート名リスト（E列）を参照して各シートのA2:B10を縦積みしてから1列に変換する
=TOCOL(VSTACK(
    INDIRECT(E2 &amp; &quot;!A2:B10&quot;),
    INDIRECT(E3 &amp; &quot;!A2:B10&quot;),
    INDIRECT(E4 &amp; &quot;!A2:B10&quot;)
), 1)</code></pre>



<p class="wp-block-paragraph">シート名をE列に書いておけば、数式を変えずにシート名だけを更新できます。シート数が多い場合は、REDUCE + VSTACKを使うとリストから動的に縦積みできます。</p>



<pre class="wp-block-code"><code>' シート名リスト（E2:E13）を全件ループしてVSTACKで縦積みしてからTOCOLで1列にする
=TOCOL(REDUCE(&quot;&quot;, E2:E13, LAMBDA(acc, name,
    VSTACK(IF(acc=&quot;&quot;, INDIRECT(name &amp; &quot;!A2:B10&quot;), acc), INDIRECT(name &amp; &quot;!A2:B10&quot;))
)), 1)</code></pre>



<p class="wp-block-paragraph">REDUCE + VSTACKパターンはシート名を増やすだけで自動的に拡張されるため、月次レポートの自動集計などに活用できます。<a href="https://mashukabu.com/excel-function-howto-use-vstack/">VSTACK関数の使い方</a>もあわせて確認しておくと理解が深まりますよ。</p>



<h2 class="wp-block-heading"><span id="toc27">TRIMRANGE と組み合わせて端の空白を除去してから1列に変換する</span></h2>



<p class="wp-block-paragraph">Microsoft 365 の <a href="https://mashukabu.com/excel-trimrange-function/">TRIMRANGE関数</a> は、配列の先頭・末尾にある空白行または空白列を取り除いて返す関数です。TOCOLと組み合わせると、「入力範囲の端に余分な空白行があっても、それを除外してから1列に変換する」処理が1本の数式で書けます。</p>



<pre class="wp-block-code"><code>=TOCOL(TRIMRANGE(A2:D20), 1)</code></pre>



<p class="wp-block-paragraph">TRIMRANGE(A2:D20) が末尾の空白行を除いた部分だけを返し、TOCOLがその結果を縦1列に展開します。第2引数の <code>1</code> で残った空白セルも除外するので、結果は値だけが詰まったきれいな1列になります。</p>



<p class="wp-block-paragraph">TRIMRANGE の第2引数でトリム方向を細かく指定できます。</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><tr><td>4</td><td>左端（先頭列）のみ削除</td></tr><tr><td>8</td><td>右端（末尾列）のみ削除</td></tr><tr><td>12</td><td>左右両端を削除</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">末尾の空白行だけ除きたい場合は <code>TRIMRANGE(A2:D20, 2)</code> とすれば十分です。TRIMRANGE は Microsoft 365 の月次チャンネルで提供されており、TOCOL と対応バージョンが揃っているため、データ前処理のパイプラインとして自然に組み合わせられます。</p>



<h2 class="wp-block-heading"><span id="toc28">TOCOL関数が重い・遅いときの対処法</span></h2>



<p class="wp-block-paragraph">TOCOL関数は大量データに対して使うと動作が重くなることがあります。原因は主に2つです。</p>



<ul class="wp-block-list"><li>出力行数が数万行を超えると、スピル領域全体の再計算に時間がかかる</li><li>INDIRECTやOFFSETといった揮発性関数と併用すると、編集のたびに全セルを再計算する</li></ul>



<p class="wp-block-paragraph">対処法をいくつか紹介します。</p>



<h3 class="wp-block-heading"><span id="toc29">参照範囲を必要最小限に絞る</span></h3>



<p class="wp-block-paragraph"><code>A:D</code> のような列全体ではなく、<code>A2:D5000</code> のように行数を限定してください。Excelは列全体指定だと約100万行を内部的に処理しようとするため、TOCOLとの相性がよくありません。</p>



<h3 class="wp-block-heading"><span id="toc30">テーブル機能で動的範囲化する</span></h3>



<p class="wp-block-paragraph">データに「テーブル機能」（Ctrl+T）を適用すると、範囲が自動で拡張・縮小されます。テーブル名で参照すれば、空白行まで読みに行かないので無駄な再計算を防げます。</p>



<pre class="wp-block-code"><code>=TOCOL(テーブル1[#データ], 1)</code></pre>



<h3 class="wp-block-heading"><span id="toc31">揮発性関数との併用を避ける</span></h3>



<p class="wp-block-paragraph">INDIRECTやOFFSETを使うと、シート全体の再計算が走ります。可能ならINDEX関数など非揮発性の参照に置き換えてください。複数シート集約の場合は、<code>Sheet1!A2:B10</code> のように直接参照を使う方が軽くなります。</p>



<h3 class="wp-block-heading"><span id="toc32">結果を値貼り付けに置き換える</span></h3>



<p class="wp-block-paragraph">最終出力が確定したら、TOCOLのスピル範囲をコピーして「値の貼り付け」に置き換えるのも有効です。リアルタイム更新が不要なレポートでは、計算負荷をゼロにできます。</p>



<h2 class="wp-block-heading"><span id="toc33">GoogleスプレッドシートでTOCOLを使う方法</span></h2>



<p class="wp-block-paragraph">Googleスプレッドシートには、TOCOL関数がありません（2026年5月時点）。代わりにFLATTEN関数が同じ役割を果たします。</p>



<pre class="wp-block-code"><code>=FLATTEN(A2:C10)</code></pre>



<p class="wp-block-paragraph">FLATTENは2次元配列を縦1列に展開する関数です。基本動作はTOCOLと同じですが、いくつか違いがあります。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>Excel: TOCOL</th><th>Sheets: FLATTEN</th></tr></thead><tbody><tr><td>空白除外オプション</td><td>第2引数で指定可</td><td>なし</td></tr><tr><td>エラー除外オプション</td><td>第2引数で指定可</td><td>なし</td></tr><tr><td>スキャン方向切替</td><td>第3引数で指定可</td><td>なし（行方向固定）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">空白を除外したい場合は、FILTERで囲んでください。</p>



<pre class="wp-block-code"><code>=FILTER(FLATTEN(A2:C10), FLATTEN(A2:C10)&lt;&gt;&quot;&quot;)</code></pre>



<p class="wp-block-paragraph">列方向にスキャンしたい場合は、TRANSPOSEで転置してからFLATTENにかけます。</p>



<pre class="wp-block-code"><code>=FLATTEN(TRANSPOSE(A2:C10))</code></pre>



<p class="wp-block-paragraph">ExcelとGoogleスプレッドシートで同じデータを扱う場合、関数名を切り替える必要があります。共有ファイルの互換性に注意してください。</p>



<h2 class="wp-block-heading"><span id="toc34">Excel 2021以前のバージョンで同じ結果を得る代替手段</span></h2>



<p class="wp-block-paragraph">TOCOL関数はMicrosoft 365とExcel 2024でしか使えません。Excel 2021・2019・2016を使っている場合は、別の方法で代替できます。</p>



<h3 class="wp-block-heading"><span id="toc35">Power Queryの「列のピボット解除」を使う</span></h3>



<p class="wp-block-paragraph">Power QueryはExcel 2016以降に標準搭載されている機能です。マトリクス表を1列のリスト形式に変換できます。</p>



<ol class="wp-block-list"><li>データ範囲を選択して「データ」タブから「テーブルまたは範囲から」を選ぶ</li><li>Power Queryエディタで対象列を選択する</li><li>「変換」タブの「列のピボット解除」をクリックする</li><li>「閉じて読み込む」で結果をシートに返す</li></ol>



<p class="wp-block-paragraph">属性列と値列の2列構成で出力されるので、不要な属性列を削除すれば1列データになります。マウス操作だけで完了するので、関数が使えなくても対応できます。</p>



<h3 class="wp-block-heading"><span id="toc36">INDEX関数とROW・COLUMN式で再現する</span></h3>



<p class="wp-block-paragraph">数式で代替する場合は、INDEXと行番号計算を組み合わせます。3行4列のデータ（A2:D4）を1列にする例です。</p>



<pre class="wp-block-code"><code>=INDEX($A$2:$D$4, INT((ROW(A1)-1)/4)+1, MOD(ROW(A1)-1, 4)+1)</code></pre>



<p class="wp-block-paragraph">下方向にコピーすると、行優先で1列に並びます。<code>/4</code> と <code>MOD(..., 4)</code> の数字は列数（この例では4）に合わせて変更してください。スピルがないため、必要な行数だけ手動でコピーする必要があります。</p>



<p class="wp-block-paragraph">業務でTOCOLを継続的に使うなら、Microsoft 365へのアップデートを検討する方が結果的に楽です。</p>



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



<p class="wp-block-paragraph">TOCOL関数は、2次元データを縦1列に変換する関数です。</p>



<ul class="wp-block-list"><li>第2引数で空白やエラーを除外できる</li><li>第3引数でスキャン方向を切り替えられる</li><li>UNIQUE・FILTER・SORTと組み合わせて柔軟にデータ加工できる</li><li>対応バージョンはMicrosoft 365とExcel 2024</li></ul>



<p class="wp-block-paragraph">手作業でやっていたデータ整形の多くをTOCOL関数で自動化できます。まずは基本の1列変換から試してみてください。</p>



<p class="wp-block-paragraph">配列操作の関連関数もチェックしておくと便利です。</p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-torow/">TOROW関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-hstack/">HSTACK関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-vstack/">VSTACK関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-sort/">SORT関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-transpose/">TRANSPOSE関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-chooserows/">CHOOSEROWS関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-expand/">EXPAND関数の使い方</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-tocol/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのSEQUENCE関数の使い方｜連番・日付・2次元配列を1関数で</title>
		<link>https://mashukabu.com/excel-function-howto-use-sequence/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-sequence/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 27 Oct 2022 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[SEQUENCE関数]]></category>
		<category><![CDATA[スピル]]></category>
		<category><![CDATA[動的配列]]></category>
		<category><![CDATA[日付連番]]></category>
		<category><![CDATA[連番]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=2907</guid>

					<description><![CDATA[ExcelのSEQUENCE関数の使い方を実務目線で解説。連番・日付・2次元配列の生成方法とROW関数との違いを比較表で整理。スピルを活用して作業を大幅に効率化できます。M365/Excel2021以降対応。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Excelで連番を振りたいとき、セルを選択してオートフィルでドラッグしていませんか。数件ならそれでも十分ですが、100件を超えるとなかなか大変ですよね。しかもデータの追加・削除のたびに振り直すのは手間がかかります。</p>



<p class="wp-block-paragraph">そんなときに使いたいのがSEQUENCE関数です。たった1つの数式で連番を自動生成できます。日付や2次元配列にも対応しているので、知っておくと作業が一気にラクになりますよ。この記事では、ExcelのSEQUENCE関数の基本から実務で役立つ活用パターンまでわかりやすく解説します。</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関数とは？動的配列で連番を自動生成するExcelの関数</a><ol><li><a href="#toc2" tabindex="0">使える環境：Microsoft 365 / Excel 2021以降</a></li><li><a href="#toc3" tabindex="0">スピル（自動展開）の仕組み</a></li></ol></li><li><a href="#toc4" tabindex="0">SEQUENCE関数の基本構文と引数</a><ol><li><a href="#toc5" tabindex="0">4つの引数：行数・列数・開始値・増分</a></li><li><a href="#toc6" tabindex="0">引数を省略した場合の動作</a></li></ol></li><li><a href="#toc7" tabindex="0">ROW関数との違い・使い分け早見表</a><ol><li><a href="#toc8" tabindex="0">ROW関数のメリットとデメリット</a></li><li><a href="#toc9" tabindex="0">SEQUENCEが向いているケース・向いていないケース</a></li></ol></li><li><a href="#toc10" tabindex="0">基本の使い方：縦方向・横方向の連番</a><ol><li><a href="#toc11" tabindex="0">縦に連番を並べる（基本形）</a></li><li><a href="#toc12" tabindex="0">横方向に連番を並べる</a></li></ol></li><li><a href="#toc13" tabindex="0">実務活用例1：日付・時刻の連番を自動生成する</a><ol><li><a href="#toc14" tabindex="0">月間カレンダーを1関数で作る</a></li><li><a href="#toc15" tabindex="0">1時間おきの時刻リストを作る</a></li></ol></li><li><a href="#toc16" tabindex="0">実務活用例2：2次元配列で表のひな形を作る</a><ol><li><a href="#toc17" tabindex="0">月×週のマトリクス表を自動生成</a></li><li><a href="#toc18" tabindex="0">TRANSPOSE関数と組み合わせて行列を入れ替える</a></li></ol></li><li><a href="#toc19" tabindex="0">よくあるエラーとトラブルシューティング</a><ol><li><a href="#toc20" tabindex="0">#SPILL! エラーの原因と対処</a></li><li><a href="#toc21" tabindex="0">古いExcelで使えないときの代替方法（ROW関数）</a></li></ol></li><li><a href="#toc22" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">SEQUENCE関数とは？動的配列で連番を自動生成するExcelの関数</span></h2>



<p class="wp-block-paragraph">SEQUENCE（シーケンス）関数は、連続した数値の配列を自動生成するExcelの関数です。英語の「sequence」は「連続・順序」という意味があります。</p>



<p class="wp-block-paragraph">たとえば「1から10までの連番」や「4月1日から30日分の日付」を、数式ひとつで作成できます。結果は複数のセルに自動展開されるため、セルをひとつずつ埋める必要はありません。</p>



<h3 class="wp-block-heading"><span id="toc2">使える環境：Microsoft 365 / Excel 2021以降</span></h3>



<p class="wp-block-paragraph">SEQUENCE関数が使えるバージョンは以下のとおりです。</p>



<figure class="wp-block-table"><table><thead><tr><th>バージョン</th><th>対応状況</th></tr></thead><tbody><tr><td>Microsoft 365（Windows / Mac）</td><td>対応</td></tr><tr><td>Excel 2021 / 2024</td><td>対応</td></tr><tr><td>Excel for the web</td><td>対応</td></tr><tr><td>Excel 2019以前</td><td>非対応（#NAME? エラー）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">お使いのExcelが2019以前の場合は、記事後半で紹介する<a href="https://mashukabu.com/excel-function-howto-use-row/">ROW関数</a>での代替方法を参考にしてください。</p>



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



<p class="wp-block-paragraph">SEQUENCE関数は「動的配列関数」のひとつです。数式をひとつのセルに入力するだけで、結果が隣接するセルへ自動的にあふれ出ます。この動作を「スピル」と呼びます。</p>



<p class="wp-block-paragraph">スピルで展開された範囲は薄い青枠で表示されます。元の数式を修正すると、展開範囲も自動で更新されるのが便利なポイントです。</p>



<h2 class="wp-block-heading"><span id="toc4">SEQUENCE関数の基本構文と引数</span></h2>



<h3 class="wp-block-heading"><span id="toc5">4つの引数：行数・列数・開始値・増分</span></h3>



<pre class="wp-block-code"><code>=SEQUENCE(行, [列], [開始], [増分])</code></pre>



<p class="wp-block-paragraph">引数は4つあり、必須は「行」だけです。残りの3つは省略できます。</p>



<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>—</td><td>生成する行数</td></tr><tr><td>列</td><td>任意</td><td>1</td><td>生成する列数</td></tr><tr><td>開始</td><td>任意</td><td>1</td><td>連番の最初の値</td></tr><tr><td>増分</td><td>任意</td><td>1</td><td>値の増加量（負の値で降順）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">公式ヘルプでは第4引数を「目盛り」と表記していますが、実質的には「増分（ステップ）」の意味です。この記事では「増分」と呼びます。</p>



<h3 class="wp-block-heading"><span id="toc6">引数を省略した場合の動作</span></h3>



<p class="wp-block-paragraph">引数を省略すると、すべてデフォルト値の1が使われます。</p>



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



<p class="wp-block-paragraph">この数式は「5行1列、1から1ずつ増える連番」を生成します。結果は縦方向に 1, 2, 3, 4, 5 と展開されます。</p>



<h2 class="wp-block-heading"><span id="toc7">ROW関数との違い・使い分け早見表</span></h2>



<p class="wp-block-paragraph">連番を振る方法として、<a href="https://mashukabu.com/excel-function-howto-use-row/">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>M365 / Excel 2021以降</td><td>全バージョン</td></tr><tr><td>入力方法</td><td>1セルに数式を入力</td><td>各セルにコピーが必要</td></tr><tr><td>2次元配列</td><td>対応（行×列を指定可）</td><td>非対応（1列のみ）</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="toc8">ROW関数のメリットとデメリット</span></h3>



<p class="wp-block-paragraph">ROW関数の最大のメリットはバージョン互換性です。Excel 2010でも2016でも動きます。一方で、2次元の連番は作れません。横方向に連番を振りたい場合はCOLUMN関数が必要になります。</p>



<h3 class="wp-block-heading"><span id="toc9">SEQUENCEが向いているケース・向いていないケース</span></h3>



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



<ul class="wp-block-list"><li>M365 / Excel 2021以降を使っている</li><li>日付や時刻の連番を一括生成したい</li><li>行×列の2次元配列を作りたい</li></ul>



<p class="wp-block-paragraph"><strong>ROW関数で十分なケース</strong></p>



<ul class="wp-block-list"><li>旧バージョンとの互換性が必要</li><li>シンプルな縦1列の連番だけでよい</li></ul>



<h2 class="wp-block-heading"><span id="toc10">基本の使い方：縦方向・横方向の連番</span></h2>



<h3 class="wp-block-heading"><span id="toc11">縦に連番を並べる（基本形）</span></h3>



<p class="wp-block-paragraph">もっともシンプルな使い方です。A1セルに以下の数式を入力すると、A1:A10に1〜10の連番が生成されます。</p>



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



<p class="wp-block-paragraph">開始値を変えたい場合は第3引数を指定します。100から始まる10個の連番は次のとおりです。</p>



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



<p class="wp-block-paragraph">結果は 100, 101, 102, &#8230; , 109 と展開されます。</p>



<h3 class="wp-block-heading"><span id="toc12">横方向に連番を並べる</span></h3>



<p class="wp-block-paragraph">横方向に並べたい場合は、行数を1、列数を必要な数に設定します。</p>



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



<p class="wp-block-paragraph">1行12列の連番（1〜12）が横方向に展開されます。月番号のヘッダーなどに便利ですよ。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-transpose/">TRANSPOSE関数</a>で縦横を入れ替える方法もあります。</p>



<pre class="wp-block-code"><code>=TRANSPOSE(SEQUENCE(12))</code></pre>



<p class="wp-block-paragraph">結果は同じく横方向の1〜12です。お好みの方法で使い分けてください。</p>



<h2 class="wp-block-heading"><span id="toc13">実務活用例1：日付・時刻の連番を自動生成する</span></h2>



<h3 class="wp-block-heading"><span id="toc14">月間カレンダーを1関数で作る</span></h3>



<p class="wp-block-paragraph">SEQUENCE関数は数値だけでなく、日付の連番も生成できます。Excelの日付はシリアル値（数値）なので、増分1で1日ずつ進みます。</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>



<ol class="wp-block-list"><li>スピル範囲を選択する</li><li>右クリック →「セルの書式設定」を開く</li><li>「日付」カテゴリを選び、好みの形式を指定する</li></ol>



<h3 class="wp-block-heading"><span id="toc15">1時間おきの時刻リストを作る</span></h3>



<p class="wp-block-paragraph">時刻の連番も同じ考え方です。TIME関数で開始時刻と増分を指定します。</p>



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



<p class="wp-block-paragraph">9時から17時まで、1時間おきの時刻リストが生成されます。こちらもセルの表示形式を「時刻」に変更してくださいね。会議室の予約表やタイムスケジュール作成に使えるテクニックです。</p>



<h2 class="wp-block-heading"><span id="toc16">実務活用例2：2次元配列で表のひな形を作る</span></h2>



<h3 class="wp-block-heading"><span id="toc17">月×週のマトリクス表を自動生成</span></h3>



<p class="wp-block-paragraph">SEQUENCE関数は行数と列数の両方を指定すると、2次元の配列を生成します。</p>



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



<p class="wp-block-paragraph">この数式の結果は以下のとおりです。</p>



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



<p class="wp-block-paragraph">値は<strong>行優先</strong>で埋まります。左から右へ進み、右端に達したら次の行の左端に移ります。本を読む順番と同じです。</p>



<h3 class="wp-block-heading"><span id="toc18">TRANSPOSE関数と組み合わせて行列を入れ替える</span></h3>



<p class="wp-block-paragraph">2次元配列の縦横を入れ替えたい場合は、<a href="https://mashukabu.com/excel-function-howto-use-transpose/">TRANSPOSE関数</a>で囲みます。</p>



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



<p class="wp-block-paragraph">元の3行4列が4行3列に変換されます。行と列どちらを基準にするかで使い分けてみてください。</p>



<p class="wp-block-paragraph">SEQUENCE関数は<a href="https://mashukabu.com/excel-function-howto-use-filter/">FILTER関数</a>や<a href="https://mashukabu.com/excel-function-howto-use-expand/">EXPAND関数</a>と同じ「動的配列関数」のファミリーです。組み合わせることで、さらに柔軟なデータ処理ができますよ。</p>



<h2 class="wp-block-heading"><span id="toc19">よくあるエラーとトラブルシューティング</span></h2>



<h3 class="wp-block-heading"><span id="toc20">#SPILL! エラーの原因と対処</span></h3>



<p class="wp-block-paragraph">SEQUENCE関数で最も多いエラーが <code>#SPILL!</code> です。スピル先のセルにデータや結合セルが存在すると発生します。</p>



<p class="wp-block-paragraph"><strong>対処法</strong></p>



<ol class="wp-block-list"><li>エラーセルをクリックする</li><li>表示される青い点線の範囲を確認する</li><li>範囲内のデータを移動または削除する</li><li>結合セルがあれば結合を解除する</li></ol>



<p class="wp-block-paragraph">スピル先を空にすれば、エラーは解消されます。</p>



<h3 class="wp-block-heading"><span id="toc21">古いExcelで使えないときの代替方法（ROW関数）</span></h3>



<p class="wp-block-paragraph">Excel 2019以前では <code>#NAME?</code> エラーが表示されます。この場合は<a href="https://mashukabu.com/excel-function-howto-use-row/">ROW関数</a>で代替しましょう。</p>



<pre class="wp-block-code"><code>=ROW()-ROW($A$1)+1</code></pre>



<p class="wp-block-paragraph">この数式を下方向にコピーすると、1から始まる連番になります。ただし2次元配列や日付の連番には対応できません。あくまで縦1列の連番の代替手段として使ってください。</p>



<p class="wp-block-paragraph"><code>#VALUE!</code> エラーが出る場合は、引数に文字列など無効な値が入っていないか確認してみてくださいね。</p>



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



<p class="wp-block-paragraph">この記事では、ExcelのSEQUENCE関数の使い方を解説しました。</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>=SEQUENCE(行, [列], [開始], [増分])</td></tr><tr><td>対応バージョン</td><td>M365 / Excel 2021以降</td></tr><tr><td>日付・時刻</td><td>シリアル値で生成、表示形式の変更が必要</td></tr><tr><td>2次元配列</td><td>行数と列数を両方指定（行優先で展開）</td></tr><tr><td>ROW関数との違い</td><td>バージョン互換性 vs 多機能さ</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">オートフィルや手入力で連番を作っていた方は、SEQUENCE関数に切り替えるだけで作業時間を大幅に短縮できます。日付やマトリクス表も1つの数式で完結するので、ぜひ日常業務に取り入れてみてください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-sequence/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
