<?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/%E3%82%B9%E3%83%94%E3%83%AB/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Sat, 05 Sep 2026 01:27:22 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.2</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】MODE.MULT関数の使い方｜最頻値が複数あるときに全部取り出す配列関数</title>
		<link>https://mashukabu.com/excel-mode-mult/</link>
					<comments>https://mashukabu.com/excel-mode-mult/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 09 May 2026 23:17:44 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[スピル]]></category>
		<category><![CDATA[最頻値]]></category>
		<category><![CDATA[統計関数]]></category>
		<category><![CDATA[配列数式]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=6750</guid>

					<description><![CDATA[ExcelのMODE.MULT関数の使い方を解説します。データセットの中で同じ最高頻度を持つ最頻値を「複数」配列で返す関数で、アンケートで同率1位の回答が複数あるときに全部抽出できます。CSE（Ctrl+Shift+Enter）入力と動的配列スピルの違い、MODE.SNGLとの使い分け、#N/Aエラーの正しい解釈までまとめました。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">社内アンケートを集計していて「最も多かった回答」を出そうとしたら、同じ票数のものが2つも3つもあった。そんなとき、普通の最頻値関数だと1つしか返ってこなくて困った経験はないでしょうか。</p>



<p class="wp-block-paragraph">そこで活躍するのが <strong>MODE.MULT関数</strong> です。同率1位の最頻値をすべて配列としてまとめて返してくれるので、「同点トップが複数あるケース」でも取りこぼしはありません。</p>



<p class="wp-block-paragraph">この記事では、MODE.MULT関数の構文から、CSE入力と動的配列スピルの違い、MODE.SNGLとの使い分け、よくあるエラーの読み解き方までを実例で整理します。</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のMODE.MULT関数とは？</a></li><li><a href="#toc2" tabindex="0">MODE.MULT関数の書き方（構文と引数）</a></li><li><a href="#toc3" tabindex="0">MODE.SNGLとの違いを早見表で整理</a></li><li><a href="#toc4" tabindex="0">実務例：アンケート評価点の同率最多回答を全部取得する</a><ol><li><a href="#toc5" tabindex="0">Microsoft 365 / Excel 2021以降の場合（動的配列スピル）</a></li><li><a href="#toc6" tabindex="0">Excel 2019以前の場合（CSE入力）</a></li></ol></li><li><a href="#toc7" tabindex="0">CSE入力と動的配列スピルの違い</a></li><li><a href="#toc8" tabindex="0">#N/Aエラーが返る2つのパターン</a><ol><li><a href="#toc9" tabindex="0">パターン1：余ったセルに表示される #N/A（正常動作）</a></li><li><a href="#toc10" tabindex="0">パターン2：すべてのセルに #N/A が表示される（重複なし）</a></li></ol></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></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">ExcelのMODE.MULT関数（読み方：モード・マルト）は、<strong>データセットの中で最も頻繁に出現する数値（最頻値）を、複数まとめて配列で返す関数</strong>です。関数名は「<strong>MODE</strong>（最頻値）＋<strong>MULT</strong>iple（複数）」の組み合わせで、そのまま「複数の最頻値」という意味。</p>



<p class="wp-block-paragraph">通常の最頻値関数（MODEやMODE.SNGL）は、同じ最高頻度の値が複数あっても <strong>最初に見つかった1つだけ</strong> を返します。一方MODE.MULTは、同率1位の値を <strong>すべて配列として返す</strong> のが最大の特徴。</p>



<p class="wp-block-paragraph">たとえば 1, 2, 3, 3, 4, 5, 5 というデータでは、3も5も2回ずつ登場します。MODE.SNGLでは「3」だけが返りますが、MODE.MULTを使えば「3」と「5」の両方を取得できます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>MODE.MULTはExcel 2010で追加された関数です。それ以前のExcelには存在せず、後継関数として登場しました。Excel 2010以降であれば、Mac版・Windows版を問わず利用できます。</p></blockquote>



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



<p class="wp-block-paragraph">MODE.MULT関数の構文は次のとおりです。</p>



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



<p class="wp-block-paragraph">引数の仕様は次の表にまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須</th><th>説明</th></tr></thead><tbody><tr><td>数値1</td><td>必須</td><td>最頻値を求めたい1つ目の数値またはセル範囲</td></tr><tr><td>数値2, &#8230;</td><td>任意</td><td>2つ目以降の数値またはセル範囲（最大254個まで指定可）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">戻り値は <strong>縦方向の配列</strong> です。同率最頻値の個数だけ縦に値が並び、選択範囲が余ったセルには #N/A が表示されます。これは「ここまでで最頻値は出尽くしました」というサインで、故障でも入力ミスでもありません。</p>



<p class="wp-block-paragraph">引数に指定したセルのうち、テキスト・論理値・空白セルは無視されます。ただし数値の <strong>0（ゼロ）</strong> はカウント対象になる点に注意してください。</p>



<h2 class="wp-block-heading"><span id="toc3">MODE.SNGLとの違いを早見表で整理</span></h2>



<p class="wp-block-paragraph">「最頻値を返す関数」は3種類あります。それぞれの違いを整理しておきましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>MODE</th><th>MODE.SNGL</th><th>MODE.MULT</th></tr></thead><tbody><tr><td>戻り値</td><td>1つ</td><td>1つ</td><td>複数（配列）</td></tr><tr><td>同頻度の値が複数あるとき</td><td>最初に現れた値のみ</td><td>最初に現れた値のみ</td><td>すべて返す</td></tr><tr><td>入力方法</td><td>通常Enter</td><td>通常Enter</td><td>CSE または通常Enter（スピル対応版）</td></tr><tr><td>関数の分類</td><td>互換性関数</td><td>統計関数</td><td>統計関数</td></tr><tr><td>導入時期</td><td>Excel 2007以前</td><td>Excel 2010以降</td><td>Excel 2010以降</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>「同率最多が出るかもしれない」場合はMODE.MULT、「最頻値は1つで十分」な場合は <a href="https://mashukabu.com/excel-mode-sngl/">MODE.SNGL関数</a> を選ぶのが基本です。MODE.SNGLは1つしか返ってこないため、同率最多の見落としに気づけないリスクがあります。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc4">実務例：アンケート評価点の同率最多回答を全部取得する</span></h2>



<p class="wp-block-paragraph">社員研修の満足度アンケート（5段階評価）を集計するシーンで考えてみます。10人の回答が次のように集まりました。</p>



<figure class="wp-block-table"><table><thead><tr><th>回答者</th><th>評価点</th></tr></thead><tbody><tr><td>田中</td><td>5</td></tr><tr><td>佐藤</td><td>4</td></tr><tr><td>鈴木</td><td>5</td></tr><tr><td>高橋</td><td>3</td></tr><tr><td>伊藤</td><td>4</td></tr><tr><td>渡辺</td><td>5</td></tr><tr><td>山本</td><td>4</td></tr><tr><td>中村</td><td>2</td></tr><tr><td>小林</td><td>4</td></tr><tr><td>加藤</td><td>5</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">評価点が B2:B11 に入っているとします。最頻値を求めると、4点が4回、5点も4回登場しており、同率1位という状況です。</p>



<h3 class="wp-block-heading"><span id="toc5">Microsoft 365 / Excel 2021以降の場合（動的配列スピル）</span></h3>



<p class="wp-block-paragraph">任意のセル（たとえば D2）に通常通り入力するだけです。</p>



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



<p class="wp-block-paragraph">Enterを押すと、D2に「4」、D3に「5」が <strong>自動でスピル展開</strong> されます。範囲をあらかじめ選択する必要はありません。</p>



<h3 class="wp-block-heading"><span id="toc6">Excel 2019以前の場合（CSE入力）</span></h3>



<p class="wp-block-paragraph">「同率最多が何個出るか」が事前に分からないので、念のため数個ぶんのセル（たとえば D2:D6）を縦に選択しておきます。続けて数式バーに次の数式を入力しましょう。</p>



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



<p class="wp-block-paragraph">そのまま <strong>Ctrl + Shift + Enter</strong> を押すと、配列数式として確定されます。数式バーには <code>{=MODE.MULT(B2:B11)}</code> と中括弧が付き、選択範囲に「4」「5」「#N/A」「#N/A」「#N/A」のように展開されます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>WARNING</strong></p><p>Excel 2019以前で通常のEnterで確定すると、最初の1つ（この例では「4」）だけが表示され、残りの最頻値が取得できません。古いExcelで使うときは必ず <strong>Ctrl + Shift + Enter</strong> で確定してください。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc7">CSE入力と動的配列スピルの違い</span></h2>



<p class="wp-block-paragraph">MODE.MULTの入力方法は、Excelのバージョンによって2通りに分かれます。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>CSE入力（旧来Excel）</th><th>動的配列スピル（新Excel）</th></tr></thead><tbody><tr><td>対象バージョン</td><td>Excel 2010〜2019</td><td>Microsoft 365、Excel 2021以降</td></tr><tr><td>入力範囲</td><td>事前にセル範囲を選択</td><td>単一セルに入力するだけ</td></tr><tr><td>確定キー</td><td>Ctrl + Shift + Enter</td><td>通常のEnter</td></tr><tr><td>数式表示</td><td><code>{=MODE.MULT(...)}</code></td><td><code>=MODE.MULT(...)</code></td></tr><tr><td>結果が増減した場合</td><td>範囲を再指定して再入力</td><td>自動的に縮小・拡大</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">扱いやすさで言えば、新しい動的配列スピルのほうが圧倒的。Microsoft 365をお使いの方は、結果が何個になるかを気にせず1セルに入力するだけで済みます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>スピル展開時、隣接セルにすでにデータが入っていると <strong>#SPILL!</strong> エラーになります。スピル先のセル（この例ではD3以降）が空であることを確認してから入力してください。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc8">#N/Aエラーが返る2つのパターン</span></h2>



<p class="wp-block-paragraph">MODE.MULT関数を使うと #N/A エラーをよく目にします。これには2つのパターンがあり、意味がまったく違うので区別しておきましょう。</p>



<h3 class="wp-block-heading"><span id="toc9">パターン1：余ったセルに表示される #N/A（正常動作）</span></h3>



<p class="wp-block-paragraph">CSE入力で5セル選択したけれど、実際に最頻値が2つしかなかった場合、3〜5番目のセルには #N/A が表示されます。これは「これ以上の最頻値はありません」という終端マーカーで、エラーではなく正常動作です。</p>



<h3 class="wp-block-heading"><span id="toc10">パターン2：すべてのセルに #N/A が表示される（重複なし）</span></h3>



<p class="wp-block-paragraph">データセットに重複する値が1つもない（全員バラバラ）場合、最頻値そのものが定義できないため、すべてのセルに #N/A が返ります。これは仕様上の動作で、データ側の特性をそのまま映したサイン。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>パターン2が表示されたら「データに重複がないので最頻値が存在しない」と読み替えましょう。エラーを隠したい場合は <code>=IFERROR(MODE.MULT(範囲), "重複なし")</code> で文字列に置き換えられます。</p></blockquote>



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



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td><code>#N/A</code>（余りセル）</td><td>最頻値がそれ以上ない</td><td>正常動作。範囲を狭めるかIFERRORで非表示</td></tr><tr><td><code>#N/A</code>（全セル）</td><td>データに重複値が一つもない</td><td>データ側を確認。IFERRORで代替表示</td></tr><tr><td><code>#VALUE!</code></td><td>範囲内に文字化けや特殊な値がある</td><td>範囲内の値が数値であることを確認</td></tr><tr><td><code>#SPILL!</code></td><td>スピル先のセルにデータが入っている</td><td>スピル先のセルを空にする</td></tr><tr><td><code>#NAME?</code></td><td>Excel 2007以前で実行している</td><td>Excel 2010以降を使うか、MODE関数で代替</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">特に多いのが <strong>#SPILL!</strong> です。動的配列スピル対応のExcelで MODE.MULT を1セルに入れたとき、隣接セルが埋まっていると展開できません。表組みの中で使うときは、結果が広がる方向のセルを空けておきましょう。</p>



<h2 class="wp-block-heading"><span id="toc12">関連する最頻値・統計関数</span></h2>



<p class="wp-block-paragraph">中心傾向や頻度の分析では、MODE系のほかにもいくつか関数を組み合わせて使うと便利です。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>役割</th></tr></thead><tbody><tr><td><a href="https://mashukabu.com/excel-mode-sngl/">MODE.SNGL</a></td><td>最頻値を1つだけ返す（同率最多があっても最小値を返す）</td></tr><tr><td>MODE</td><td>旧来の最頻値関数（互換性関数。新規利用は MODE.SNGL を推奨）</td></tr><tr><td>AVERAGE</td><td>算術平均を求める</td></tr><tr><td>MEDIAN</td><td>中央値を求める</td></tr><tr><td>COUNTIF</td><td>特定の値の出現回数をカウント</td></tr><tr><td>FREQUENCY</td><td>度数分布を求める</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">最頻値を出した後に「その値が何件あるのか」を数えたい場合は COUNTIF関数 と組み合わせてみてください。</p>



<p class="wp-block-paragraph">Googleスプレッドシートで同じ集計をしたい方は、<a href="https://mashukabu.com/spreadsheet-mode-mult-function/">スプレッドシート版MODE.MULT関数の使い方</a>で解説しています。</p>



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



<p class="wp-block-paragraph">ExcelのMODE.MULT関数は、最頻値が複数あるケースを漏らさず抽出できる配列関数です。要点を整理しておきます。</p>



<ul class="wp-block-list"><li><strong>構文</strong>: <code>=MODE.MULT(数値1, [数値2], ...)</code></li><li><strong>戻り値</strong>: 縦方向の配列（同率最頻値をすべて含む）</li><li><strong>Microsoft 365 / Excel 2021以降</strong>: 通常Enterで自動スピル展開</li><li><strong>Excel 2019以前</strong>: 範囲を選択して <strong>Ctrl + Shift + Enter</strong>（CSE）</li><li><strong>余りセルの #N/A は正常動作</strong>（最頻値の終端マーカー）</li><li><strong>全セル #N/A はデータに重複がない</strong> ことを示す</li></ul>



<p class="wp-block-paragraph">アンケート集計で「同率1位の回答を全部出したい」場面や、製品評価で「同じ得票数のレビュー点を全部取り出したい」場面では、MODE.MULTがそのまま答えを返してくれます。1つだけ取得したい場合は <a href="https://mashukabu.com/excel-mode-sngl/">MODE.SNGL関数</a> と使い分けましょう。</p>



<p class="wp-block-paragraph">中心傾向の3指標である AVERAGE関数、MEDIAN関数、MODE.MULT/MODE.SNGLを揃えて使えるようになると、データの「真ん中」を多角的に捉えられるようになります。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-mode-mult/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Excel】WRAPCOLS関数の使い方｜1列のリストを複数列のグリッドに整形する</title>
		<link>https://mashukabu.com/excel-wrapcols/</link>
					<comments>https://mashukabu.com/excel-wrapcols/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 09 May 2026 23:17:23 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[WRAPCOLS]]></category>
		<category><![CDATA[スピル]]></category>
		<category><![CDATA[データ整形]]></category>
		<category><![CDATA[配列操作]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=6744</guid>

					<description><![CDATA[ExcelのWRAPCOLS関数の使い方を解説します。1列に並んだリストを縦方向に折り返して複数列のグリッドに整形できる新関数で、商品リストの一覧表示や名簿の体裁整えに便利です。構文と引数（vector・wrap_count・pad_with）の使い方、WRAPROWSとの違い、Microsoft 365 / Excel 2024 でのバージョン対応、関連関数（TOCOL・TOROW・SEQUENCE）との組み合わせまで実例で整理しました。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「メンバー名簿が縦1列にずらっと並んでいて、3列のグリッドに整形して見やすくしたい」「商品コードのリストを縦長の1列から複数列のレイアウトに変えたい」と思ったことはありませんか？</p>



<p class="wp-block-paragraph">そんなときに便利なのが、Microsoft 365 と Excel 2024 で使える <strong>WRAPCOLS関数</strong> です。1列の配列を指定した行数で <strong>縦方向に折り返して</strong> 2次元の配列に整形してくれます。スピル機能と組み合わせれば、数式ひとつでレイアウトを一瞬で変更できます。</p>



<p class="wp-block-paragraph">この記事では、WRAPCOLS関数の構文から、商品リストや名簿を複数列のグリッドに整形する実例、pad_with引数の使い方、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">ExcelのWRAPCOLS関数とは？</a></li><li><a href="#toc2" tabindex="0">WRAPCOLS関数の書き方（構文と引数）</a></li><li><a href="#toc3" tabindex="0">WRAPCOLS関数の動作イメージ</a></li><li><a href="#toc4" tabindex="0">実務例1：商品リストを3列のグリッドに整形する</a></li><li><a href="#toc5" tabindex="0">実務例2：pad_with引数で端数セルを埋める</a></li><li><a href="#toc6" tabindex="0">実務例3：SEQUENCE関数と組み合わせて連番グリッドを作る</a></li><li><a href="#toc7" tabindex="0">WRAPCOLSとWRAPROWSの違い</a></li><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>
    </div>
  </div>

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



<p class="wp-block-paragraph">ExcelのWRAPCOLS関数（読み方：ラップコルズ）は、<strong>1次元配列の要素を縦方向に折り返して2次元配列に整形する関数</strong>です。関数名は「<strong>Wrap</strong>（折り返す）+ <strong>Cols</strong>（列）」の略で、文字どおり「列方向に折り返す」動作をイメージするとつかみやすいはず。</p>



<p class="wp-block-paragraph">ざっくり言うと、縦1列または横1行に並んだデータを渡すと、指定した数で <strong>上から下へ折り返し</strong>、次の列へ移ってまた上から下へ、というふうに2次元のグリッド配列を返してくれる関数です。スピル対応なので、数式を1つのセルに入れるだけで結果が複数のセルに自動展開されます。</p>



<p class="wp-block-paragraph">WRAPCOLS関数は、Microsoft 365 と Excel 2024 で導入された <strong>比較的新しい関数</strong> です。Excel 2021 以前のバージョンでは利用できないので、共有先の環境にも注意が必要です（後述）。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>「スピル（spill）」とは、1つの数式の結果が複数のセルに自動的に展開される機能のことです。WRAPCOLS関数は2次元配列を返すため、結果が縦横に広がります。展開先のセルに既存データがあると <code>#SPILL!</code> エラーになるので、出力範囲は空けておきましょう。</p></blockquote>



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



<p class="wp-block-paragraph">WRAPCOLS関数の構文は次のとおりです。</p>



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



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



<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次元配列またはセル参照（縦1列または横1行）</td></tr><tr><td>wrap_count</td><td>必須</td><td>各列に入れる要素数（1以上の整数）</td></tr><tr><td>pad_with</td><td>任意</td><td>端数セルを埋める値（省略時は <code>#N/A</code>）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">戻り値は2次元配列です。要素数が wrap_count で割り切れない場合、最後の列の余ったセルは pad_with で指定した値で埋められます。省略した場合の既定値は <code>#N/A</code>。</p>



<h2 class="wp-block-heading"><span id="toc3">WRAPCOLS関数の動作イメージ</span></h2>



<p class="wp-block-paragraph">WRAPCOLS関数は、要素を <strong>上から下へ</strong> 順番に配置していきます。wrap_count に達したら次の列に移り、また上から下へ配置する、という動きです。</p>



<p class="wp-block-paragraph">例えば、A2:F2 に「1, 2, 3, 4, 5, 6」という6個の値が横に並んでいるとします。</p>



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



<p class="wp-block-paragraph">この数式は、6個の要素を「3個ずつ縦に並べる」ので、結果は次のような2列×3行の配列になります。</p>



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



<p class="wp-block-paragraph">「1, 2, 3」が1列目に縦に並び、続く「4, 5, 6」が2列目に縦に並んでいることがわかります。これがWRAPCOLSの基本動作。</p>



<h2 class="wp-block-heading"><span id="toc4">実務例1：商品リストを3列のグリッドに整形する</span></h2>



<p class="wp-block-paragraph">縦1列に並んだ商品名のリストを、3列のグリッドに整形してみましょう。例えば、A2:A10 に商品名が縦に9個並んでいるとします。</p>



<figure class="wp-block-table"><table><thead><tr><th>A列（商品名）</th></tr></thead><tbody><tr><td>ノートPC</td></tr><tr><td>キーボード</td></tr><tr><td>マウス</td></tr><tr><td>モニター</td></tr><tr><td>USBハブ</td></tr><tr><td>Webカメラ</td></tr><tr><td>ヘッドセット</td></tr><tr><td>外付けSSD</td></tr><tr><td>電源タップ</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">このリストを「3行×3列のグリッド」に整形するには、空いているセル（例: C2）に次の数式を入力してみてください。</p>



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



<p class="wp-block-paragraph">スピル機能で結果が自動展開され、次のような2次元配列が表示されます。</p>



<figure class="wp-block-table"><table><thead><tr><th>列1</th><th>列2</th><th>列3</th></tr></thead><tbody><tr><td>ノートPC</td><td>モニター</td><td>ヘッドセット</td></tr><tr><td>キーボード</td><td>USBハブ</td><td>外付けSSD</td></tr><tr><td>マウス</td><td>Webカメラ</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>TIP</strong></p><p>商品リストや名簿を <strong>印刷用に整形</strong> する場面では、WRAPCOLSが特に便利です。1列のデータを複数列に折り返すだけで、A4用紙の幅を有効活用したレイアウトが瞬時に作れます。元データを書き換えれば結果も自動で更新されるので、メンテナンスもラクです。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc5">実務例2：pad_with引数で端数セルを埋める</span></h2>



<p class="wp-block-paragraph">要素数が wrap_count で割り切れないと、最後の列に「余り」が出ます。このとき、余ったセルに何を入れるかを決めるのが pad_with引数。</p>



<p class="wp-block-paragraph">例えば、A2:G2 に「1, 2, 3, 4, 5, 6, 7」の7個の値があるとします。これを wrap_count=3 で折り返すと、3行×3列のうち最後の1セルが余ります。</p>



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



<p class="wp-block-paragraph">結果は次のとおり。</p>



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



<p class="wp-block-paragraph">最後の列の余った2セルが「x」で埋められています。pad_with を省略すると、これらのセルは <code>#N/A</code> になります。</p>



<p class="wp-block-paragraph">実務では、文字列なら <code>""</code>（空文字）や <code>"-"</code>、数値なら <code>0</code> などを指定して、見た目を整えるのが定番です。空欄にしたい場合は <code>""</code> を渡すのが手軽。</p>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>WARNING</strong></p><p>pad_with を省略すると <code>#N/A</code> がそのまま表示されます。集計や印刷の体裁を整えたいときは、必ず <code>""</code> や <code>0</code> などのプレースホルダーを指定しましょう。<code>#N/A</code> を後から IFERROR でラップする方法もありますが、最初から pad_with を指定するほうがシンプルです。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc6">実務例3：SEQUENCE関数と組み合わせて連番グリッドを作る</span></h2>



<p class="wp-block-paragraph">WRAPCOLSは、他のスピル対応関数と組み合わせると応用範囲が広がります。例えば、SEQUENCE関数で連番を生成し、WRAPCOLSでグリッドに整形する組み合わせは便利です。</p>



<p class="wp-block-paragraph">「1〜12を3行×4列のグリッドに整形する」場合、次のように書きます。</p>



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



<p class="wp-block-paragraph">SEQUENCE(12) で「1, 2, 3, &#8230;, 12」の縦1列の配列を作り、それをWRAPCOLSで3行ずつ縦に折り返します。結果は次のとおりです。</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>1</td><td>4</td><td>7</td><td>10</td></tr><tr><td>2</td><td>5</td><td>8</td><td>11</td></tr><tr><td>3</td><td>6</td><td>9</td><td>12</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">カレンダーの日付や、行番号付きのテンプレートを動的に作りたいときに重宝するでしょう。</p>



<h2 class="wp-block-heading"><span id="toc7">WRAPCOLSとWRAPROWSの違い</span></h2>



<p class="wp-block-paragraph">WRAPCOLSとよく似た関数に <strong>WRAPROWS</strong> があります。引数構成も同じで、見た目もそっくりです。違いは「折り返しの方向」だけです。</p>



<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>データの流れ</td><td>上→下、次の列へ</td><td>左→右、次の行へ</td></tr><tr><td>結果の形状</td><td>縦長になりやすい</td><td>横長になりやすい</td></tr><tr><td>wrap_countの意味</td><td>各列の要素数（=行数）</td><td>各行の要素数（=列数）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">例えば「1, 2, 3, 4, 5, 6」を wrap_count=3 で折り返した場合、結果は次のように違います。</p>



<p class="wp-block-paragraph"><strong>WRAPCOLS（縦に折り返す）</strong></p>



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



<p class="wp-block-paragraph"><strong>WRAPROWS（横に折り返す）</strong></p>



<figure class="wp-block-table"><table><thead><tr><th>列1</th><th>列2</th><th>列3</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>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>迷ったら「結果を <strong>縦長</strong> にしたいか <strong>横長</strong> にしたいか」で選ぶと判断しやすいです。商品リストを縦に並べたいなら WRAPCOLS、データを横に並べた表にしたいなら WRAPROWS、と覚えておきましょう。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc8">バージョン対応の注意点</span></h2>



<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（サブスクリプション版）</td><td>対応</td></tr><tr><td>Excel 2024（買い切り版）</td><td>対応</td></tr><tr><td>Excel 2021 / 2019 / 2016 / 2013</td><td>非対応</td></tr><tr><td>Excel for the web</td><td>対応</td></tr><tr><td>Excel Mobile（iOS/Android）</td><td>対応</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Excel 2021以前のバージョンでは、WRAPCOLSという関数自体が存在しないため <code>#NAME?</code> エラーになります。古い環境のユーザーとファイルを共有する場合は、以下の代替方法を検討しましょう。</p>



<ul class="wp-block-list"><li>INDEX関数 + ROW・COLUMN関数で手動配置する</li><li>Power Query で配列を整形する</li><li>VBAマクロで対応する</li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>WARNING</strong></p><p>WRAPCOLSを使った数式が入ったブックを Excel 2021 以前で開くと <code>#NAME?</code> エラーになります。共有先の環境がわからない場合は、結果を「値貼り付け」で確定してから渡すのが安全です。</p></blockquote>



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



<p class="wp-block-paragraph">WRAPCOLS関数で発生しやすいエラーをまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td><code>#VALUE!</code></td><td>vector に2次元配列を指定した</td><td>1次元配列（縦1列または横1行）を指定する</td></tr><tr><td><code>#NUM!</code></td><td>wrap_count が 1 未満（0 や負の数）</td><td>wrap_count に 1 以上の整数を指定する</td></tr><tr><td><code>#N/A</code></td><td>端数セルで pad_with を省略した</td><td>pad_with に <code>""</code> や <code>0</code> などを指定する</td></tr><tr><td><code>#NAME?</code></td><td>Excel 2021以前で WRAPCOLS を使った</td><td>Microsoft 365 / Excel 2024 にアップグレードする</td></tr><tr><td><code>#SPILL!</code></td><td>スピル先のセルにデータが入っている</td><td>出力範囲のセルを空にする</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">特に多いのが、すでに2次元配列のデータ（複数行×複数列のセル範囲）を vector に渡してしまう <code>#VALUE!</code> エラーです。</p>



<p class="wp-block-paragraph">WRAPCOLSは <strong>1次元配列専用</strong> の関数なので、もし2次元データを1列に並べ直したい場合は、先に TOCOL関数 で1列に変換してから WRAPCOLS にかける、という二段構えが有効です。</p>



<h2 class="wp-block-heading"><span id="toc10">関連関数</span></h2>



<p class="wp-block-paragraph">WRAPCOLSと組み合わせて使うことが多い関数を整理しておきます。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>役割</th></tr></thead><tbody><tr><td><a href="https://mashukabu.com/excel-wraprows/">WRAPROWS</a></td><td>1次元配列を行方向（横）に折り返して2次元配列にする</td></tr><tr><td>TOCOL</td><td>2次元配列を縦1列の1次元配列に変換する</td></tr><tr><td>TOROW</td><td>2次元配列を横1行の1次元配列に変換する</td></tr><tr><td>SEQUENCE</td><td>連続する数値の配列を生成する</td></tr><tr><td>CHOOSECOLS</td><td>配列から指定した列だけを抽出する</td></tr><tr><td>CHOOSEROWS</td><td>配列から指定した行だけを抽出する</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">「2次元データを1列に並べ直してから、別の形に折り返す」流れでは、TOCOL関数 → WRAPCOLSの組み合わせが定番です。逆に、横方向に折り返したいときは <a href="https://mashukabu.com/excel-wraprows/">WRAPROWS関数</a> の出番。連番のグリッドを作るときは SEQUENCE関数 との合わせ技が便利です。</p>



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



<p class="wp-block-paragraph">ExcelのWRAPCOLS関数は、1列のリストを複数列のグリッドに整形できる便利な関数です。要点を整理すると次のとおり。</p>



<ul class="wp-block-list"><li><strong>構文</strong>: <code>=WRAPCOLS(vector, wrap_count, [pad_with])</code></li><li><strong>動作</strong>: 1次元配列を <strong>上から下へ</strong> 折り返し、次の列へ移っていく</li><li><strong>wrap_count</strong>: 各列の要素数（=折り返したときの行数）を指定</li><li><strong>pad_with</strong>: 端数セルを埋める値（省略時は <code>#N/A</code>）</li><li><strong>対応環境</strong>: Microsoft 365 / Excel 2024 のみ（Excel 2021以前は非対応）</li></ul>



<p class="wp-block-paragraph">商品リスト・名簿・連番テンプレートなど、1列のデータを見やすいグリッドに整形したいシーンで活躍します。元データを変更すれば結果も自動で更新されるため、繰り返し使う帳票やダッシュボードのレイアウト整形にもぴったり。</p>



<p class="wp-block-paragraph">横方向に折り返したい場合は <a href="https://mashukabu.com/excel-wraprows/">WRAPROWS関数</a> を、2次元データを先に1列にまとめたい場合は TOCOL関数 を組み合わせると、配列操作の幅がぐっと広がります。連番グリッドを作るなら SEQUENCE関数 との組み合わせもおすすめです。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-wrapcols/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Excel】WRAPROWS関数の使い方｜横1行のデータを複数行の表に折り返す</title>
		<link>https://mashukabu.com/excel-wraprows/</link>
					<comments>https://mashukabu.com/excel-wraprows/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 09 May 2026 23:16:08 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[WRAPROWS]]></category>
		<category><![CDATA[スピル]]></category>
		<category><![CDATA[データ整形]]></category>
		<category><![CDATA[配列操作]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=6728</guid>

					<description><![CDATA[ExcelのWRAPROWS関数の使い方を解説します。横1行や縦1列のデータを横方向に折り返して複数行の表に整形できる新関数で、日付リストを週単位のカレンダーにしたり、長いデータ列を読みやすい表にしたりするのに便利です。構文と引数（vector・wrap_count・pad_with）の使い方、WRAPCOLSとの違い、Microsoft 365 / Excel 2024 / Google Sheets でのバージョン対応、関連関数（TOROW・TOCOL・SEQUENCE）との組み合わせまで実例で整理しました。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「横1行に長く並んだデータを、1行あたり7件ずつの表に整形してカレンダー風にしたい」「日付のリストを週単位の表にまとめたい」と思ったことはありませんか？</p>



<p class="wp-block-paragraph">そんなときに便利なのが、Microsoft 365 と Excel 2024 で使える <strong>WRAPROWS関数</strong> です。1次元のデータを <strong>横方向に折り返して</strong> 複数行の2次元配列に整形してくれます。スピル機能と組み合わせれば、レイアウトの組み換えが数式ひとつで完結します。</p>



<p class="wp-block-paragraph">この記事では、WRAPROWS関数の構文から、日付リストを週単位の表に整形する実例、pad_with引数の使い方、WRAPCOLSとの違い、Google Sheets を含むバージョン対応までをまとめて整理していきましょう。</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">ExcelのWRAPROWS関数とは？</a></li><li><a href="#toc2" tabindex="0">WRAPROWS関数の書き方（構文と引数）</a></li><li><a href="#toc3" tabindex="0">WRAPROWS関数の動作イメージ</a></li><li><a href="#toc4" tabindex="0">実務例1：日付リストを週単位の表に整形する</a></li><li><a href="#toc5" tabindex="0">実務例2：pad_with引数で端数セルを埋める</a></li><li><a href="#toc6" tabindex="0">実務例3：SEQUENCE関数と組み合わせて連番表を作る</a></li><li><a href="#toc7" tabindex="0">WRAPROWSとWRAPCOLSの違い</a></li><li><a href="#toc8" tabindex="0">バージョン対応の注意点</a><ol><li><a href="#toc9" tabindex="0">Google Sheetsでも使える</a></li></ol></li><li><a href="#toc10" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc11" tabindex="0">関連関数</a></li><li><a href="#toc12" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">ExcelのWRAPROWS関数（読み方：ラップロウズ）は、<strong>1次元配列の要素を横方向に折り返して2次元配列に整形する関数</strong>です。関数名は「<strong>Wrap</strong>（折り返す）+ <strong>Rows</strong>（行）」の略で、文字どおり「行方向に折り返す」動作をイメージするとわかりやすいです。</p>



<p class="wp-block-paragraph">ざっくり言うと、横1行または縦1列に並んだデータを渡すと、指定した数で <strong>左から右へ折り返し</strong>、次の行へ移ってまた左から右へ、というふうに2次元のグリッド配列を返してくれる関数です。スピル対応なので、数式を1つのセルに入れるだけで結果が複数のセルに自動展開されます。</p>



<p class="wp-block-paragraph">WRAPROWS関数は、Microsoft 365 と Excel 2024 で導入された <strong>比較的新しい関数</strong> です。Excel 2021 以前のバージョンでは利用できないので、共有先の環境に注意が必要です（後述）。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>「スピル（spill）」とは、1つの数式の結果が複数のセルに自動的に展開される機能です。WRAPROWSは2次元配列を返すため、結果が縦横に広がります。展開先のセルに既存データがあると <code>#SPILL!</code> エラーになるので、出力範囲は空けておきましょう。</p></blockquote>



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



<p class="wp-block-paragraph">WRAPROWS関数の構文は次のとおりです。</p>



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



<p class="wp-block-paragraph">引数は3つで、最後の pad_with は省略可能です。</p>



<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次元配列またはセル参照（縦1列または横1行）</td></tr><tr><td>wrap_count</td><td>必須</td><td>各行に入れる要素数（1以上の整数。非整数は切り捨て）</td></tr><tr><td>pad_with</td><td>任意</td><td>端数セルを埋める値（省略時は <code>#N/A</code>）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">戻り値は2次元配列です。要素数が wrap_count で割り切れない場合、最後の行の余ったセルは pad_with で指定した値で埋められます。pad_with を省略した場合は <code>#N/A</code> で埋まると覚えておきましょう。</p>



<h2 class="wp-block-heading"><span id="toc3">WRAPROWS関数の動作イメージ</span></h2>



<p class="wp-block-paragraph">WRAPROWS関数は、要素を <strong>左から右へ</strong> 順番に配置していきます。wrap_count に達したら次の行に移り、また左から右へ配置する、という動きです。</p>



<p class="wp-block-paragraph">例えば、A1:E1 に「1, 2, 3, 4, 5」という5個の値が横に並んでいるとします。</p>



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



<p class="wp-block-paragraph">この数式は、5個の要素を「2個ずつ横に並べる」ので、結果は次のような2列×3行の配列になります。</p>



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



<p class="wp-block-paragraph">「1, 2」が1行目、「3, 4」が2行目、「5」が3行目の最初に入り、残った1セルが <code>#N/A</code> で埋められます。これがWRAPROWSの基本動作。pad_with を指定すれば、この <code>#N/A</code> を任意の値に置き換えられます。</p>



<pre class="wp-block-code"><code>=WRAPROWS(A1:E1, 2, &quot;No value&quot;)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>列1</th><th>列2</th></tr></thead><tbody><tr><td>1</td><td>2</td></tr><tr><td>3</td><td>4</td></tr><tr><td>5</td><td>No value</td></tr></tbody></table></figure>



<h2 class="wp-block-heading"><span id="toc4">実務例1：日付リストを週単位の表に整形する</span></h2>



<p class="wp-block-paragraph">縦1列に並んだ14日分の日付を、「1行あたり7日（=1週間）」の表に整形してみます。例えば、A2:A15 に2026年5月10日から14日分の日付が縦に並んでいるとします。</p>



<figure class="wp-block-table"><table><thead><tr><th>A列（日付）</th></tr></thead><tbody><tr><td>2026/5/10</td></tr><tr><td>2026/5/11</td></tr><tr><td>2026/5/12</td></tr><tr><td>2026/5/13</td></tr><tr><td>2026/5/14</td></tr><tr><td>2026/5/15</td></tr><tr><td>2026/5/16</td></tr><tr><td>2026/5/17</td></tr><tr><td>2026/5/18</td></tr><tr><td>2026/5/19</td></tr><tr><td>2026/5/20</td></tr><tr><td>2026/5/21</td></tr><tr><td>2026/5/22</td></tr><tr><td>2026/5/23</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">この日付リストを「7列×2行のカレンダー風」に整形するには、空いているセル（例: C2）に次の数式を入力しましょう。</p>



<pre class="wp-block-code"><code>=WRAPROWS(A2:A15, 7)</code></pre>



<p class="wp-block-paragraph">スピル機能で結果が自動展開され、次のような2次元配列が表示されます。</p>



<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>5/10</td><td>5/11</td><td>5/12</td><td>5/13</td><td>5/14</td><td>5/15</td><td>5/16</td></tr><tr><td>5/17</td><td>5/18</td><td>5/19</td><td>5/20</td><td>5/21</td><td>5/22</td><td>5/23</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">要素を左から右へ7つずつ並べ、終わったら次の行へ、という動きで整形されます。1列の日付データから一瞬でカレンダー形式の表が作れます。曜日ヘッダは別途手入力するか、TEXT関数で曜日を生成して連結すると見栄えが整います。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>シフト表・週次レポート・カレンダーなど、<strong>規則的な区切り</strong> で表を作りたいときに WRAPROWS が便利です。元データを変更すれば結果も自動で更新されるので、毎週繰り返す帳票テンプレートにも向いています。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc5">実務例2：pad_with引数で端数セルを埋める</span></h2>



<p class="wp-block-paragraph">要素数が wrap_count で割り切れないと、最後の行に「余り」が出ます。このとき何を入れるかを指定できるのが、pad_with引数の役割。</p>



<p class="wp-block-paragraph">例えば、A1:E1 に「1, 2, 3, 4, 5」の5個の値があるとします。これを wrap_count=2 で折り返すと、3行×2列のうち最後の1セルが余ります。</p>



<pre class="wp-block-code"><code>=WRAPROWS(A1:E1, 2, &quot;No value&quot;)</code></pre>



<p class="wp-block-paragraph">結果は次のとおりです。</p>



<figure class="wp-block-table"><table><thead><tr><th>列1</th><th>列2</th></tr></thead><tbody><tr><td>1</td><td>2</td></tr><tr><td>3</td><td>4</td></tr><tr><td>5</td><td>No value</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">最後の余ったセルが「No value」で埋められています。pad_with を省略すると、このセルは <code>#N/A</code> のまま。</p>



<p class="wp-block-paragraph">実務では、文字列なら <code>""</code>（空文字）や <code>"-"</code>、数値なら <code>0</code> などを指定して、見た目を整えるのが定番です。空欄にしたい場合は <code>""</code> を渡すのがおすすめです。</p>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>WARNING</strong></p><p>pad_with を省略すると <code>#N/A</code> がそのまま表示されます。集計や印刷の体裁を整えたいときは、必ず <code>""</code> や <code>0</code> などのプレースホルダーを指定しましょう。後から IFERROR でラップする方法もありますが、最初から pad_with を指定するほうがシンプルで読みやすい数式になります。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc6">実務例3：SEQUENCE関数と組み合わせて連番表を作る</span></h2>



<p class="wp-block-paragraph">WRAPROWSは、他のスピル対応関数と組み合わせると応用範囲が広がります。例えば、SEQUENCE関数で連番を生成し、WRAPROWSで表に整形する組み合わせを見てみましょう。</p>



<p class="wp-block-paragraph">「1〜12を3行×4列の表に整形する」場合、次のように書きます。</p>



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



<p class="wp-block-paragraph">SEQUENCE(12) で「1, 2, 3, &#8230;, 12」の縦1列の配列を作り、それを WRAPROWS で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>1</td><td>2</td><td>3</td><td>4</td></tr><tr><td>5</td><td>6</td><td>7</td><td>8</td></tr><tr><td>9</td><td>10</td><td>11</td><td>12</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">九九表のように規則的な数値テーブルを作りたいときや、連番付きのテンプレートを動的に生成したいときに重宝します。</p>



<h2 class="wp-block-heading"><span id="toc7">WRAPROWSとWRAPCOLSの違い</span></h2>



<p class="wp-block-paragraph">WRAPROWSとよく似た関数に <strong>WRAPCOLS</strong> があります。引数構成も同じで、見た目もそっくり。違いは「折り返しの方向」だけです。</p>



<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>データの流れ</td><td>左→右、次の行へ</td><td>上→下、次の列へ</td></tr><tr><td>結果の形状</td><td>横長になりやすい</td><td>縦長になりやすい</td></tr><tr><td>wrap_countの意味</td><td>各行の要素数（=列数）</td><td>各列の要素数（=行数）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">例えば「1, 2, 3, 4, 5, 6」を wrap_count=3 で折り返した場合、結果は次のように違います。</p>



<p class="wp-block-paragraph"><strong>WRAPROWS（横に折り返す）</strong></p>



<figure class="wp-block-table"><table><thead><tr><th>列1</th><th>列2</th><th>列3</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>



<p class="wp-block-paragraph"><strong>WRAPCOLS（縦に折り返す）</strong></p>



<figure class="wp-block-table"><table><thead><tr><th>列1</th><th>列2</th></tr></thead><tbody><tr><td>1</td><td>4</td></tr><tr><td>2</td><td>5</td></tr><tr><td>3</td><td>6</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>迷ったら「結果を <strong>横長</strong> にしたいか <strong>縦長</strong> にしたいか」で選ぶと判断しやすいです。週単位の表やカレンダー風レイアウトには WRAPROWS、印刷用に縦に並べた商品リストには <a href="https://mashukabu.com/excel-wrapcols/">WRAPCOLS</a>、と覚えておきましょう。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc8">バージョン対応の注意点</span></h2>



<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（サブスクリプション版）</td><td>対応</td></tr><tr><td>Excel 2024（買い切り版）</td><td>対応</td></tr><tr><td>Excel 2021 / 2019 / 2016 / 2013</td><td>非対応</td></tr><tr><td>Excel for the web</td><td>対応</td></tr><tr><td>Excel Mobile（iOS/Android）</td><td>対応</td></tr><tr><td>Google Sheets</td><td>対応（2023年2月以降）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Excel 2021以前のバージョンでは、WRAPROWSという関数自体が存在しないため <code>#NAME?</code> エラーになります。古い環境のユーザーとファイルを共有する場合は、以下の代替方法を検討しましょう。</p>



<ul class="wp-block-list"><li>INDEX関数 + ROW・COLUMN関数で手動配置する</li><li>Power Query で配列を整形する</li><li>VBAマクロで対応する</li></ul>



<h3 class="wp-block-heading"><span id="toc9">Google Sheetsでも使える</span></h3>



<p class="wp-block-paragraph">WRAPROWSは2023年2月にGoogle Sheetsにも追加されました。引数の構成や動作は Excel 版とほぼ同じです。Google Sheets と Excel を行き来するワークフローでも、配列の折り返し処理を共通の関数で書けます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>WARNING</strong></p><p>WRAPROWSを使った数式が入ったブックを Excel 2021 以前で開くと <code>#NAME?</code> エラーになります。共有先の環境がわからない場合は、結果を「値貼り付け」で確定してから渡すのが安全です。Google Sheets ユーザーとの共有ではこの問題は起きませんが、CSV や XLSX で受け渡しする際の Excel 旧版の存在には注意しましょう。</p></blockquote>



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



<p class="wp-block-paragraph">WRAPROWS関数で発生しやすいエラーをまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td><code>#VALUE!</code></td><td>vector に2次元配列を指定した</td><td>1次元配列（縦1列または横1行）を指定する</td></tr><tr><td><code>#NUM!</code></td><td>wrap_count が 1 未満（0 や負の数）</td><td>wrap_count に 1 以上の整数を指定する</td></tr><tr><td><code>#N/A</code></td><td>端数セルで pad_with を省略した</td><td>pad_with に <code>""</code> や <code>0</code> などを指定する</td></tr><tr><td><code>#NAME?</code></td><td>Excel 2021以前で WRAPROWS を使った</td><td>Microsoft 365 / Excel 2024 にアップグレードする</td></tr><tr><td><code>#SPILL!</code></td><td>スピル先のセルにデータが入っている</td><td>出力範囲のセルを空にする</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">特に多いのが、すでに2次元配列のデータ（複数行×複数列のセル範囲）を vector に渡してしまう <code>#VALUE!</code> エラーです。</p>



<p class="wp-block-paragraph">WRAPROWSは <strong>1次元配列専用</strong> の関数なので、もし2次元データを横1行に並べ直したい場合は、先に TOROW関数 で1行に変換してから WRAPROWS にかける、という二段構えが有効です。</p>



<h2 class="wp-block-heading"><span id="toc11">関連関数</span></h2>



<p class="wp-block-paragraph">WRAPROWSと組み合わせて使うことが多い関数を整理しておきます。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>役割</th></tr></thead><tbody><tr><td><a href="https://mashukabu.com/excel-wrapcols/">WRAPCOLS</a></td><td>1次元配列を列方向（縦）に折り返して2次元配列にする</td></tr><tr><td>TOROW</td><td>2次元配列を横1行の1次元配列に変換する</td></tr><tr><td>TOCOL</td><td>2次元配列を縦1列の1次元配列に変換する</td></tr><tr><td>SEQUENCE</td><td>連続する数値の配列を生成する</td></tr><tr><td>CHOOSEROWS</td><td>配列から指定した行だけを抽出する</td></tr><tr><td>CHOOSECOLS</td><td>配列から指定した列だけを抽出する</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">「2次元データを1行に並べ直してから、別の形に折り返す」流れでは、TOROW関数 → WRAPROWSの組み合わせが定番です。逆に、縦方向に折り返したいときは <a href="https://mashukabu.com/excel-wrapcols/">WRAPCOLS関数</a> を使います。連番の表を作るときは SEQUENCE関数 との合わせ技も覚えておきましょう。</p>



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



<p class="wp-block-paragraph">ExcelのWRAPROWS関数は、横1行（または縦1列）のデータを複数行の表に整形できる便利な関数です。要点を整理すると次のとおりです。</p>



<ul class="wp-block-list"><li><strong>構文</strong>: <code>=WRAPROWS(vector, wrap_count, [pad_with])</code></li><li><strong>動作</strong>: 1次元配列を <strong>左から右へ</strong> 折り返し、次の行へ移っていく</li><li><strong>wrap_count</strong>: 各行の要素数（=折り返したときの列数）を指定</li><li><strong>pad_with</strong>: 端数セルを埋める値（省略時は <code>#N/A</code>）</li><li><strong>対応環境</strong>: Microsoft 365 / Excel 2024 / Google Sheets（Excel 2021以前は非対応）</li></ul>



<p class="wp-block-paragraph">日付リストを週単位の表にする・連番テンプレートを生成する・長いデータ列を読みやすい表に整形する、といった場面で活躍します。元データを書き換えれば結果も自動で更新されるので、毎週繰り返す帳票やダッシュボードにもぴったり。</p>



<p class="wp-block-paragraph">縦方向に折り返したい場合は <a href="https://mashukabu.com/excel-wrapcols/">WRAPCOLS関数</a> を、2次元データを先に1行にまとめたい場合は TOROW関数 を組み合わせると、配列操作の幅がぐっと広がります。連番表を作るなら SEQUENCE関数 との組み合わせもおすすめです。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-wraprows/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<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-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">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-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">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-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">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-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">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のMAP関数の使い方｜BYROWとの違いと使い分け</title>
		<link>https://mashukabu.com/excel-function-howto-use-map/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-map/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sun, 12 Apr 2026 12:10:21 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[LAMBDA]]></category>
		<category><![CDATA[LAMBDAヘルパー関数]]></category>
		<category><![CDATA[MAP関数]]></category>
		<category><![CDATA[Microsoft 365]]></category>
		<category><![CDATA[スピル]]></category>
		<category><![CDATA[中級者向け]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=5903</guid>

					<description><![CDATA[ExcelのMAP関数の使い方を中級者向けに解説。配列のセル単位変換や複数配列の組み合わせを実例付きで紹介。BYROW・BYCOL・REDUCEとの違いを比較表で整理し「どの関数を使うべきか」を明確にします。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">ExcelでLAMBDAやBYROWを触ってみたものの、「MAP関数って結局何が便利なの？」と感じていませんか。BYROWと似ているようで、実は役割がまったく違います。</p>



<p class="wp-block-paragraph">「行ごとの合計ならBYROWでいいけど、セル単位で値を変換したいときはどう書けばいいんだろう？」——これはMAP関数の出番です。公式ドキュメントだけでは違いが分かりづらく、どちらを使うべきか迷う方も多いはずです。</p>



<p class="wp-block-paragraph">この記事では、ExcelのMAP関数の使い方を構文から実務例まで中級者向けに解説します。BYROW・BYCOL・REDUCEとの違いを3軸で整理し、「セル単位変換ならMAP、行単位集計ならBYROW」という判断基準を明確にします。読み終わるころには、LAMBDAヘルパー関数グループを自信を持って使い分けられるようになります。</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">MAP関数とは？</a><ol><li><a href="#toc2" tabindex="0">LAMBDAヘルパー関数グループとは</a></li><li><a href="#toc3" tabindex="0">BYROW・BYCOL・REDUCEとの違いを3軸比較表で整理</a></li></ol></li><li><a href="#toc4" tabindex="0">MAP関数の書き方（構文と引数）</a><ol><li><a href="#toc5" tabindex="0">基本構文</a></li><li><a href="#toc6" tabindex="0">引数の詳細</a></li><li><a href="#toc7" tabindex="0">BYROW・BYCOLとの構文の違い</a></li></ol></li><li><a href="#toc8" tabindex="0">MAP関数の基本的な使い方</a><ol><li><a href="#toc9" tabindex="0">単一配列のセル単位変換（掛け算・条件分岐）</a></li><li><a href="#toc10" tabindex="0">複数配列を組み合わせる（2列を演算して新配列を作る）</a></li></ol></li><li><a href="#toc11" tabindex="0">MAP関数の実務活用例</a><ol><li><a href="#toc12" tabindex="0">単価×数量を1つの数式でまとめて計算</a></li><li><a href="#toc13" tabindex="0">文字列の条件変換（フラグ付与）</a></li><li><a href="#toc14" tabindex="0">IFとの組み合わせ</a></li></ol></li><li><a href="#toc15" tabindex="0">BYROWとMAPはどちらを使うべきか？</a><ol><li><a href="#toc16" tabindex="0">行単位集計 vs セル単位変換</a></li><li><a href="#toc17" tabindex="0">判断フローチャート</a></li></ol></li><li><a href="#toc18" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc19" tabindex="0">#SPILL!エラー</a></li><li><a href="#toc20" tabindex="0">#VALUE!エラー</a></li><li><a href="#toc21" tabindex="0">#N/Aエラー（複数配列のサイズ不一致）</a></li></ol></li><li><a href="#toc22" tabindex="0">Google スプレッドシートのMAP関数との違い</a></li><li><a href="#toc23" tabindex="0">よくある質問（MAP関数）</a><ol><li><a href="#toc24" tabindex="0">Q1. MAP関数はExcel 2021では使えませんか？</a></li><li><a href="#toc25" tabindex="0">Q2. MAP関数内のLAMBDAにSUMやAVERAGEを使うことはできますか？</a></li><li><a href="#toc26" tabindex="0">Q3. MAPで生成した配列を別の数式の入力に使えますか？</a></li></ol></li><li><a href="#toc27" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">MAP関数は「マップ」と読みます。英語の&#8221;map&#8221;はプログラミング用語で「配列の各要素に関数を適用する操作」を意味し、Excel関数名もこの概念から命名されています。</p>



<p class="wp-block-paragraph">ExcelのMAP関数は、配列の各セルにLAMBDAを適用し、<strong>同じサイズの新しい配列を返す</strong>関数です。LAMBDA（無名関数を定義するためのExcel関数）と組み合わせて使います。Microsoft 365で導入されたLAMBDAヘルパー関数の1つで、セル単位の一括変換を1つの数式で実現できます。</p>



<p class="wp-block-paragraph">たとえばA1:C2の6セルすべてを二乗したい場合、通常はD1にセル参照の数式を書いてコピーする必要があります。MAPを使えば、1つの数式で6セル分の計算結果をスピル（自動展開）できます。これがMAPの最大の魅力です。</p>



<p class="wp-block-paragraph">ポイントは「入力配列と出力配列のサイズが同じ」という性質です。行数も列数も変わらず、各セルの値だけが変換されます。この性質が、BYROWやBYCOLとの決定的な違いになります。</p>



<h3 class="wp-block-heading"><span id="toc2">LAMBDAヘルパー関数グループとは</span></h3>



<p class="wp-block-paragraph">LAMBDAヘルパー関数とは、LAMBDA関数と組み合わせて使う前提で設計された関数群の総称です。具体的には以下の6つが該当します。</p>



<ul class="wp-block-list"><li>MAP：各セルにLAMBDAを適用して変換</li><li>BYROW：行ごとにLAMBDAを適用して集計</li><li>BYCOL：列ごとにLAMBDAを適用して集計</li><li>REDUCE：配列全体を1つの値に集約</li><li>SCAN：累積計算の途中経過をすべて返す</li><li>MAKEARRAY：指定したサイズの配列をゼロから生成</li></ul>



<p class="wp-block-paragraph">これらは2022年頃にExcel Microsoft 365とGoogleスプレッドシートの両方で導入されました。LAMBDA関数の基本を押さえておくと理解が早いので、初めての方は先に<a href="https://mashukabu.com/excel-function-howto-use-lambda/">LAMBDA関数の基本記事</a>を読んでおくとスムーズです。</p>



<h3 class="wp-block-heading"><span id="toc3">BYROW・BYCOL・REDUCEとの違いを3軸比較表で整理</span></h3>



<p class="wp-block-paragraph">MAPを正しく使い分けるには、似た仲間であるBYROW・BYCOL・REDUCEとの違いを把握することが近道です。下の表では「目的」「処理単位」「戻り値の形」の3軸で整理しました。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>目的</th><th>処理単位</th><th>戻り値の形</th></tr></thead><tbody><tr><td>MAP</td><td>セルごとに変換</td><td>1セル</td><td>入力と同じサイズ</td></tr><tr><td>BYROW</td><td>行ごとに集計</td><td>1行</td><td>N行×1列（縦1列）</td></tr><tr><td>BYCOL</td><td>列ごとに集計</td><td>1列</td><td>1行×N列（横1行）</td></tr><tr><td>REDUCE</td><td>全体を1値に集約</td><td>配列全体</td><td>単一の値</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">この表をざっくり覚えておけば、「セル単位の変換か、行や列の集計か、全体の集約か」という観点で瞬時に判断できます。特にMAPだけは<strong>サイズが変わらない</strong>点を意識してください。行単位の集計については<a href="https://mashukabu.com/excel-function-howto-use-byrow/">BYROW関数の記事</a>、列単位の集計については<a href="https://mashukabu.com/excel-function-howto-use-bycol/">BYCOL関数の記事</a>で詳しく解説しています。</p>



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



<p class="wp-block-paragraph">ここからはMAP関数の具体的な構文を見ていきましょう。引数の順番と役割を理解すれば、使い回しが効くようになります。</p>



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



<p class="wp-block-paragraph">MAP関数の公式な構文は以下のとおりです。</p>



<pre class="wp-block-code"><code>=MAP(配列1, [配列2, ...], LAMBDA(変数1, [変数2, ...], 計算式))</code></pre>



<p class="wp-block-paragraph">一見複雑に見えますが、やっていることはシンプルです。配列を1つ以上渡し、最後の引数でLAMBDAを使って「各セルに何をするか」を定義するだけです。最もシンプルな例を見てみましょう。</p>



<pre class="wp-block-code"><code>=MAP(A1:A5, LAMBDA(x, x*2))</code></pre>



<p class="wp-block-paragraph">この数式は、A1:A5の各セルの値を2倍にした新しい配列を返します。xといった変数名はLAMBDA内で自由に命名できます。</p>



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



<p class="wp-block-paragraph">引数の意味を整理すると次のとおりです。</p>



<ul class="wp-block-list"><li><strong>配列1</strong>（必須）：変換したい1つ目の配列。範囲やテーブル列を指定します</li><li><strong>配列2, &#8230;</strong>（任意）：複数配列を扱う場合に追加。すべて同じサイズである必要があります</li><li><strong>LAMBDA</strong>（必須）：最後の引数。配列の数と同じ個数の変数を受け取り、計算式を定義します</li></ul>



<p class="wp-block-paragraph">重要なルールが2つあります。<strong>LAMBDAは必ず最後の引数</strong>でなければなりません。また、配列の個数とLAMBDAの変数の個数は必ず一致させてください。不一致の場合は<code>#VALUE!</code>エラーが発生します。</p>



<h3 class="wp-block-heading"><span id="toc7">BYROW・BYCOLとの構文の違い</span></h3>



<p class="wp-block-paragraph">BYROWやBYCOLとの構文の違いも確認しておきましょう。並べて見るとイメージが掴みやすくなります。</p>



<pre class="wp-block-code"><code>=MAP(A1:C3, LAMBDA(cell, cell*2))      // 各セルを2倍
=BYROW(A1:C3, LAMBDA(row, SUM(row)))   // 各行を合計
=BYCOL(A1:C3, LAMBDA(col, SUM(col)))   // 各列を合計</code></pre>



<p class="wp-block-paragraph">MAPはLAMBDAに1セルずつ渡すのに対し、BYROW・BYCOLは行や列の<strong>範囲ごと</strong>渡します。そのためLAMBDA内でSUMやAVERAGEなどの集計関数を使うのが自然です。ここが両者の大きな違いです。</p>



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



<p class="wp-block-paragraph">構文が分かったところで、実際の使い方を2パターン見ていきましょう。単一配列と複数配列のケースを押さえれば、応用が効くようになります。</p>



<h3 class="wp-block-heading"><span id="toc9">単一配列のセル単位変換（掛け算・条件分岐）</span></h3>



<p class="wp-block-paragraph">まずは1つの配列を変換する基本パターンです。Microsoftの公式ドキュメントで紹介されている例を見てみましょう。</p>



<pre class="wp-block-code"><code>=MAP(A1:C2, LAMBDA(a, IF(a&gt;4, a*a, a)))</code></pre>



<p class="wp-block-paragraph">この数式は、A1:C2の各セルについて「4より大きければ二乗、それ以外はそのまま返す」という条件分岐を行います。2行3列の入力に対し、同じ2行3列の結果がスピルで返ります。</p>



<p class="wp-block-paragraph">ポイントはLAMBDA内で<code>IF</code>を使っている点です。MAPのLAMBDAには任意のExcel関数が使えるので、条件分岐や関数の組み合わせも自由に書けます。単純な掛け算だけでなく、複雑な変換ロジックを1つの数式にまとめられるのが強みです。</p>



<h3 class="wp-block-heading"><span id="toc10">複数配列を組み合わせる（2列を演算して新配列を作る）</span></h3>



<p class="wp-block-paragraph">MAPは複数の配列を同時に処理することもできます。公式の使用例を見てみましょう。</p>



<pre class="wp-block-code"><code>=MAP(TableA[Col1], TableA[Col2], LAMBDA(a, b, AND(a, b)))</code></pre>



<p class="wp-block-paragraph">この数式はテーブルの2つの列を同時に読み込み、両方がTRUEであるかを判定した新しい列を返します。LAMBDAの変数<code>a</code>が1列目、<code>b</code>が2列目の値を受け取ります。</p>



<p class="wp-block-paragraph">複数配列を使うときの注意点は2つあります。まず<strong>すべての配列が同じサイズ</strong>である必要があります。次にLAMBDAの変数の個数と配列の個数を必ず一致させることです。サイズが違うと<code>#N/A</code>、変数の個数が違うと<code>#VALUE!</code>が発生します。</p>



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



<p class="wp-block-paragraph">ここからは実際の業務で使える具体例を見ていきましょう。MAP関数の真価は、日常業務の「ちょっとしたセル単位変換」を1つの数式で片付けられる点にあります。</p>



<h3 class="wp-block-heading"><span id="toc12">単価×数量を1つの数式でまとめて計算</span></h3>



<p class="wp-block-paragraph">よくある売上集計のシーンです。B列に単価、C列に数量があるとき、行ごとの金額を1つの数式でまとめて計算できます。</p>



<pre class="wp-block-code"><code>=MAP(B2:B11, C2:C11, LAMBDA(price, qty, price*qty))</code></pre>



<p class="wp-block-paragraph">従来は<code>=B2*C2</code>をD列にコピーする必要がありましたが、MAPなら1つの数式で済みます。数式の編集箇所が1つに集約され、メンテナンス性が大きく向上します。</p>



<p class="wp-block-paragraph">さらに消費税込みの金額を返したい場合も、LAMBDA内で調整するだけです。<code>LAMBDA(price, qty, price<em>qty</em>1.1)</code>のように書けば、10%の税込み価格を一括計算できます。</p>



<h3 class="wp-block-heading"><span id="toc13">文字列の条件変換（フラグ付与）</span></h3>



<p class="wp-block-paragraph">文字列操作にもMAPは強力です。たとえばA列のステータスに応じて「対応要」「保留」「完了」といったラベルを付けたい場合を考えます。</p>



<pre class="wp-block-code"><code>=MAP(A2:A20, LAMBDA(s, IF(s=&quot;NG&quot;, &quot;対応要&quot;, IF(s=&quot;保留&quot;, &quot;保留&quot;, &quot;完了&quot;))))</code></pre>



<p class="wp-block-paragraph">この数式はA列の各セルを読み取り、条件に応じてラベル文字列を返します。結果はA2:A20と同じサイズの配列としてスピルされるため、ラベル列を別途手動で埋める必要がありません。</p>



<p class="wp-block-paragraph">特にデータクレンジングや前処理のフェーズで威力を発揮します。元データを触らずに変換後の値を別の位置に表示できるので、監査対応にも便利です。</p>



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



<p class="wp-block-paragraph">MAPとIFは相性がよく、条件分岐を含む変換が頻繁に登場します。たとえば閾値に応じて変換ルールを切り替えたい場合はこのように書けます。</p>



<pre class="wp-block-code"><code>=MAP(A1:C2, LAMBDA(a, IF(a&gt;4, a*a, a*2)))</code></pre>



<p class="wp-block-paragraph">この数式は、4より大きい値は二乗、それ以下は2倍というルールで変換します。閾値や計算式を変えるだけで、さまざまなビジネスロジックに応用できます。</p>



<p class="wp-block-paragraph">もう一歩進んで、FILTERと組み合わせれば複数条件の絞り込みも実現できます。</p>



<pre class="wp-block-code"><code>=FILTER(D2:E11, MAP(D2:D11, E2:E11, LAMBDA(s, c, AND(s=&quot;Large&quot;, c=&quot;Red&quot;))))</code></pre>



<p class="wp-block-paragraph">この数式はD列が「Large」かつE列が「Red」の行だけを抽出します。MAPがTRUE/FALSEの配列を作り、FILTERの条件として機能する仕組みです。</p>



<h2 class="wp-block-heading"><span id="toc15">BYROWとMAPはどちらを使うべきか？</span></h2>



<p class="wp-block-paragraph">この記事の核心部分です。「BYROWとMAP、結局どちらを使うべき？」という問いに、明確な答えを出しておきます。</p>



<h3 class="wp-block-heading"><span id="toc16">行単位集計 vs セル単位変換</span></h3>



<p class="wp-block-paragraph">答えはシンプルです。<strong>行ごとに1つの値へ集計したいならBYROW、セル単位で値を変換したいならMAP</strong>です。</p>



<p class="wp-block-paragraph">たとえばB:D列に売上3ヶ月分があり「各行の3ヶ月合計」を出したいなら、行単位集計なのでBYROWです。</p>



<pre class="wp-block-code"><code>=BYROW(B2:D11, LAMBDA(row, SUM(row)))</code></pre>



<p class="wp-block-paragraph">結果は10行×1列の縦1列として返ります。一方「各セルを税込み価格に変換したい」なら、セル単位変換なのでMAPです。</p>



<pre class="wp-block-code"><code>=MAP(B2:D11, LAMBDA(cell, cell*1.1))</code></pre>



<p class="wp-block-paragraph">結果は10行×3列と、入力と同じサイズで返ります。戻り値の形が違うので、後続の数式やレイアウトにも影響します。</p>



<h3 class="wp-block-heading"><span id="toc17">判断フローチャート</span></h3>



<p class="wp-block-paragraph">迷ったときは以下の順で判断すると確実です。</p>



<ol class="wp-block-list"><li><strong>出力のサイズを考える</strong>：入力と同じ形にしたい → MAP／縦1列にしたい → BYROW／横1行にしたい → BYCOL／1つの値にしたい → REDUCE</li><li><strong>処理単位を考える</strong>：1セルずつ → MAP／1行まとめて → BYROW／1列まとめて → BYCOL</li><li><strong>LAMBDAに集計関数を使うか</strong>：使わない → MAPの可能性が高い／SUM・AVERAGEなどを使う → BYROWやBYCOLの可能性が高い</li></ol>



<p class="wp-block-paragraph">この3ステップで大半の迷いは解消します。「戻り値の形」から逆算して考えるとミスが減ります。</p>



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



<p class="wp-block-paragraph">MAP関数を使い始めると、いくつかのエラーに遭遇することがあります。公式ドキュメントに明記されているエラーを中心に、対処法をまとめました。</p>



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



<p class="wp-block-paragraph"><code>#SPILL!</code>はスピル範囲に障害物があるときに発生します。MAPは入力と同じサイズの配列を返すため、出力先のセルが他の値で埋まっているとこのエラーになります。</p>



<p class="wp-block-paragraph">対処法はシンプルで、スピル先のセルを空けるだけです。数式を入れたセルの下や右に余計な値が残っていないか確認しましょう。</p>



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



<p class="wp-block-paragraph"><code>#VALUE!</code>はLAMBDAの書き方が正しくないときに発生します。公式ドキュメントでは「Incorrect Parameters（パラメータ数不正）」として説明されています。</p>



<p class="wp-block-paragraph">よくある原因は、配列の個数とLAMBDAの変数の個数が一致していないケースです。たとえば<code>=MAP(A1:A5, B1:B5, LAMBDA(a, a<em>2))</code>のように、配列が2つなのに変数が1つだとエラーになります。正しくは<code>LAMBDA(a, b, a</em>b)</code>のように変数を2つ書きます。</p>



<p class="wp-block-paragraph">また<code>#CALC!</code>エラーが出る場合は、LAMBDA内部が配列を返してしまっているケースです。MAPのLAMBDAは「1セルにつき1つの値」を返す必要があります。</p>



<h3 class="wp-block-heading"><span id="toc21">#N/Aエラー（複数配列のサイズ不一致）</span></h3>



<p class="wp-block-paragraph"><code>#N/A</code>は複数配列のサイズが異なるときに、不一致のセルで発生します。たとえば<code>=MAP(A1:A10, B1:B8, LAMBDA(a, b, a+b))</code>のように行数が違うと、9行目と10行目が<code>#N/A</code>になります。</p>



<p class="wp-block-paragraph">対処法は、すべての配列を<strong>まったく同じサイズ</strong>に揃えることです。範囲選択時にはセルの行数・列数を必ず確認しましょう。</p>



<p class="wp-block-paragraph">なお<code>#NAME?</code>エラーが出る場合は、お使いのExcelがMAP関数に対応していない可能性が高いです。MAP関数が使えるのはExcel Microsoft 365・Excel for the web・Excel 2024です。Excel 2021以前は非対応です。</p>



<h2 class="wp-block-heading"><span id="toc22">Google スプレッドシートのMAP関数との違い</span></h2>



<p class="wp-block-paragraph">GoogleスプレッドシートにもMAP関数があり、構文はExcelとほぼ同一です。<code>=MAP(配列1, LAMBDA(x, 計算式))</code>という基本形はそのまま通用します。複数配列への対応も同様です。</p>



<p class="wp-block-paragraph">主な違いは2点あります。1つは<strong>スピルの扱い</strong>です。Excel版はテーブル内でスピル系関数が使えないという制約がありますが、Sheets版にはこの制約がなく<code>#SPILL!</code>も発生しにくい傾向があります。</p>



<p class="wp-block-paragraph">もう1つは<strong>関連エコシステム</strong>の違いです。Sheets版はArrayFormulaとの組み合わせなど、スプレッドシート独自の配列処理との相互作用があります。両ツールを併用している方は、スプレッドシート版MAP関数の記事と読み比べると理解が深まります。</p>



<p class="wp-block-paragraph">基本的な思想は同じなので、Excelで覚えた使い方はSheetsでもほぼそのまま通用します。LAMBDAヘルパー関数はクラウド時代の表計算の共通語だと考えてよいでしょう。</p>



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



<h3 class="wp-block-heading"><span id="toc24">Q1. MAP関数はExcel 2021では使えませんか？</span></h3>



<p class="wp-block-paragraph">使えません。MAP関数はMicrosoft 365・Excel for the web・Excel 2024でのみ動作します。Excel 2021以前はLAMBDA関数自体に対応していないため、MAP関数も利用できません。</p>



<p class="wp-block-paragraph">Excel 2021以前で似た処理をしたい場合は、セルごとに数式を入力してコピーする従来の方法を使うことになります。Microsoft 365に移行できる環境であれば、MAP関数をはじめとするLAMBDAヘルパー関数が一気に使えるようになりますよ。</p>



<h3 class="wp-block-heading"><span id="toc25">Q2. MAP関数内のLAMBDAにSUMやAVERAGEを使うことはできますか？</span></h3>



<p class="wp-block-paragraph">使えますが、用途によっては別の関数の方が適しています。</p>



<p class="wp-block-paragraph">MAP関数は「1セルに対して1つの値を返す」設計のため、LAMBDA内でSUMやAVERAGEを書くと、1つのセルに配列全体の合計や平均が入力されます。これは「各行のSUMを計算して縦1列に返す」BYROWの役割とは異なります。</p>



<p class="wp-block-paragraph">行ごとの合計を縦1列で取得したいなら<a href="https://mashukabu.com/excel-function-howto-use-byrow/">BYROW関数</a>、列ごとの合計を横1行で取得したいなら<a href="https://mashukabu.com/excel-function-howto-use-bycol/">BYCOL関数</a>を使いましょう。</p>



<h3 class="wp-block-heading"><span id="toc26">Q3. MAPで生成した配列を別の数式の入力に使えますか？</span></h3>



<p class="wp-block-paragraph">使えます。MAPがスピルした配列全体を参照するには、数式があるセル番地に<code>#</code>を付けた「スピル演算子」を使います。</p>



<p class="wp-block-paragraph">たとえばMAP関数がセルD2に入っていて税込み価格の配列を返している場合、<code>=SUM(D2#)</code> と書くとその配列全体の合計が求まります。<code>D2#</code> がスピル配列全体への参照です。</p>



<p class="wp-block-paragraph">この書き方を覚えると、MAPで変換した配列をSUMやAVERAGEへの入力として連結でき、複雑な集計も1つのフローで完結させられますよ。</p>



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



<p class="wp-block-paragraph">ExcelのMAP関数は、配列の各セルにLAMBDAを適用して<strong>同じサイズの新しい配列を返す</strong>関数です。セル単位の一括変換を1つの数式で実現できる点が最大の魅力です。</p>



<p class="wp-block-paragraph">この記事のポイントを振り返ります。</p>



<ul class="wp-block-list"><li><strong>構文</strong>：<code>=MAP(配列1, [配列2, ...], LAMBDA(変数1, [変数2, ...], 計算式))</code>。LAMBDAは必ず最後の引数</li><li><strong>戻り値</strong>：入力配列と同じサイズ。MAPだけはサイズが縮まない</li><li><strong>使い分け</strong>：セル単位変換ならMAP、行単位集計なら<a href="https://mashukabu.com/excel-function-howto-use-byrow/">BYROW</a>、列単位集計なら<a href="https://mashukabu.com/excel-function-howto-use-bycol/">BYCOL</a>、全体集約ならREDUCE</li><li><strong>対応バージョン</strong>：Microsoft 365 / Excel for the web / Excel 2024。Excel 2021以前は非対応</li><li><strong>よくあるエラー</strong>：<code>#VALUE!</code>（変数の個数不一致）、<code>#N/A</code>（配列サイズ不一致）、<code>#NAME?</code>（バージョン非対応）、<code>#SPILL!</code>（スピル範囲障害）</li></ul>



<p class="wp-block-paragraph">「BYROWとMAPどちらを使うべきか？」に迷ったら、出力の形から逆算して判断してください。入力と同じ形にしたいならMAP、縦1列にしたいならBYROWです。この判断軸を覚えておけば、LAMBDAヘルパー関数を自在に使いこなせます。</p>



<p class="wp-block-paragraph">LAMBDA関数の基本をさらに学びたい方は<a href="https://mashukabu.com/excel-function-howto-use-lambda/">LAMBDA関数の解説記事</a>を、行や列の集計を深掘りしたい方は<a href="https://mashukabu.com/excel-function-howto-use-byrow/">BYROW</a>・<a href="https://mashukabu.com/excel-function-howto-use-bycol/">BYCOL</a>の記事もあわせてご覧ください。LAMBDAヘルパー関数クラスター全体を押さえれば、Excelの配列処理は一段上のレベルに到達します。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-map/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのBYROW関数の使い方｜行ごとに関数を適用</title>
		<link>https://mashukabu.com/excel-function-howto-use-byrow/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-byrow/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sun, 12 Apr 2026 12:10:17 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[BYROW]]></category>
		<category><![CDATA[LAMBDA]]></category>
		<category><![CDATA[Microsoft 365]]></category>
		<category><![CDATA[スピル]]></category>
		<category><![CDATA[中級者向け]]></category>
		<category><![CDATA[行集計]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=5901</guid>

					<description><![CDATA[ExcelのBYROW関数の使い方を初心者向けに解説。行ごとにSUM・AVERAGEを一発で集計できます。BYCOL関数との違いをわかりやすい比較表で整理。#SPILL!・#VALUE!・#CALC!エラーの対処法も網羅しています。]]></description>
										<content:encoded><![CDATA[

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-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">はじめに</a></li><li><a href="#toc2" tabindex="0">BYROW関数とは？</a><ol><li><a href="#toc3" tabindex="0">BYCOLとの違いを比較表で確認</a></li><li><a href="#toc4" tabindex="0">対応バージョン（Microsoft 365 / Excel 2024）</a></li></ol></li><li><a href="#toc5" tabindex="0">BYROW関数の書き方</a><ol><li><a href="#toc6" tabindex="0">構文と引数の説明</a></li><li><a href="#toc7" tabindex="0">LAMBDAが必須な理由</a></li></ol></li><li><a href="#toc8" tabindex="0">基本の使い方</a><ol><li><a href="#toc9" tabindex="0">行ごとの合計（SUM）</a></li><li><a href="#toc10" tabindex="0">行ごとの平均（AVERAGE）</a></li><li><a href="#toc11" tabindex="0">行ごとの最大値（MAX）</a></li></ol></li><li><a href="#toc12" tabindex="0">応用例</a><ol><li><a href="#toc13" tabindex="0">BYROW × IFで条件付き行集計</a></li><li><a href="#toc14" tabindex="0">複合計算をネストする</a></li><li><a href="#toc15" tabindex="0">行ごとの最大値・条件付き集計（MAXIFS/MINIFS同等）</a></li><li><a href="#toc16" tabindex="0">行ごとの空白カウント・入力チェック</a></li></ol></li><li><a href="#toc17" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc18" tabindex="0">#SPILL! エラー</a></li><li><a href="#toc19" tabindex="0">#VALUE! エラー</a></li><li><a href="#toc20" tabindex="0">#CALC! エラー</a></li><li><a href="#toc21" tabindex="0">#NAME? エラー</a></li></ol></li><li><a href="#toc22" tabindex="0">よくある質問（FAQ）</a><ol><li><a href="#toc23" tabindex="0">Q: BYROW関数はGoogleスプレッドシートでも使えますか？</a></li><li><a href="#toc24" tabindex="0">Q: BYROW内でIF関数を使えますか？</a></li><li><a href="#toc25" tabindex="0">Q: BYROWの結果を合計（SUMBYROW）したい場合は？</a></li></ol></li><li><a href="#toc26" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">はじめに</span></h2>



<p class="wp-block-paragraph">ExcelでSUMやAVERAGEを行ごとに何十行もコピペして集計していませんか。行が増えるたびに数式を貼り直すのは地味に時間がかかります。そして1箇所ズレるだけで集計ミスが発生することもありますよね。</p>



<p class="wp-block-paragraph">そんな課題を一発で解決してくれるのが、Microsoft 365に搭載されている<strong>BYROW関数</strong>です。BYROW関数を使えば、表全体に対して「行ごとに合計」「行ごとに平均」といった処理を、1つの数式でまとめて実行できます。スピル（数式の結果が自動で隣接セルに展開される機能）によって、結果は縦1列にきれいに並びます。</p>



<p class="wp-block-paragraph">この記事では、BYROW関数の構文から基本の使い方、BYCOL関数との違い、エラー対処法までを網羅的に解説します。実務ですぐ使えるサンプルを中心にまとめました。読み終わる頃には、行ごとの集計を「1つの数式でサクッと片付けられる人」になっているはずです。</p>



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



<p class="wp-block-paragraph">BYROW関数（読み方：バイロウ）は、配列の各行に対してLAMBDA関数を適用し、1列の配列として結果を返す関数です。関数名は「BY（〜ごとに）＋ROW（行）」に由来します。LAMBDA関数とは、自作の処理を関数化する仕組みのことです。</p>



<p class="wp-block-paragraph">たとえば「3行×4列の売上表」に対してBYROWでSUMを適用すると、各行の合計値が縦1列に3つ並びます。従来のSUMをD1、D2、D3&#8230;と個別にコピペしていた作業を、1つの数式に置き換えられるのが最大のメリットです。</p>



<p class="wp-block-paragraph">BYROW関数は<strong>LAMBDAヘルパー関数</strong>と呼ばれるグループの1つです。2022年2月にMicrosoft 365向けに追加されました。同じグループにはBYCOL、MAP、REDUCE、SCAN、MAKEARRAY、ISOMITTEDがあります。いずれもLAMBDAと組み合わせて配列処理を柔軟に行うための関数です。</p>



<p class="wp-block-paragraph">スピル機能を前提としているため、1つのセルに数式を入力するだけで結果が自動展開されます。行数が可変のデータでも、数式側を書き換える必要はほぼありません。</p>



<h3 class="wp-block-heading"><span id="toc3">BYCOLとの違いを比較表で確認</span></h3>



<p class="wp-block-paragraph">BYROWとBYCOLは兄弟のような関係で、処理の向きが違うだけで構造はほぼ同じです。どちらを使うべきか迷ったら、下の比較表でサクッと整理しましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較軸</th><th>BYROW</th><th>BYCOL</th></tr></thead><tbody><tr><td>処理単位</td><td>行ごと</td><td>列ごと</td></tr><tr><td>戻り値のサイズ</td><td>1列×N行（縦長）</td><td>N列×1行（横長）</td></tr><tr><td>スピル方向</td><td>縦方向</td><td>横方向</td></tr><tr><td>典型用途</td><td>行ごとの合計・平均</td><td>列ごとの月次集計</td></tr><tr><td>LAMBDA引数</td><td>row（1行分の配列）</td><td>col（1列分の配列）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">行ごとの集計（生徒ごとの合計点、商品ごとの売上など）にはBYROW。列ごとの集計（月ごとの売上、項目ごとの平均など）にはBYCOL。こう覚えておけば間違いありません。列方向の処理については<a href="https://mashukabu.com/excel-function-howto-use-bycol/">ExcelのBYCOL関数の使い方</a>で詳しく解説しているので、セットで読むとLAMBDAヘルパー関数の理解が一気に深まります。</p>



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



<p class="wp-block-paragraph">BYROW関数はMicrosoft公式ドキュメントによると、以下の環境で利用できます。</p>



<ul class="wp-block-list"><li>Excel for Microsoft 365</li><li>Excel for Microsoft 365 for Mac</li><li>Excel for the web（ブラウザ版）</li><li>Excel 2024</li><li>Excel 2024 for Mac</li></ul>



<p class="wp-block-paragraph">一方、<strong>Excel 2021やExcel 2019以前では使えません</strong>。古いバージョンで使うと#NAME?エラーが返ります。オフィスのPCが買い切り版の古いExcelだった場合は、Microsoft 365への移行を検討するか、従来のSUM配列数式で代替する必要があります。</p>



<h2 class="wp-block-heading"><span id="toc5">BYROW関数の書き方</span></h2>



<p class="wp-block-paragraph">BYROW関数は引数が2つだけのシンプルな構造です。ただしLAMBDA関数との組み合わせが必須のため、初見だと少し戸惑うかもしれません。ここで構文と引数をしっかり押さえておきましょう。</p>



<h3 class="wp-block-heading"><span id="toc6">構文と引数の説明</span></h3>



<p class="wp-block-paragraph">BYROW関数の公式な構文は次の通りです。</p>



<pre class="wp-block-code"><code>=BYROW(array, lambda(row))</code></pre>



<p class="wp-block-paragraph">2つの引数の役割は以下の通りです。</p>



<ul class="wp-block-list"><li><strong>array</strong>（必須）：処理対象の配列または範囲。たとえば<code>A1:C3</code>のような複数行・複数列の範囲を指定します。</li><li><strong>lambda</strong>（必須）：1つのパラメータ（row）を受け取り、1つの値を返すLAMBDA関数。<code>row</code>には各行が1行分の配列として順番に渡されます。</li></ul>



<p class="wp-block-paragraph">戻り値は「N列×M行の配列」を渡すと「1列×M行の配列」を返します。3行×4列を渡せば、縦に3つ並んだ結果が返ってくるイメージです。</p>



<p class="wp-block-paragraph">具体例で見てみましょう。A1:C3に数値が入っているとします。</p>



<pre class="wp-block-code"><code>=BYROW(A1:C3, LAMBDA(row, SUM(row)))</code></pre>



<p class="wp-block-paragraph">この数式は「A1:C3の各行に対してSUMを適用し、1列×3行の結果を返す」という意味になります。1行目の合計、2行目の合計、3行目の合計が縦に並んでスピルします。</p>



<h3 class="wp-block-heading"><span id="toc7">LAMBDAが必須な理由</span></h3>



<p class="wp-block-paragraph">BYROW関数の第2引数には、必ずLAMBDA関数を渡す必要があります。単に<code>SUM</code>とだけ書いても動作しません。</p>



<pre class="wp-block-code"><code># NG：これは動かない
=BYROW(A1:C3, SUM)

# OK：LAMBDAでラップする
=BYROW(A1:C3, LAMBDA(row, SUM(row)))</code></pre>



<p class="wp-block-paragraph">理由は、BYROWが「各行をどう処理するか」を呼び出し側にカスタマイズさせる設計だからです。LAMBDAを使うことで、SUM以外にもAVERAGEや独自の計算式を自由に組み込めます。LAMBDA関数の基礎が不安な方は、先に<a href="https://mashukabu.com/excel-function-howto-use-lambda/">ExcelのLAMBDA関数の使い方</a>で基本構文を確認しておくとスムーズです。</p>



<p class="wp-block-paragraph">なお、LAMBDAの引数名（ここでは<code>row</code>）は自由に決められます。<code>r</code>でも<code>gyo</code>でも動作しますが、可読性を重視して<code>row</code>にしておくのが無難です。</p>



<h2 class="wp-block-heading"><span id="toc8">基本の使い方</span></h2>



<p class="wp-block-paragraph">ここからは、実務でよく使うSUM・AVERAGE・MAXを例に、BYROW関数の基本パターンを見ていきます。どれも同じ構造で応用が効くので、1つ覚えれば他もすぐ書けるようになります。</p>



<h3 class="wp-block-heading"><span id="toc9">行ごとの合計（SUM）</span></h3>



<p class="wp-block-paragraph">もっとも使用頻度が高いのが、行ごとの合計です。たとえば下のような売上表があるとします。</p>



<figure class="wp-block-table"><table><thead><tr><th>A列</th><th>B列</th><th>C列</th></tr></thead><tbody><tr><td>100</td><td>200</td><td>150</td></tr><tr><td>80</td><td>90</td><td>110</td></tr><tr><td>200</td><td>180</td><td>220</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">この3行それぞれの合計を、D1セルに1つの数式で出すには次のように書きます。</p>



<pre class="wp-block-code"><code>=BYROW(A1:C3, LAMBDA(row, SUM(row)))</code></pre>



<p class="wp-block-paragraph">D1に入力した瞬間、D1には450、D2には280、D3には600がスピルされます。行が増えたら範囲を<code>A1:C10</code>のように広げるだけで、数式のコピペは不要です。</p>



<p class="wp-block-paragraph">従来の方法ではD1に<code>=SUM(A1:C1)</code>と書いてD3まで引っ張る必要がありました。BYROWなら1つの数式で完結するため、数式のメンテナンス性が段違いです。</p>



<h3 class="wp-block-heading"><span id="toc10">行ごとの平均（AVERAGE）</span></h3>



<p class="wp-block-paragraph">平均値もSUMと同じ感覚で書けます。LAMBDAの中身をSUMからAVERAGEに差し替えるだけです。</p>



<pre class="wp-block-code"><code>=BYROW(A1:C3, LAMBDA(row, AVERAGE(row)))</code></pre>



<p class="wp-block-paragraph">上のサンプル表に適用すると、D1には150、D2には約93.3、D3には200が縦に並びます。テストの点数表で生徒ごとの平均点を出したいときなどに、そのまま使えるパターンです。</p>



<p class="wp-block-paragraph">小数点以下を整えたいときはROUND関数でラップできます。<code>LAMBDA(row, ROUND(AVERAGE(row), 1))</code>のように書けば、小数第1位で丸めた結果がスピルします。</p>



<h3 class="wp-block-heading"><span id="toc11">行ごとの最大値（MAX）</span></h3>



<p class="wp-block-paragraph">最大値を取り出すパターンもほぼ同じ構造です。LAMBDAの中でMAXを呼び出します。</p>



<pre class="wp-block-code"><code>=BYROW(A1:C3, LAMBDA(row, MAX(row)))</code></pre>



<p class="wp-block-paragraph">サンプル表に適用すると、D1には200、D2には110、D3には220が返ります。「各行で最も売れた商品の金額」や「生徒ごとの最高点」を一覧化したいときに便利です。</p>



<p class="wp-block-paragraph">同じ要領でMIN・COUNT・COUNTAなども使えます。ポイントは「LAMBDAの中で<code>row</code>を引数として渡せる集計関数なら何でもOK」ということです。</p>



<h2 class="wp-block-heading"><span id="toc12">応用例</span></h2>



<p class="wp-block-paragraph">基本を押さえたら、次は実務で差がつく応用パターンに進みましょう。BYROWはLAMBDAの中に任意の計算式を書けるため、条件付き集計やネスト計算にも対応できます。</p>



<h3 class="wp-block-heading"><span id="toc13">BYROW × IFで条件付き行集計</span></h3>



<p class="wp-block-paragraph">BYROWの強みは、LAMBDAの中にIF関数を組み込んで条件付きの行集計ができる点です。たとえば「行の合計が100以上なら達成、未満なら未達」というフラグを立てたい場合、次のように書けます。</p>



<pre class="wp-block-code"><code>=BYROW(A1:C3, LAMBDA(row, IF(SUM(row)&gt;=100, &quot;達成&quot;, &quot;未達&quot;)))</code></pre>



<p class="wp-block-paragraph">上のサンプル表なら、D1「達成」、D2「達成」、D3「達成」が縦に並びます。仮にB2を「10」、C2を「5」に変えれば、D2は「未達」に切り替わります。</p>



<p class="wp-block-paragraph">SUMIFSでは書きにくい「行内の複雑な条件判定」もBYROWなら自然に書けます。たとえば「すべての列が50以上ならOK」のような判定も、<code>LAMBDA(row, IF(MIN(row)>=50, "OK", "NG"))</code>のように書けば一発です。</p>



<h3 class="wp-block-heading"><span id="toc14">複合計算をネストする</span></h3>



<p class="wp-block-paragraph">BYROWのLAMBDA内部では、複数の関数を自由にネストできます。たとえば「各行の合計から最小値を引いた値」を出したい場合は次の通りです。</p>



<pre class="wp-block-code"><code>=BYROW(A1:C3, LAMBDA(row, SUM(row) - MIN(row)))</code></pre>



<p class="wp-block-paragraph">さらに複雑な例として、「各行の最大値と最小値の差（レンジ）」を算出するパターンもあります。</p>



<pre class="wp-block-code"><code>=BYROW(A1:C3, LAMBDA(row, MAX(row) - MIN(row)))</code></pre>



<p class="wp-block-paragraph">このように、LAMBDA内部は通常のExcel数式と同じ感覚で計算式を書けます。ただし<strong>LAMBDAは各行について必ず1つの値を返す必要がある</strong>点には注意が必要です。FILTERやSORTのように配列を返す関数を入れると、後述する#CALC!エラーが発生します。</p>



<p class="wp-block-paragraph">なお、Googleスプレッドシート版のBYROWは2022年12月のアップデートで機能拡張されました。LAMBDA内にFILTER・SORT・UNIQUEなど配列を返す関数を使えるようになっています。Excel版とは仕様が異なるため、両方使う方は注意してください。</p>



<h3 class="wp-block-heading"><span id="toc15">行ごとの最大値・条件付き集計（MAXIFS/MINIFS同等）</span></h3>



<p class="wp-block-paragraph">「行ごとの最大値だけをまとめて並べたい」という場面は意外と多いものです。各行にMAX関数を1つずつコピペしていくと、行が増えるたびに数式の貼り直しが発生します。BYROWとLAMBDAを組み合わせれば、この作業を1つの数式に置き換えられます。</p>



<pre class="wp-block-code"><code>=BYROW(B2:E10, LAMBDA(row, MAX(row)))</code></pre>



<p class="wp-block-paragraph">この数式は、B2:E10の各行に対してMAXを適用し、行ごとの最大値を縦1列で返します。9行分の最大値が一度にスピルするため、従来のMAXコピペ地獄から解放されます。</p>



<p class="wp-block-paragraph">MAXをMINに差し替えれば行ごとの最小値、SUMIFSのような条件付き集計もLAMBDA内のIFで表現できます。たとえば<code>LAMBDA(row, MAX(IF(row>=50, row)))</code>のように書けば、50以上の値だけを対象にした行ごとの最大値も求められます。</p>



<h3 class="wp-block-heading"><span id="toc16">行ごとの空白カウント・入力チェック</span></h3>



<p class="wp-block-paragraph">未入力セルを行ごとに数えたいときも、BYROWが活躍します。COUNTBLANK関数をLAMBDA内に組み込むだけです。</p>



<pre class="wp-block-code"><code>=BYROW(B2:E10, LAMBDA(row, COUNTBLANK(row)))</code></pre>



<p class="wp-block-paragraph">この数式は、各行の未入力セル数を1列で返します。出席管理シートで「未提出の項目数」を一覧化したり、入力フォームの「未記入欄の数」をチェックしたりする用途にぴったりです。</p>



<p class="wp-block-paragraph">数えた結果をそのまま条件判定につなげることもできます。<code>LAMBDA(row, IF(COUNTBLANK(row)>0, "未完了", "完了"))</code>のように書けば、空白が1つでもある行に「未完了」フラグを立てられます。入力漏れの発見が一気に楽になります。</p>



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



<p class="wp-block-paragraph">BYROW関数はLAMBDAと組み合わせる都合上、慣れないうちはエラーに遭遇しがちです。ここではMicrosoft公式ドキュメントに基づいて、発生しうる4種類のエラーと対処法をまとめておきます。</p>



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



<p class="wp-block-paragraph">#SPILL!エラーは「スピル先にスペースが足りない」ときに発生します。BYROWは結果を縦方向に展開するため、スピル先のセルが空いていないと展開できません。</p>



<ul class="wp-block-list"><li><strong>原因</strong>：スピル先の範囲に既存データが残っている、結合セルがある、またはテーブル内（Ctrl+Tで作成したテーブル）でBYROWを使っている。</li><li><strong>対処</strong>：スピル先のセルをクリアする、結合セルを解除する、テーブル外のセルに数式を入力する。</li></ul>



<p class="wp-block-paragraph">テーブル機能の中ではスピル関数が動かないケースが多いです。BYROWを使うセルはテーブルの外に置くのが安全です。</p>



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



<p class="wp-block-paragraph">#VALUE!エラーは、LAMBDA関数の書き方そのものに問題があるときに発生します。公式では「無効なLAMBDA関数またはパラメータ数が不正」と表現されています。</p>



<ul class="wp-block-list"><li><strong>原因</strong>：LAMBDAが構文エラーになっている、または引数の数が合っていない（例：<code>LAMBDA(row, col, SUM(row))</code>のように余計なパラメータを渡している）。</li><li><strong>対処</strong>：LAMBDAの引数を1つ（<code>row</code>のみ）に修正する。そしてLAMBDAの中身が有効な数式になっているか確認する。</li></ul>



<p class="wp-block-paragraph">BYROW用のLAMBDAは必ず<strong>単一パラメータ</strong>である必要があります。BYCOLから流用する場合、<code>col</code>を<code>row</code>に書き換え忘れて動かなくなるケースが多いので注意しましょう。</p>



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



<p class="wp-block-paragraph">#CALC!エラーはBYROW特有のつまずきポイントで、競合記事ではあまり触れられていません。ここが理解できると一気に使いこなせるようになります。</p>



<ul class="wp-block-list"><li><strong>原因</strong>：LAMBDA関数が提供されていない、またはLAMBDAが単一値以外（配列・複数値）を返している。</li><li><strong>対処</strong>：LAMBDAの戻り値が必ず1つの値になるよう修正する。FILTER・SORT・UNIQUEなど配列を返す関数を直接使わない。</li></ul>



<p class="wp-block-paragraph">具体例を見てみましょう。</p>



<pre class="wp-block-code"><code># NG：FILTERは配列を返すので#CALC!になる
=BYROW(A1:C3, LAMBDA(row, FILTER(row, row&gt;50)))

# OK：COUNTで単一値にして返す
=BYROW(A1:C3, LAMBDA(row, COUNT(FILTER(row, row&gt;50))))</code></pre>



<p class="wp-block-paragraph">「LAMBDAは各行について必ず1つの値を返す」というルールを守れば、#CALC!エラーは回避できます。</p>



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



<p class="wp-block-paragraph">#NAME?エラーは、関数名が認識されないときに出ます。BYROWの場合、ほとんどがバージョン起因です。</p>



<ul class="wp-block-list"><li><strong>原因</strong>：Excel 2021やExcel 2019など非対応バージョンで使用している、または関数名のスペルミス（<code>BYROW</code>を<code>BIROW</code>と書いているなど）。</li><li><strong>対処</strong>：Microsoft 365またはExcel 2024を使う。スペルミスがないか確認する。</li></ul>



<p class="wp-block-paragraph">職場のPCで#NAME?が出る場合は、まずExcelのバージョンを確認してください。「ファイル」→「アカウント」から製品バージョンが確認できます。Microsoft 365以外ならBYROWは使えません。</p>



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



<p class="wp-block-paragraph">最後に、BYROW関数についてよく寄せられる質問をまとめておきます。実務での疑問解消に役立ててください。</p>



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



<p class="wp-block-paragraph">使えます。GoogleスプレッドシートにもBYROW関数が搭載されており、Excelと同じ書き方で動作します。ただしGoogleスプレッドシートではLAMBDA関数の扱いがやや異なる場合があるため、複雑な数式では動作確認が必要です。</p>



<h3 class="wp-block-heading"><span id="toc24">Q: BYROW内でIF関数を使えますか？</span></h3>



<p class="wp-block-paragraph">使えます。<code>=BYROW(範囲, LAMBDA(row, IF(SUM(row)>100, "達成", "未達")))</code>のように、LAMBDA内でほぼあらゆる関数を使えます。集計だけでなく、条件判定や文字列生成にも応用できます。</p>



<h3 class="wp-block-heading"><span id="toc25">Q: BYROWの結果を合計（SUMBYROW）したい場合は？</span></h3>



<p class="wp-block-paragraph">SUM関数でBYROWの結果を囲みます。<code>=SUM(BYROW(B2:E10, LAMBDA(row, MAX(row))))</code>のように書けば、各行の最大値の合計を求められます。</p>



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



<p class="wp-block-paragraph">ExcelのBYROW関数について、構文から応用まで一気に解説しました。ポイントを箇条書きで整理しておきます。</p>



<ul class="wp-block-list"><li><strong>BYROW関数</strong>は行ごとにLAMBDAを適用し、1列の結果をスピルで返す関数である。</li><li>構文は<code>=BYROW(array, lambda(row))</code>で、第2引数はLAMBDAが必須である。</li><li>対応バージョンはMicrosoft 365・Excel for the web・Excel 2024。Excel 2021以前では#NAME?エラーになる。</li><li>基本はSUM・AVERAGE・MAXを行ごとに適用するパターン。LAMBDA内部の関数を差し替えるだけで応用できる。</li><li>BYROW × IFで条件付き行集計ができる。SUMIFSで書きにくい複雑条件にも対応可能。</li><li>エラーは#SPILL!（スピル先不足）、#VALUE!（LAMBDAの書き方）、#CALC!（配列戻り値）、#NAME?（バージョン非対応）の4種類を押さえておけばOK。</li><li><strong>#CALC!エラー</strong>はLAMBDAが単一値以外を返した場合に発生する。FILTER・SORTなどをそのまま入れるとNG。</li></ul>



<p class="wp-block-paragraph">BYROWを一度覚えると、従来の「1行ごとにSUMをコピペ」作業からは完全に卒業できます。行数が増えても数式を書き換える必要がなく、可読性もメンテ性もアップします。</p>



<p class="wp-block-paragraph">次のステップとして、列方向の処理を扱う<a href="https://mashukabu.com/excel-function-howto-use-bycol/">ExcelのBYCOL関数の使い方</a>もセットで読んでおくとよいでしょう。LAMBDAヘルパー関数クラスター全体を体系的に理解できます。LAMBDA自体の書き方が気になった方は、<a href="https://mashukabu.com/excel-function-howto-use-lambda/">ExcelのLAMBDA関数の使い方</a>で基礎から復習しておくと安心です。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-byrow/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのBYCOL関数の使い方｜列ごとに関数適用</title>
		<link>https://mashukabu.com/excel-function-howto-use-bycol/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-bycol/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sun, 12 Apr 2026 12:10:13 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[BYCOL関数]]></category>
		<category><![CDATA[Excel中級者]]></category>
		<category><![CDATA[LAMBDA関数]]></category>
		<category><![CDATA[Microsoft 365]]></category>
		<category><![CDATA[スピル]]></category>
		<category><![CDATA[列集計]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=5899</guid>

					<description><![CDATA[ExcelのBYCOL関数の使い方を実例で解説。列ごとにSUM・AVERAGE・MAXをまとめて求める方法、LAMBDA構文の書き方、#SPILL!エラーの対処、BYROW関数との違いまでカバー。Microsoft 365ユーザー必見。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">毎月の集計表で、列ごとにSUM関数をコピペしていませんか。列数が増えるたびに数式をコピーして、見た目は揃っていてもどこかで貼り間違いが発生する。そんな地味な作業に時間を奪われるのはもったいないですよね。</p>



<p class="wp-block-paragraph">もし1つの数式で「この表の各列の合計をまとめて出して」と指示できたらどうでしょうか。実はExcelのMicrosoft 365には、そのためのBYCOL関数という専用関数が用意されています。列単位で一気に集計を返してくれる、スピル時代ならではの便利な関数です。</p>



<p class="wp-block-paragraph">この記事では、ExcelのBYCOL関数の使い方を基本から応用まで解説します。LAMBDA関数との組み合わせ方、#SPILL!エラーへの対処、BYROW関数との違い、さらにGoogleスプレッドシート版との差分まで、実務で詰まりやすいポイントを重点的に紹介します。</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">BYCOL関数とは？</a><ol><li><a href="#toc2" tabindex="0">Microsoft 365専用・スプレッドシート版との違い</a></li><li><a href="#toc3" tabindex="0">BYROW関数（行版）との対比</a></li></ol></li><li><a href="#toc4" tabindex="0">BYCOL関数の書き方</a><ol><li><a href="#toc5" tabindex="0">構文と引数</a></li><li><a href="#toc6" tabindex="0">LAMBDAを省略できない理由</a></li></ol></li><li><a href="#toc7" tabindex="0">基本の使い方</a><ol><li><a href="#toc8" tabindex="0">列ごとにSUMを求める</a></li><li><a href="#toc9" tabindex="0">列ごとにAVERAGE・MAXを求める</a></li></ol></li><li><a href="#toc10" tabindex="0">応用例</a><ol><li><a href="#toc11" tabindex="0">BYCOL × IFで条件付き列集計</a></li><li><a href="#toc12" tabindex="0">複合計算（SUM÷COUNTなど）をネストする</a></li><li><a href="#toc13" tabindex="0">空白・文字列が混在する列を安全に集計する</a></li><li><a href="#toc14" tabindex="0">名前の管理でLAMBDAを登録して使い回す</a></li><li><a href="#toc15" tabindex="0">共有ブックで「数式を壊されにくい」という地味な強み</a></li><li><a href="#toc16" tabindex="0">列ごとに文字列を連結する（TEXTJOIN）</a></li></ol></li><li><a href="#toc17" tabindex="0">MAP・SCANとの使い分け</a></li><li><a href="#toc18" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc19" tabindex="0">#SPILL!エラー｜隣のセルが空白か確認</a></li><li><a href="#toc20" tabindex="0">LAMBDA引数ミス｜引数の数が合わないとき</a></li><li><a href="#toc21" tabindex="0">バージョン非対応｜M365以外で使えない場合</a></li></ol></li><li><a href="#toc22" tabindex="0">よくある質問（FAQ）</a><ol><li><a href="#toc23" tabindex="0">BYCOL関数とSUMPRODUCT関数はどう違いますか？</a></li><li><a href="#toc24" tabindex="0">BYCOL関数の結果を縦方向に並べたいのですが可能ですか？</a></li><li><a href="#toc25" tabindex="0">BYCOL関数の中でFILTER関数を使えますか？</a></li><li><a href="#toc26" tabindex="0">BYCOL関数の結果を固定値として貼り付けたいです。</a></li><li><a href="#toc27" tabindex="0">毎月列が増える表でもBYCOL関数は使えますか？</a></li></ol></li><li><a href="#toc28" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">ExcelのBYCOL関数は、配列の「列ごと」にLAMBDA関数を適用し、1行にまとめた結果を返す関数です。読み方は「バイコル」。「BY COLumn（列ごとに）」という名前の通り、表を縦方向に分割して各列を1つずつ処理するイメージで使います。</p>



<p class="wp-block-paragraph">従来のExcelで列ごとの集計を行う場合、SUMやAVERAGEを列の数だけ横にコピーするのが一般的でした。BYCOL関数を使えば、1つの数式で「すべての列に同じ処理」を適用できます。結果はスピル（自動的に隣のセルへ展開される機能）で横方向に並ぶため、数式の管理箇所が1つに集約され、修正や検算の手間が大きく減ります。</p>



<p class="wp-block-paragraph">戻り値の形状は「1行×N列」の配列です。たとえば2行×3列の表を渡せば、結果は1行×3列の配列として返ります。元データの「列の数」がそのまま結果の「セルの数」になる、と覚えておくと迷いません。</p>



<h3 class="wp-block-heading"><span id="toc2">Microsoft 365専用・スプレッドシート版との違い</span></h3>



<p class="wp-block-paragraph">BYCOL関数はMicrosoft 365時代の新世代関数で、対応バージョンは限定的です。利用できる環境は次のとおりです。</p>



<ul class="wp-block-list"><li>Excel for Microsoft 365 / Microsoft 365 for Mac</li><li>Excel for the web</li><li>Excel 2024 / Excel 2024 for Mac</li></ul>



<p class="wp-block-paragraph">Excel 2019やExcel 2021では使えない点に注意してください。</p>



<p class="wp-block-paragraph">GoogleスプレッドシートにもBYCOL関数は存在し、基本構文は <code>=BYCOL(配列または範囲, LAMBDA)</code> でExcel版とほぼ同じです。「Sheetsで使っていた数式をそのままExcelに持ってきたい」というケースでも、ほぼ書き換えなしで動くのが嬉しいポイントです。ただしスピルの干渉エラーの出方や、Excelテーブル内では動的配列関数が機能しないなど、Excel特有の注意点があります。</p>



<p class="wp-block-paragraph">詳しいSheets版の書き方は、自サイトの<a href="https://mashukabu.com/spreadsheet-bycol-function/">スプレッドシートのBYCOL関数の使い方</a>も参考にしてください。両方の違いを押さえておくと、二重運用している環境でも迷わず使い分けられます。</p>



<h3 class="wp-block-heading"><span id="toc3">BYROW関数（行版）との対比</span></h3>



<p class="wp-block-paragraph">BYCOL関数には「行版」とも言うべき兄弟関数、BYROW関数があります。BYROW関数は配列の「行ごと」にLAMBDAを適用し、「N行×1列」の配列を返します。「行はBYROW、列はBYCOL」と名前の頭文字で覚えると混乱しません。</p>



<figure class="wp-block-table"><table><thead><tr><th>観点</th><th>BYCOL関数</th><th>BYROW関数</th></tr></thead><tbody><tr><td>処理の向き</td><td>列ごと（縦のかたまりを処理）</td><td>行ごと（横のかたまりを処理）</td></tr><tr><td>戻り値の形</td><td>1行×N列</td><td>N行×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">どちらもLAMBDA関数を使って「各列/各行にどんな処理を適用するか」を自由に指定できます。行ごとの集計が必要ならBYROW、列ごとの集計ならBYCOL、と目的に合わせて選び分けるだけです。</p>



<h2 class="wp-block-heading"><span id="toc4">BYCOL関数の書き方</span></h2>



<p class="wp-block-paragraph">BYCOL関数は引数が2つだけのシンプルな構造ですが、第2引数にLAMBDAが必須という点だけは他の関数と毛色が違います。ここで構文を正確に押さえておきましょう。</p>



<h3 class="wp-block-heading"><span id="toc5">構文と引数</span></h3>



<p class="wp-block-paragraph">BYCOL関数の基本構文は次のとおりです。</p>



<pre class="wp-block-code"><code>=BYCOL(array, lambda(column))</code></pre>



<p class="wp-block-paragraph">引数の意味は下の表で整理します。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須</th><th>役割</th></tr></thead><tbody><tr><td><code>array</code></td><td>必須</td><td>処理したい配列またはセル範囲。A1:C10のような長方形の範囲を渡す</td></tr><tr><td><code>lambda(column)</code></td><td>必須</td><td>各列に適用するLAMBDA関数。<code>column</code>は1列分のデータを表す仮引数</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><code>array</code> には通常のセル範囲だけでなく、他の関数が返す配列もそのまま渡せます。<code>lambda(column)</code> の <code>column</code> という名前は自分で好きな名前に変えても構いません。たとえば <code>LAMBDA(col, SUM(col))</code> のように短い名前を使うと、数式が読みやすくなります。</p>



<h3 class="wp-block-heading"><span id="toc6">LAMBDAを省略できない理由</span></h3>



<p class="wp-block-paragraph">「SUMだけを使いたいのだから、LAMBDAは省略したい」と思うかもしれません。しかしBYCOL関数では、第2引数のLAMBDAは省略できません。理由は、BYCOL関数自体が「何の処理をするか」を知らない汎用関数だからです。</p>



<p class="wp-block-paragraph">BYCOL関数は「各列を順番にLAMBDAへ渡す」という役割しか持ちません。列ごとに何を計算するかはLAMBDAの中で決める必要があります。次の2つを見比べると違いが明確です。</p>



<pre class="wp-block-code"><code>=BYCOL(A1:C10, SUM)</code></pre>



<p class="wp-block-paragraph">上の書き方はNGです。SUMをLAMBDAで包まずに渡しているためエラーになります。正しくは次のように書きます。</p>



<pre class="wp-block-code"><code>=BYCOL(A1:C10, LAMBDA(col, SUM(col)))</code></pre>



<p class="wp-block-paragraph"><code>LAMBDA(仮引数, 計算式)</code> の形で必ず包んであげてください。</p>



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



<p class="wp-block-paragraph">ここからはBYCOL関数を使った基本的な集計パターンを紹介します。どれも実務の集計表で頻出するものばかりです。</p>



<h3 class="wp-block-heading"><span id="toc8">列ごとにSUMを求める</span></h3>



<p class="wp-block-paragraph">まずは定番の「列ごとの合計」から。A1:C5に店舗別の売上が入っていて、各列（＝各店舗）の合計を一発で出したい場合の数式は次のとおりです。</p>



<pre class="wp-block-code"><code>=BYCOL(A1:C5, LAMBDA(col, SUM(col)))</code></pre>



<p class="wp-block-paragraph">この数式をE1に入力すると、E1:G1の3セルに各列の合計がスピルで展開されます。列数が10や20に増えても、範囲を <code>A1:T5</code> のように広げるだけでOKです。SUM関数をコピペする必要はありません。</p>



<p class="wp-block-paragraph">Microsoft公式ドキュメントでは、各列の最大値を求める <code>=BYCOL(A1:C2, LAMBDA(array, MAX(array)))</code> が使用例として紹介されています。LAMBDAの仮引数名は <code>array</code> でも <code>col</code> でも動作は同じです。</p>



<h3 class="wp-block-heading"><span id="toc9">列ごとにAVERAGE・MAXを求める</span></h3>



<p class="wp-block-paragraph">SUM以外の集計関数も同じ要領です。AVERAGEで平均、MAXで最大値、MINで最小値がそれぞれ1つの数式で取れます。</p>



<pre class="wp-block-code"><code>=BYCOL(A1:C5, LAMBDA(col, AVERAGE(col)))</code></pre>



<pre class="wp-block-code"><code>=BYCOL(A1:C5, LAMBDA(col, MAX(col)))</code></pre>



<pre class="wp-block-code"><code>=BYCOL(A1:C5, LAMBDA(col, MIN(col)))</code></pre>



<p class="wp-block-paragraph">これらを縦に並べて書けば、1つのセル範囲に「合計・平均・最大」を整然と出せます。従来なら関数を手で入力していた作業が、数式の使い回しで済むようになるのが最大のメリットです。</p>



<h2 class="wp-block-heading"><span id="toc10">応用例</span></h2>



<p class="wp-block-paragraph">基本の使い方を押さえたら、実務でよく出てくる応用パターンにも挑戦してみましょう。BYCOL関数はLAMBDAの中身を自由に書けるため、組み合わせ次第で表現力がぐっと広がります。</p>



<h3 class="wp-block-heading"><span id="toc11">BYCOL × IFで条件付き列集計</span></h3>



<p class="wp-block-paragraph">「各列のうち、100以上の値だけを合計したい」といった条件付き集計もBYCOL関数で実現できます。LAMBDAの中にIF関数を仕込み、条件を満たす要素だけをSUMに渡す形です。</p>



<pre class="wp-block-code"><code>=BYCOL(A1:C10, LAMBDA(col, SUM(IF(col&gt;=100, col, 0))))</code></pre>



<p class="wp-block-paragraph">この数式は各列について「100以上ならその値、未満なら0」を返し、その合計を取ります。SUMIF関数は範囲と条件を直接指定する使い方が主流ですが、BYCOL内ではLAMBDAの仮引数を条件判定に使えるため、より柔軟な集計が組めます。</p>



<p class="wp-block-paragraph">同じ考え方で、COUNTIFのように「条件に合う件数」を列ごとに数えることもできます。</p>



<pre class="wp-block-code"><code>=BYCOL(A1:C10, LAMBDA(col, SUM(--(col&gt;=100))))</code></pre>



<p class="wp-block-paragraph"><code>--(col>=100)</code> は、TRUE/FALSEを1/0に変換する定番テクニックです。BYCOLと組み合わせると、列ごとの条件一致件数がスピルで一気に並びます。</p>



<h3 class="wp-block-heading"><span id="toc12">複合計算（SUM÷COUNTなど）をネストする</span></h3>



<p class="wp-block-paragraph">LAMBDAの中では複数の関数をネストして自由に計算できます。たとえば「各列の平均を自前で計算したい」ときは、SUMとCOUNTを組み合わせる書き方が可能です。</p>



<pre class="wp-block-code"><code>=BYCOL(A1:C10, LAMBDA(col, SUM(col)/COUNT(col)))</code></pre>



<p class="wp-block-paragraph">単純な平均ならAVERAGEで十分ですが、分母と分子に別々の条件を絡めたいときに威力を発揮します。公式ドキュメントでは <code>=BYCOL(A1:C2, LAMBDA(array, SUMSQ(array)))</code> のように二乗和を求める例も紹介されています。通常の数式で書ける計算ならほぼ何でも詰め込める、と考えてOKです。</p>



<p class="wp-block-paragraph">より複雑な式では、LET関数で中間変数を定義すると可読性が上がります。詳しくは<a href="https://mashukabu.com/excel-function-howto-use-let/">ExcelのLET関数の使い方</a>もあわせて参照してみてください。</p>



<h3 class="wp-block-heading"><span id="toc13">空白・文字列が混在する列を安全に集計する</span></h3>



<p class="wp-block-paragraph">実務の集計表には、未入力の空白セルや「未集計」などの文字列が紛れ込んでいることがよくあります。こうした列にそのままBYCOL関数でAVERAGEをかけると、空白だけの列で <code>#DIV/0!</code> エラーが出たり、数値以外が混じって意図しない結果になったりします。</p>



<p class="wp-block-paragraph">そこでLAMBDAの中にIFERROR関数を挟んでおくと、エラーを空文字に置き換えて表全体の見栄えを保てます。</p>



<pre class="wp-block-code"><code>=BYCOL(A1:C10, LAMBDA(col, IFERROR(AVERAGE(col), &quot;&quot;)))</code></pre>



<p class="wp-block-paragraph">この書き方なら、データのない列だけ空白表示になり、ほかの列は通常どおり平均が出ます。集計表を他人に渡す前のひと工夫として覚えておくと便利です。</p>



<p class="wp-block-paragraph">文字列が混在する列を合計したいときは、ISNUMBER関数で数値だけを拾う形が安全です。</p>



<pre class="wp-block-code"><code>=BYCOL(A1:C10, LAMBDA(col, SUM(IF(ISNUMBER(col), col, 0))))</code></pre>



<p class="wp-block-paragraph"><code>IF(ISNUMBER(col), col, 0)</code> で「数値ならその値、それ以外は0」に変換してから合計します。文字列が混じっていてもエラーにならず、数値だけをきれいに足し込めます。汚れたデータをそのまま受け止められるのは、LAMBDAで前処理を書き込めるBYCOLならではの強みです。</p>



<h3 class="wp-block-heading"><span id="toc14">名前の管理でLAMBDAを登録して使い回す</span></h3>



<p class="wp-block-paragraph">同じ集計ロジックを複数のシートやブックで何度も書くなら、LAMBDAを「名前」として登録しておくと数式がぐっと短くなります。手順は次のとおりです。</p>



<ol class="wp-block-list"><li>リボンの「数式」タブから「名前の管理」を開く</li><li>「新規作成」をクリックし、名前に <code>MY_SUM</code> などと入力する</li><li>参照範囲に <code>=LAMBDA(col, SUM(col))</code> と入力して保存する</li></ol>



<p class="wp-block-paragraph">登録後は、BYCOLの第2引数に名前をそのまま渡すだけで動きます。</p>



<pre class="wp-block-code"><code>=BYCOL(A1:C10, MY_SUM)</code></pre>



<p class="wp-block-paragraph">毎回 <code>LAMBDA(col, SUM(col))</code> と書く必要がなくなり、数式の読みやすさと保守性が上がります。チームで共有するブックなら、集計ロジックを1か所に集約できるのも大きなメリットです。</p>



<p class="wp-block-paragraph">ただし、名前付きLAMBDAは登録したブック内だけで有効です。別ブックにコピーしても自動では引き継がれないため、配布先でも使いたいときは同じ名前を登録し直すか、インラインのLAMBDAに書き戻しておきましょう。LAMBDAの登録手順をより詳しく知りたい場合は、<a href="https://mashukabu.com/excel-function-howto-use-lambda/">ExcelのLAMBDA関数の使い方</a>もあわせて確認してみてください。</p>



<h3 class="wp-block-heading"><span id="toc15">共有ブックで「数式を壊されにくい」という地味な強み</span></h3>



<p class="wp-block-paragraph">従来のSUMコピー方式では、列の数だけ独立した数式がセルに散らばります。複数人で編集するブックだと、誰かが1列分の数式を上書きしたり消してしまったりしても、見た目では気づきにくいのが悩みどころです。</p>



<p class="wp-block-paragraph">BYCOL関数なら集計の入力セルがたった1つに集約されます。「ここに数式があり、ここがすべての列を集計している」と一目でわかるため、誤って壊された場合の検知や修正がはるかに簡単です。共有ブックで集計式がいつの間にか狂っている、というあるあるトラブルへの予防策としても有効です。</p>



<h3 class="wp-block-heading"><span id="toc16">列ごとに文字列を連結する（TEXTJOIN）</span></h3>



<p class="wp-block-paragraph">BYCOL関数は数値の集計だけでなく、文字列を返す関数とも組み合わせられます。たとえば各列の項目をカンマ区切りで1つのセルにまとめたいときは、TEXTJOIN関数をLAMBDAの中に置きます。</p>



<pre class="wp-block-code"><code>=BYCOL(A1:C5, LAMBDA(col, TEXTJOIN(&quot;、&quot;, TRUE, col)))</code></pre>



<p class="wp-block-paragraph">各列の値が「商品A、商品B、商品C」のように読点区切りで1セルに結合され、列ごとの一覧を横並びで作れます。TEXTJOINは1つの文字列を返すため、BYCOLの「LAMBDAは単一の値を返す」というルールにきちんと収まります。商品名や担当者名などのリストを概要欄にまとめたいときに役立つパターンです。TEXTJOIN自体の細かい使い方は<a href="https://mashukabu.com/excel-function-howto-use-textjoin/">ExcelのTEXTJOIN関数の使い方</a>で解説しています。</p>



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



<p class="wp-block-paragraph">BYCOL関数を調べていると、MAP関数やSCAN関数といった同じLAMBDA系の「ヘルパー関数」も目に入ってきます。名前が似ていて混乱しやすいので、それぞれの守備範囲をここで整理しておきましょう。役割を一言でいうと、BYCOLは「集約」、MAPは「変換」、SCANは「累積」です。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>処理の中身</th><th>戻り値の形</th><th>典型用途</th></tr></thead><tbody><tr><td>BYCOL</td><td>列ごとに1つの値へ集約</td><td>1行×N列</td><td>列ごとの合計・平均・最大</td></tr><tr><td>BYROW</td><td>行ごとに1つの値へ集約</td><td>N行×1列</td><td>行ごとの合計・平均・最大</td></tr><tr><td>MAP</td><td>各セルを1対1で変換</td><td>元の表と同じサイズ</td><td>全セルを1.1倍・単位変換</td></tr><tr><td>SCAN</td><td>先頭から順に累積</td><td>元の表と同じサイズ</td><td>累計・残高の推移</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">判断の目安はシンプルです。表のサイズを保ったまま中身だけ変えたいならMAP、各列を1つの値にまとめたいならBYCOLを選びます。たとえば「各列の値をすべて1.1倍したい（税込み変換など）」なら、サイズが変わらないMAP関数の出番です。一方「各列の合計を1行で出したい」なら集約を行うBYCOL関数が正解です。</p>



<p class="wp-block-paragraph">「列ごとの累計の推移を見たい」という場合は、BYCOLでは最終的な合計値しか返らず「なぜ1行しか出ないのか」と詰まりがちです。途中経過まで欲しいときは、累積を返すSCAN関数を使います。各関数の詳しい挙動は<a href="https://mashukabu.com/excel-function-howto-use-map/">ExcelのMAP関数の使い方</a>、<a href="https://mashukabu.com/excel-function-howto-use-scan/">ExcelのSCAN関数の使い方</a>で確認できます。行版の集計が必要なら<a href="https://mashukabu.com/excel-function-howto-use-byrow/">ExcelのBYROW関数の使い方</a>もあわせてどうぞ。</p>



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



<p class="wp-block-paragraph">BYCOL関数は新しい関数のため、初めて触るときに独特のエラーに遭遇することがあります。公式ドキュメントに記載されている代表的なエラーと対処法をまとめました。</p>



<h3 class="wp-block-heading"><span id="toc19">#SPILL!エラー｜隣のセルが空白か確認</span></h3>



<p class="wp-block-paragraph">BYCOL関数の結果は横方向にスピルするため、結果が展開される領域が他のデータで埋まっていると <code>#SPILL!</code> エラーが発生します。Microsoft公式によれば、主な原因は次の3つです。</p>



<ul class="wp-block-list"><li>スピル範囲に既存データが残っている</li><li>スピル範囲に結合セルが含まれている</li><li>Excelテーブル内で動的配列関数を使っている（テーブル内ではスピルが機能しない）</li></ul>



<p class="wp-block-paragraph">対処はシンプルで、スピル先のセルを空にすればOKです。エラーセルの横に表示される警告アイコンをクリックし、「妨害しているセルを選択」ボタンを押すと、原因となっているセルがハイライトされます。その位置のデータを退避するか、数式の入力位置を別の場所に変えましょう。</p>



<p class="wp-block-paragraph">Excelテーブル内で使いたい場合は、一度テーブル外のセルに数式を書き、結果だけをテーブルに値貼り付けする運用がおすすめです。</p>



<h3 class="wp-block-heading"><span id="toc20">LAMBDA引数ミス｜引数の数が合わないとき</span></h3>



<p class="wp-block-paragraph"><code>#VALUE!</code> エラーや <code>#CALC!</code> エラーが出たときは、LAMBDA関数の書き方を見直します。公式ドキュメントでは次のように区別されています。</p>



<ul class="wp-block-list"><li><code>#VALUE!</code>：無効なLAMBDA関数、またはLAMBDAのパラメータ数が正しくない（Incorrect Parameters）</li><li><code>#CALC!</code>：LAMBDA関数が提供されていない、またはLAMBDAが単一値以外を返している</li></ul>



<p class="wp-block-paragraph">典型的なミスは、LAMBDAの仮引数を増やしすぎるパターンです。BYCOL関数のLAMBDAは仮引数1つだけを受け取ります。<code>LAMBDA(col, row, SUM(col))</code> のように引数を2つ書くと <code>#VALUE!</code> になります。</p>



<p class="wp-block-paragraph">また <code>#CALC!</code> は、LAMBDAの中身が配列をそのまま返してしまった場合に出ます。SUMやAVERAGEのような集約関数で「1つの値」に畳み込む処理を必ず最後に置いてください。</p>



<h3 class="wp-block-heading"><span id="toc21">バージョン非対応｜M365以外で使えない場合</span></h3>



<p class="wp-block-paragraph">Excel 2019やExcel 2021でBYCOL関数を使おうとすると、関数名が認識されず <code>#NAME?</code> エラーになります。BYCOL関数はMicrosoft 365系とExcel 2024系でのみ使える新しい関数だからです。</p>



<p class="wp-block-paragraph">バージョンが原因かどうかは、「ファイル」→「アカウント」画面で確認できます。製品名が「Microsoft 365」や「Excel 2024」になっていれば対応済みです。「Excel 2021」「Excel 2019」と表示される場合は、そのPC環境ではBYCOL関数自体が存在しません。</p>



<p class="wp-block-paragraph">対応バージョンのPCで数式を書き、値貼り付けで共有するか、SUMを列ごとに並べる従来の書き方にフォールバックする必要があります。Microsoft 365にアップグレードできるならそれが最速の解決策です。</p>



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



<h3 class="wp-block-heading"><span id="toc23">BYCOL関数とSUMPRODUCT関数はどう違いますか？</span></h3>



<p class="wp-block-paragraph">SUMPRODUCT関数は、表全体を掛け合わせて最終的に1つの値へ集約する関数です。これに対してBYCOL関数は、列ごとに集約した結果を横一列のスピルで並べて返します。「表全体の合計が1つ欲しい」ならSUMPRODUCT、「列ごとの結果をそれぞれ並べたい」ならBYCOL、と出力の形で選び分けると迷いません。</p>



<h3 class="wp-block-heading"><span id="toc24">BYCOL関数の結果を縦方向に並べたいのですが可能ですか？</span></h3>



<p class="wp-block-paragraph">BYCOL関数の戻り値は「1行×N列」と必ず横方向に並びます。これを縦に並べたいときは、TRANSPOSE関数で囲んで転置するのが定番です。<code>=TRANSPOSE(BYCOL(...))</code> のように書くと、横並びの結果が縦並びに切り替わります。レイアウトの都合で縦に置きたいときに覚えておくと便利です。</p>



<h3 class="wp-block-heading"><span id="toc25">BYCOL関数の中でFILTER関数を使えますか？</span></h3>



<p class="wp-block-paragraph">FILTER関数は条件に合う複数の値を「配列」として返すため、そのままLAMBDAの中に置くと単一値を返せず <code>#CALC!</code> エラーになりやすい点に注意が必要です。条件で絞り込んだうえで列ごとに集計したい場合は、先にFILTERで範囲を絞ってからBYCOLに渡すか、本文の応用例で紹介したIF関数を使った条件付き集計に置き換えるのが安全です。</p>



<h3 class="wp-block-heading"><span id="toc26">BYCOL関数の結果を固定値として貼り付けたいです。</span></h3>



<p class="wp-block-paragraph">スピルした結果はそのままだと数式に連動して変わります。値として固定したいときは、結果のセル範囲を選択してコピーし、貼り付け先で「値の貼り付け」（Ctrl+Alt+Vから「値」を選択）を実行してください。これで集計結果が静的な数値に変わり、元データを消しても保持されます。</p>



<h3 class="wp-block-heading"><span id="toc27">毎月列が増える表でもBYCOL関数は使えますか？</span></h3>



<p class="wp-block-paragraph">使えますが、<code>A1:C10</code> のような固定範囲だと増えた列が集計に入らないため、範囲の指定を見直す必要があります。OFFSET関数やINDEX関数とCOUNTA関数を組み合わせて列数に応じた範囲を作り、それをBYCOLに渡すと列が増えても自動で集計対象を広げられます。なお、Excelテーブル（ListObject）内ではスピルが機能しません。動的に列を増やしたい場合はテーブル外のセルに数式を置く運用がおすすめです。</p>



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



<p class="wp-block-paragraph">ExcelのBYCOL関数は、列ごとの集計を1つの数式にまとめてくれる頼もしい関数です。SUM・AVERAGE・MAXなどの定番集計はもちろん、IFと組み合わせた条件付き集計や、SUM/COUNTを組み合わせたカスタム計算もLAMBDA内で自由に書けます。</p>



<p class="wp-block-paragraph">ポイントを改めて整理すると次のとおりです。</p>



<ul class="wp-block-list"><li>構文は <code>=BYCOL(array, lambda(column))</code> で、LAMBDAは省略不可</li><li>戻り値は「1行×N列」の配列（列数がそのまま結果のセル数になる）</li><li>Microsoft 365・Excel 2024系でのみ動作。Excel 2021以前は <code>#NAME?</code> エラー</li><li><code>#SPILL!</code> エラーはスピル先の空き・結合セル・テーブル内使用を疑う</li><li>行ごとの集計が必要ならBYROW関数、列ごとならBYCOL関数で使い分ける</li></ul>



<p class="wp-block-paragraph">LAMBDA関数の書き方に不安があるなら、先に<a href="https://mashukabu.com/excel-function-howto-use-lambda/">ExcelのLAMBDA関数の使い方</a>で基本構文を押さえておくとBYCOLの理解が一気に進みます。コピペ集計から卒業して、スピル時代のスマートな集計術を自分の武器にしていきましょう。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-bycol/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
