<?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>Excel中級 &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/excel%E4%B8%AD%E7%B4%9A/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.1</generator>

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

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



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



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



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




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

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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>WRAPCOLS</th><th>WRAPROWS</th></tr></thead><tbody><tr><td>折り返し方向</td><td>列方向（縦に詰める）</td><td>行方向（横に詰める）</td></tr><tr><td>wrap_countの意味</td><td>各列の行数</td><td>各行の列数</td></tr><tr><td>結果の形状</td><td>縦長配列（多行・少列）</td><td>横長配列（少行・多列）</td></tr><tr><td>典型的な用途</td><td>カタログ・グリッド整形</td><td>横並び比較・ヘッダー生成</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">「縦に整形したい」ならWRAPCOLS、「横に展開したい」ならWRAPROWSと覚えておくと選びやすいですよ。</p>



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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

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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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

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



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



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



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




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

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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>WRAPROWS</th><th>WRAPCOLS</th></tr></thead><tbody><tr><td>折り返し方向</td><td>行方向（横に詰める）</td><td>列方向（縦に詰める）</td></tr><tr><td>wrap_countの意味</td><td>各行の列数</td><td>各列の行数</td></tr><tr><td>結果の形状</td><td>横長配列（少行・多列）</td><td>縦長配列（多行・少列）</td></tr><tr><td>典型的な用途</td><td>横並び比較・カレンダー形式</td><td>カタログ・グリッド整形</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">「横に並べたい」ならWRAPROWS、「縦に整形したい」ならWRAPCOLSと覚えておくと選びやすいですよ。</p>



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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

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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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

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



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



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



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




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

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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A列</th><th>B列</th><th>C列</th></tr></thead><tbody><tr><td>1行</td><td>（空白）</td><td>（空白）</td><td>（空白）</td></tr><tr><td>2行</td><td>（空白）</td><td>商品名</td><td>価格</td></tr><tr><td>3行</td><td>（空白）</td><td>りんご</td><td>150</td></tr><tr><td>4行</td><td>（空白）</td><td>みかん</td><td>80</td></tr><tr><td>5行</td><td>（空白）</td><td>ぶどう</td><td>300</td></tr><tr><td>6行</td><td>（空白）</td><td>（空白）</td><td>（空白）</td></tr></tbody></table></figure>



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-wraprows/">ExcelのWRAPROWS関数の使い方</a>（1次元配列を行方向に折り返す）</li><li><a href="https://mashukabu.com/excel-wrapcols/">ExcelのWRAPCOLS関数の使い方</a>（1次元配列を列方向に折り返す）</li><li><a href="https://mashukabu.com/excel-function-howto-use-tocol/">ExcelのTOCOL関数の使い方</a>（2次元配列を縦1列に変換）</li><li><a href="https://mashukabu.com/excel-function-howto-use-torow/">ExcelのTOROW関数の使い方</a>（2次元配列を横1行に変換）</li><li><a href="https://mashukabu.com/excel-function-howto-use-sequence/">ExcelのSEQUENCE関数の使い方</a>（連番を自動生成）</li><li><a href="https://mashukabu.com/excel-function-howto-use-hstack/">ExcelのHSTACK関数の使い方</a>（配列を横方向に結合）</li><li><a href="https://mashukabu.com/excel-function-howto-use-vstack/">ExcelのVSTACK関数の使い方</a>（配列を縦方向に結合）</li><li><a href="https://mashukabu.com/excel-function-howto-use-take/">ExcelのTAKE関数の使い方</a>（先頭・末尾を抽出）</li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-trimrange-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
