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

<channel>
	<title>配列操作 &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/%E9%85%8D%E5%88%97%E6%93%8D%E4%BD%9C/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Mon, 20 Apr 2026 00:42:37 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://mashukabu.com/wp-content/uploads/2022/04/cropped-site-icon-32x32.png</url>
	<title>配列操作 &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>スプレッドシートのWRAPROWS関数の使い方｜行方向にラップ</title>
		<link>https://mashukabu.com/spreadsheet-wraprows-function/</link>
					<comments>https://mashukabu.com/spreadsheet-wraprows-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Mon, 20 Apr 2026 00:42:37 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[WRAPROWS]]></category>
		<category><![CDATA[スプレッドシート関数]]></category>
		<category><![CDATA[データ整形]]></category>
		<category><![CDATA[配列操作]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=6096</guid>

					<description><![CDATA[GoogleスプレッドシートのWRAPROWS関数で縦1列データを行方向に自動整形する方法を解説。基本構文・pad_with引数の4パターン・WRAPCOLSとの使い分け・TOCOL連携まで実例付きで丁寧に紹介します。]]></description>
										<content:encoded><![CDATA[
<p>縦1列に並んだ商品リストを「4列ずつ折り返して一覧表にしたい」と思ったこと、ありませんか。手作業でコピペしていると、項目数が変わるたびに並べ直しが発生して地味に時間を奪われます。</p>



<p>そんなときに便利なのが、Googleスプレッドシートの <strong>WRAPROWS関数</strong> です。縦1列のデータを指定した列数で自動的に行方向へ折り返す関数で、2023年2月から全アカウントで使えるようになりました。</p>



<p>この記事では、WRAPROWSの基本構文から、<code>pad_with</code> 引数の使い分け、姉妹関数 WRAPCOLS との違い、TOROWと組み合わせた実務テクまで解説します。</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">WRAPROWS関数とは？スプレッドシートでの使いどころ</a><ol><li><a href="#toc2" tabindex="0">WRAPROWS関数が役立つ場面</a></li><li><a href="#toc3" tabindex="0">Googleスプレッドシート固有の仕様とExcelとの違い</a></li></ol></li><li><a href="#toc4" tabindex="0">WRAPROWS関数の基本構文と3つの引数</a><ol><li><a href="#toc5" tabindex="0">第1引数：vector（対象範囲）</a></li><li><a href="#toc6" tabindex="0">第2引数：wrap_count（折り返し列数）</a></li><li><a href="#toc7" tabindex="0">第3引数：pad_with（代替文字）</a></li></ol></li><li><a href="#toc8" tabindex="0">基本的な使い方：縦1列データを横方向に折り返す</a><ol><li><a href="#toc9" tabindex="0">シンプルな折り返し例</a></li><li><a href="#toc10" tabindex="0">折り返し列数を変えた場合の出力比較</a></li></ol></li><li><a href="#toc11" tabindex="0">第3引数（pad_with）の使い方：端数セルを制御する</a><ol><li><a href="#toc12" tabindex="0">省略時の挙動（#N/Aが入る理由）</a></li><li><a href="#toc13" tabindex="0">空文字・0・任意文字列を指定した場合の比較</a></li><li><a href="#toc14" tabindex="0">集計関数と組み合わせるときの推奨設定</a></li></ol></li><li><a href="#toc15" tabindex="0">WRAPCOLS関数との違い：どちらを使えばいい？</a><ol><li><a href="#toc16" tabindex="0">折り返し方向とデータの流れの対比</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">TOCOL/TOROWとの連携（2次元範囲を渡す場合のエラー回避）</a></li><li><a href="#toc20" tabindex="0">SORT・FILTERと組み合わせた動的整形</a></li></ol></li><li><a href="#toc21" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc22" tabindex="0">#VALUE! エラー（多次元配列を直接渡したとき）</a></li><li><a href="#toc23" tabindex="0">#NUM! エラー（wrap_countに0以下を指定したとき）</a></li><li><a href="#toc24" tabindex="0">#N/A エラー（pad_with省略時の端数セル）</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">WRAPROWS関数とは？スプレッドシートでの使いどころ</span></h2>



<p>WRAPROWS関数は、1次元の配列（縦1列または横1行のデータ）を、指定した列数ごとに区切って2次元の表に折り返す関数です。名前の通り、「行（rows）を折り返す（wrap）」動きをします。</p>



<h3 class="wp-block-heading"><span id="toc2">WRAPROWS関数が役立つ場面</span></h3>



<p>具体的には、こんな場面で役立ちます。</p>



<ul class="wp-block-list"><li>アンケート回答の縦リストを4列×N行の表示用レイアウトに並べ直したい</li><li>商品コードを縦に並べたデータから印刷用に横並びの台紙を作りたい</li><li>日付の連続データをカレンダー風に7列へ折り返したい</li><li>TOCOLで抽出した1列データを複数列の見やすい形に戻したい</li></ul>



<p>従来はINDEX+ROW+COLUMNを組み合わせた長い数式か、手作業のコピペで対応していた領域です。WRAPROWSなら一発で済みます。</p>



<h3 class="wp-block-heading"><span id="toc3">Googleスプレッドシート固有の仕様とExcelとの違い</span></h3>



<p>WRAPROWSはExcelにも存在しますが、利用可能な環境が違います。</p>



<figure class="wp-block-table"><table><thead><tr><th>環境</th><th>対応状況</th></tr></thead><tbody><tr><td>Googleスプレッドシート</td><td>2023年2月〜全アカウントで利用可</td></tr><tr><td>Microsoft 365（Excel）</td><td>利用可（Windows/Mac/Web）</td></tr><tr><td>Excel 2024</td><td>利用可</td></tr><tr><td>Excel 2021以前</td><td>非対応</td></tr></tbody></table></figure>



<p>引数名（vector / wrap_count / pad_with）は両者で完全に一致しており、数式のコピペ互換性は高めです。Excel版の詳細は<a href="https://mashukabu.com/excel-wraprows-function/">ExcelのWRAPROWS関数の使い方</a>で解説しています。</p>



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



<p>構文はシンプルに、引数3つだけです。</p>



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



<h3 class="wp-block-heading"><span id="toc5">第1引数：vector（対象範囲）</span></h3>



<p>折り返したい<strong>1次元の配列</strong>を指定します。縦1列の範囲（<code>A1:A12</code>）でも、横1行の範囲（<code>A1:L1</code>）でもOKです。</p>



<p><code>A1:D3</code> のような2次元範囲を直接渡すと <code>#VALUE!</code> エラーになります。この回避法は後半で解説します。</p>



<h3 class="wp-block-heading"><span id="toc6">第2引数：wrap_count（折り返し列数）</span></h3>



<p>1行あたりに入れる要素数です。<code>4</code> を指定すれば、4要素ごとに次の行へ折り返します。</p>



<p>非整数（例: <code>3.7</code>）を指定すると小数点以下は切り捨てられ、<code>3</code> として扱われます。<code>0</code> や負の数を指定すると <code>#NUM!</code> エラーになるので注意してください。</p>



<h3 class="wp-block-heading"><span id="toc7">第3引数：pad_with（代替文字）</span></h3>



<p>折り返したときに最終行で発生する<strong>空きセルを埋める値</strong>を指定します。省略可能で、省略時は <code>#N/A</code> が入ります。選択が実務に直結するため、専用セクションで詳しく扱います。</p>



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



<h3 class="wp-block-heading"><span id="toc9">シンプルな折り返し例</span></h3>



<p>A1:A12 に12個の項目（商品1〜商品12）が縦に入っているとします。4列ずつ横に並べ直すなら、次のように書きます。</p>



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



<p>結果は4列×3行の表としてスピルします。12項目が4で割り切れるので、端数は発生せず <code>#N/A</code> も出ません。</p>



<p>SEQUENCE関数で連番を生成して試すこともできます。</p>



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



<p>これで1〜12の数字が4列3行に並びます。SEQUENCEは縦1列を返すので、そのままWRAPROWSに渡せます。</p>



<h3 class="wp-block-heading"><span id="toc10">折り返し列数を変えた場合の出力比較</span></h3>



<p>同じ12項目でも、<code>wrap_count</code> を変えると出力形状が変わります。</p>



<figure class="wp-block-table"><table><thead><tr><th>wrap_count</th><th>出力形状</th><th>備考</th></tr></thead><tbody><tr><td>2</td><td>2列×6行</td><td>縦長になる</td></tr><tr><td>3</td><td>3列×4行</td><td>割り切れるので端数なし</td></tr><tr><td>4</td><td>4列×3行</td><td>割り切れるので端数なし</td></tr><tr><td>5</td><td>5列×3行</td><td>最終行に3つ空きが出る</td></tr><tr><td>12以上</td><td>1行×12列</td><td>折り返しなし（全要素が1行に並ぶ）</td></tr></tbody></table></figure>



<p><code>wrap_count</code> が要素数以上のときは折り返しが発生せず、横1行の配列がそのまま返ります。</p>



<h2 class="wp-block-heading"><span id="toc11">第3引数（pad_with）の使い方：端数セルを制御する</span></h2>



<p>WRAPROWSを実務で使うと、ほぼ必ず端数が出ます。その空きセルをどう埋めるかが <code>pad_with</code> の役割です。</p>



<h3 class="wp-block-heading"><span id="toc12">省略時の挙動（#N/Aが入る理由）</span></h3>



<p>13項目を4列で折り返すと、4×4=16セル中、最後の3セルが余ります。<code>pad_with</code> を省略すると、この3セルには <code>#N/A</code> が入ります。</p>



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



<p>表示だけなら問題ありませんが、後続で <code>SUM</code> や <code>COUNTIF</code> を当てるとエラーが伝播します。ここで <code>pad_with</code> の出番です。</p>



<h3 class="wp-block-heading"><span id="toc13">空文字・0・任意文字列を指定した場合の比較</span></h3>



<p>実用的な4パターンを整理します。</p>



<figure class="wp-block-table"><table><thead><tr><th>指定値</th><th>数式例</th><th>空きセルの見え方</th><th>使いどころ</th></tr></thead><tbody><tr><td>省略</td><td><code>=WRAPROWS(A1:A13, 4)</code></td><td><code>#N/A</code></td><td>デバッグ時に端数を目視したい場合</td></tr><tr><td><code>""</code>（空文字）</td><td><code>=WRAPROWS(A1:A13, 4, "")</code></td><td>空白</td><td>見た目重視・印刷用レイアウト</td></tr><tr><td><code>0</code></td><td><code>=WRAPROWS(A1:A13, 4, 0)</code></td><td><code>0</code></td><td>SUM・SUMIFなど数値集計と組み合わせるとき</td></tr><tr><td>任意文字列</td><td><code>=WRAPROWS(A1:A13, 4, "-")</code></td><td><code>-</code></td><td>「該当なし」を明示したい帳票</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc14">集計関数と組み合わせるときの推奨設定</span></h3>



<p>WRAPROWSの結果に対して <code>SUM</code> や <code>AVERAGE</code> を使う場合、<strong><code>pad_with</code> には <code>0</code> を指定するのが鉄則</strong>です。</p>



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



<p>省略時の <code>#N/A</code> のまま集計しようとすると、<code>#N/A</code> が伝播して結果全体がエラーになります。空文字 <code>""</code> も数値計算では型不一致で思わぬ挙動を招くことがあるため、集計を挟むときは <code>0</code> を選んでおくと安全です。</p>



<h2 class="wp-block-heading"><span id="toc15">WRAPCOLS関数との違い：どちらを使えばいい？</span></h2>



<p>WRAPROWSの姉妹関数として <a href="https://mashukabu.com/spreadsheet-wrapcols-function/">WRAPCOLS関数</a> があります。名前が似ていて混乱しやすいので、しっかり整理しておきましょう。</p>



<h3 class="wp-block-heading"><span id="toc16">折り返し方向とデータの流れの対比</span></h3>



<p>同じ6要素 <code>[1,2,3,4,5,6]</code> を <code>wrap_count=3</code> で処理すると、結果はこう変わります。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>データの流れ</th><th>出力</th></tr></thead><tbody><tr><td>WRAPROWS</td><td>左→右、次の行へ</td><td><code>[1,2,3]</code> / <code>[4,5,6]</code></td></tr><tr><td>WRAPCOLS</td><td>上→下、次の列へ</td><td><code>[1,4]</code> / <code>[2,5]</code> / <code>[3,6]</code></td></tr></tbody></table></figure>



<p>4軸でまとめると次の通りです。</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>wrap_count の意味</td><td>1行あたりの要素数</td><td>1列あたりの要素数</td></tr><tr><td>典型用途</td><td>横書き一覧表・カレンダー</td><td>縦型カード・リストの段組み</td></tr><tr><td>Excel互換</td><td>あり（引数名同一）</td><td>あり（引数名同一）</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc17">使い分けの基準</span></h3>



<p>迷ったらこう考えてください。</p>



<ul class="wp-block-list"><li><strong>完成後の表を「横に読んでいく」なら WRAPROWS</strong>（新聞・表形式のレポート）</li><li><strong>完成後の表を「縦に読んでいく」なら WRAPCOLS</strong>（名刺の段組み・列優先のリスト）</li></ul>



<p>WRAPCOLSの詳細な使い方は<a href="https://mashukabu.com/spreadsheet-wrapcols-function/">スプレッドシートのWRAPCOLS関数の使い方</a>で解説しているので、あわせて確認してみてください。</p>



<h2 class="wp-block-heading"><span id="toc18">実務ユースケース：他の関数と組み合わせる</span></h2>



<p>WRAPROWSは単体でも便利ですが、他の関数と組み合わせるとさらに活きてきます。</p>



<h3 class="wp-block-heading"><span id="toc19">TOCOL/TOROWとの連携（2次元範囲を渡す場合のエラー回避）</span></h3>



<p>「A1:D3 の3行4列をいったん並べ替えたい」という場面で、そのままWRAPROWSに渡すと <code>#VALUE!</code> エラーになります。vectorは1次元配列しか受け付けないためです。</p>



<p>先に <a href="https://mashukabu.com/excel-function-howto-use-tocol/">TOCOL関数</a> かTOROW関数で1次元化してから渡します。</p>



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



<p><code>TOROW(A1:D3)</code> で12個の要素が横1行になり、それをWRAPROWSで4列ずつ折り返す流れです。元の並び順を保ちたいかどうかでTOROW（行優先）とTOCOL（列優先）を使い分けてください。</p>



<h3 class="wp-block-heading"><span id="toc20">SORT・FILTERと組み合わせた動的整形</span></h3>



<p>FILTERで抽出した結果をWRAPROWSで整形するパターンも実務で出番があります。</p>



<pre class="wp-block-code"><code>=WRAPROWS(FILTER(A2:A100, B2:B100=&quot;有効&quot;), 4, &quot;&quot;)</code></pre>



<p>B列が「有効」の行だけA列を抽出し、4列ずつ折り返して空きは空白で埋める一発処理です。件数が増減してもスピルが自動追従するので、レイアウトのメンテが不要になります。</p>



<p>カレンダー風に日付を並べるのもおすすめです。</p>



<pre class="wp-block-code"><code>=WRAPROWS(SEQUENCE(30,1,DATE(2024,1,1),1), 7)</code></pre>



<p>1月1日から30日分の日付を生成し、7列（曜日分）で折り返すとカレンダー状になります。書式を「日付」に設定すれば即実用です。</p>



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



<p>最後に、WRAPROWSで遭遇しがちな3大エラーをまとめます。</p>



<h3 class="wp-block-heading"><span id="toc22">#VALUE! エラー（多次元配列を直接渡したとき）</span></h3>



<p>原因は、vectorに2次元範囲（複数行かつ複数列）を渡したことです。</p>



<pre class="wp-block-code"><code>=WRAPROWS(A1:D3, 4)   // NG: 3行4列を直接渡している</code></pre>



<p>TOROWかTOCOLで1次元化してから渡します。</p>



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



<h3 class="wp-block-heading"><span id="toc23">#NUM! エラー（wrap_countに0以下を指定したとき）</span></h3>



<p><code>wrap_count</code> に <code>0</code> や負の数を渡すと <code>#NUM!</code> になります。セル参照でwrap_countを指定している場合、参照先が空や0になっていないか確認してください。</p>



<pre class="wp-block-code"><code>=WRAPROWS(A1:A12, 0)   // NG: #NUM!
=WRAPROWS(A1:A12, 4)   // OK</code></pre>



<h3 class="wp-block-heading"><span id="toc24">#N/A エラー（pad_with省略時の端数セル）</span></h3>



<p>厳密にはエラーというより「想定通りの挙動」ですが、見た目を整えたい・集計に渡したいときは <code>pad_with</code> を明示しましょう。集計用途なら <code>0</code>、表示用途なら <code>""</code> が定番です。</p>



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



<p>WRAPROWS関数は縦データを横に並べ直すシンプルな関数ですが、<code>pad_with</code> の使い分けとWRAPCOLSとの方向の違いを押さえれば、手作業のコピペ地獄から一気に解放されます。FILTERやSEQUENCEと組み合わせれば動的に追従するレイアウトも作れるので、ぜひ手元のシートで試してみてください。</p>



<p>列方向に折り返したいときは<a href="https://mashukabu.com/spreadsheet-wrapcols-function/">WRAPCOLS関数</a>、2次元範囲を前処理したいときは<a href="https://mashukabu.com/excel-function-howto-use-tocol/">TOCOL関数</a>とセットで覚えておくと、配列操作の引き出しがぐっと広がります。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-wraprows-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのWRAPCOLS関数の使い方｜列方向にラップ</title>
		<link>https://mashukabu.com/spreadsheet-wrapcols-function/</link>
					<comments>https://mashukabu.com/spreadsheet-wrapcols-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Mon, 20 Apr 2026 00:42:36 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[WRAPCOLS]]></category>
		<category><![CDATA[スプレッドシート関数]]></category>
		<category><![CDATA[データ整形]]></category>
		<category><![CDATA[中級者向け]]></category>
		<category><![CDATA[配列操作]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=6094</guid>

					<description><![CDATA[GoogleスプレッドシートのWRAPCOLS関数で縦1列データを複数列に自動変換する方法を解説。基本構文・引数・pad_withの端数処理・WRAPROWSとの使い分けを実務ユースケース付きで丁寧に紹介します。]]></description>
										<content:encoded><![CDATA[
<p>縦1列に並んだデータを、複数列の見やすい表に整形し直したい場面はありませんか。12か月分の月次データを3行4列の季節別レイアウトにしたい、50件の商品コードを10行5列のカタログ風にまとめたい、といったニーズです。</p>



<p>手作業でコピペするのは正直つらい作業です。行数が増えるほどミスのリスクも上がります。そこで便利なのが <code>WRAPCOLS</code> 関数です。縦1列の配列を指定した行数ごとに折り返し、列方向に並べ替えてくれます。</p>



<p>この記事では、<code>WRAPCOLS</code> 関数の基本構文から、端数処理のコツ、<code>WRAPROWS</code> との使い分けまで、実務で迷わず使えるレベルまで丁寧に解説します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">スプレッドシートのWRAPCOLS関数とは？</a><ol><li><a href="#toc2" tabindex="0">できること：縦1列のリストを指定行数で複数列に整形</a></li><li><a href="#toc3" tabindex="0">WRAPROWS関数との方向の違い</a></li></ol></li><li><a href="#toc4" tabindex="0">WRAPCOLS関数の基本構文と引数</a><ol><li><a href="#toc5" tabindex="0">第1引数：範囲（1次元の行または列）</a></li><li><a href="#toc6" tabindex="0">第2引数：折り返しの値（何行ごとに折り返すか）</a></li><li><a href="#toc7" tabindex="0">第3引数：代替文字（端数セルの埋め方）</a></li></ol></li><li><a href="#toc8" tabindex="0">基本的な使い方：縦1列リストを複数列に変換する</a><ol><li><a href="#toc9" tabindex="0">サンプル：12か月データを3行4列に変換</a></li><li><a href="#toc10" tabindex="0">サンプル：週次7日データを1週7行で整形</a></li><li><a href="#toc11" tabindex="0">サンプル：SEQUENCEでテスト用データを作る</a></li></ol></li><li><a href="#toc12" tabindex="0">pad_with（パディング値）の活用：端数セルをきれいに処理する</a><ol><li><a href="#toc13" tabindex="0">省略時（#N/Aが入る）</a></li><li><a href="#toc14" tabindex="0">空文字列を指定する</a></li><li><a href="#toc15" tabindex="0">任意の値（「-」など）を指定する</a></li></ol></li><li><a href="#toc16" tabindex="0">WRAPROWSとの違い・使い分け</a><ol><li><a href="#toc17" tabindex="0">行方向か列方向か：感覚的な判断ポイント</a></li><li><a href="#toc18" tabindex="0">どちらを使うべきか：実務シナリオ別</a></li></ol></li><li><a href="#toc19" tabindex="0">実務ユースケース：こんな場面で使える</a><ol><li><a href="#toc20" tabindex="0">月次レポートデータを月別列に整形</a></li><li><a href="#toc21" tabindex="0">商品カタログを列グループに分けて表示</a></li><li><a href="#toc22" tabindex="0">TOCOLと組み合わせて2次元→1列→複数列に変換</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!エラー：引数が1次元でない場合</a></li><li><a href="#toc26" tabindex="0">#NUM!エラー：折り返しの値が0以下</a></li><li><a href="#toc27" tabindex="0">Excelファイルとの互換性</a></li></ol></li><li><a href="#toc28" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

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



<p><code>WRAPCOLS</code>（ラップコルズ）は、&#8221;wrap（折り返す）&#8221; と &#8220;columns（列）&#8221; を組み合わせた関数名です。1行または1列の1次元配列を指定した行数で折り返し、複数列のレイアウトに整形します。Googleスプレッドシートでは2023年2月頃に、Microsoft 365のExcelから移植された配列関数群の1つとして利用できるようになりました。</p>



<h3 class="wp-block-heading"><span id="toc2">できること：縦1列のリストを指定行数で複数列に整形</span></h3>



<p>たとえば <code>A1:A12</code> に1月から12月までの12か月分のデータが縦に並んでいるとします。このとき <code>=WRAPCOLS(A1:A12, 3)</code> と入力すると、3行ごとに折り返して4列のブロックに変換してくれます。1〜3月が1列目、4〜6月が2列目、7〜9月が3列目、10〜12月が4列目という具合です。</p>



<h3 class="wp-block-heading"><span id="toc3">WRAPROWS関数との方向の違い</span></h3>



<p>よく似た関数に <code>WRAPROWS</code> があります。両者の違いは折り返しの方向だけです。</p>



<ul class="wp-block-list"><li><code>WRAPCOLS</code>: 列方向（縦）に詰めて、右へ折り返していく</li><li><code>WRAPROWS</code>: 行方向（横）に詰めて、下へ折り返していく</li></ul>



<p>名前の「COLS（列）」「ROWS（行）」は「どう折り返すか」ではなく「何を単位に詰めるか」を表している、と覚えるとスムーズです。詳しくは <a href="https://mashukabu.com/spreadsheet-wraprows-function/">スプレッドシートのWRAPROWS関数の使い方</a> の記事もあわせてご覧ください。</p>



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



<p>構文はシンプルで、引数は3つです。</p>



<pre class="wp-block-code"><code>=WRAPCOLS(範囲, 折り返しの値, [代替文字])</code></pre>



<p>英語表記では <code>=WRAPCOLS(range, wrap_count, [pad_with])</code> です。Excelでは第1引数が <code>vector</code> と呼ばれますが、Googleスプレッドシートの関数ヘルプでは「範囲」と表示されます。動作は完全に同じです。</p>



<h3 class="wp-block-heading"><span id="toc5">第1引数：範囲（1次元の行または列）</span></h3>



<p>折り返したい元データの範囲を指定します。重要なのが「1次元配列のみ受け付ける」という制約です。<code>A1:A12</code>（1列）や <code>A1:L1</code>（1行）はOKですが、<code>A1:C5</code> のような複数行×複数列の2次元範囲を渡すと <code>#VALUE!</code> エラーになります。</p>



<p>2次元データを扱いたい場合は、先に <code>TOCOL</code> 関数などで1列に直してから渡すパターンが便利です。詳しくは後半の実務ユースケースで紹介します。</p>



<h3 class="wp-block-heading"><span id="toc6">第2引数：折り返しの値（何行ごとに折り返すか）</span></h3>



<p>1列あたりに入れる最大の行数を整数で指定します。ここがやや直感に反するポイントで、「列数を指定する」のではなく「1列に詰める行数を指定する」のです。</p>



<pre class="wp-block-code"><code>=WRAPCOLS(A1:A12, 3)   // 各列に3行ずつ入れる → 結果は3行4列
=WRAPCOLS(A1:A12, 4)   // 各列に4行ずつ入れる → 結果は4行3列
=WRAPCOLS(A1:A12, 6)   // 各列に6行ずつ入れる → 結果は6行2列</code></pre>



<p>小数を渡すと切り捨てられ、0以下を指定すると <code>#NUM!</code> エラーになります。</p>



<h3 class="wp-block-heading"><span id="toc7">第3引数：代替文字（端数セルの埋め方）</span></h3>



<p>折り返した結果、最後の列にセルが余ったときの埋め方を指定します。省略するとそのセルには <code>#N/A</code> が入ります。業務で使うときはほぼ必ず指定しておきたい引数です。</p>



<h2 class="wp-block-heading"><span id="toc8">基本的な使い方：縦1列リストを複数列に変換する</span></h2>



<p>実際に手を動かしながら見ていきましょう。</p>



<h3 class="wp-block-heading"><span id="toc9">サンプル：12か月データを3行4列に変換</span></h3>



<p><code>A1:A12</code> に「1月」から「12月」までの文字列が入っているとします。</p>



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



<p>この式をC1セルなどに入力すると、C1:F3の範囲にスピル展開され、次のような表になります。</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>1列目に1〜3月（Q1）、2列目に4〜6月（Q2）、と四半期ごとのレイアウトが自動で生成できました。</p>



<h3 class="wp-block-heading"><span id="toc10">サンプル：週次7日データを1週7行で整形</span></h3>



<p>1日ごとの売上データなど、日次のデータを週単位の縦列に並べ替えたいケースです。28日分（4週間）のデータが <code>A1:A28</code> にあるとき、次のように書きます。</p>



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



<p>各列が1週間分（7日）の縦リストになり、4列並びます。曜日ヘッダーを隣に添えれば、そのままシフト表や週報の土台として使えます。</p>



<h3 class="wp-block-heading"><span id="toc11">サンプル：SEQUENCEでテスト用データを作る</span></h3>



<p>「実際にデータを並べる前に、挙動を確認したい」というときは <code>SEQUENCE</code> 関数と組み合わせるのが便利です。</p>



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



<p>1〜12の連番が3行4列に展開されます。どこに何が入るかが数字で直感的にわかるので、引数の値を変えて試す練習にも向いています。</p>



<h2 class="wp-block-heading"><span id="toc12">pad_with（パディング値）の活用：端数セルをきれいに処理する</span></h2>



<p><code>A1:A10</code> の10項目を <code>wrap_count=3</code> で折り返してみましょう。10÷3＝3あまり1なので、4列目の2行目・3行目がどうしても余ります。このときの挙動を3パターン比較します。</p>



<h3 class="wp-block-heading"><span id="toc13">省略時（#N/Aが入る）</span></h3>



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



<p>余ったセルには <code>#N/A</code> が表示されます。見栄えが悪く、そのセルを参照する下流の計算にもエラーが伝播するので、業務用途ではおすすめしません。</p>



<h3 class="wp-block-heading"><span id="toc14">空文字列を指定する</span></h3>



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



<p>余ったセルは空白になります。見た目がきれいで、他の関数からの参照も壊れにくいので、汎用的に使える指定です。迷ったらまずこれを指定するのが無難です。</p>



<h3 class="wp-block-heading"><span id="toc15">任意の値（「-」など）を指定する</span></h3>



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



<p>ハイフンやゼロなど、任意の値を埋められます。「データなし」を明示的に示したいレポートや、合計計算の対象にしたいときに便利です。</p>



<figure class="wp-block-table"><table><thead><tr><th>pad_with の指定</th><th>端数セルの表示</th><th>向いている用途</th></tr></thead><tbody><tr><td>省略</td><td><code>#N/A</code></td><td>端数が出ないと確信できるときのみ</td></tr><tr><td><code>""</code>（空文字列）</td><td>空白</td><td>見栄え重視の表示用整形</td></tr><tr><td><code>"-"</code> など任意の文字列</td><td>指定した文字</td><td>「該当なし」を明示したい帳票</td></tr><tr><td><code>0</code> など任意の数値</td><td>指定した数値</td><td>集計・合計対象に含めたい数値データ</td></tr></tbody></table></figure>



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



<p>同じ「折り返し系」の兄弟関数 <code>WRAPROWS</code> との違いを整理します。</p>



<h3 class="wp-block-heading"><span id="toc17">行方向か列方向か：感覚的な判断ポイント</span></h3>



<p>縦1列のデータ <code>[1,2,3,4,5,6]</code> を <code>wrap_count=3</code> で折り返した場合、それぞれ次のようになります。</p>



<pre class="wp-block-code"><code>=WRAPCOLS({1;2;3;4;5;6}, 3)
// → 3行2列
//    1  4
//    2  5
//    3  6

=WRAPROWS({1;2;3;4;5;6}, 3)
// → 2行3列
//    1  2  3
//    4  5  6</code></pre>



<p><code>WRAPCOLS</code> は「縦に詰めてから右へ」、<code>WRAPROWS</code> は「横に詰めてから下へ」と動く、と覚えると迷いません。</p>



<h3 class="wp-block-heading"><span id="toc18">どちらを使うべきか：実務シナリオ別</span></h3>



<ul class="wp-block-list"><li><strong>WRAPCOLSが向く例</strong>: 月次12件を四半期別（3行4列）に並べる、従業員名簿を部署ごとに列で分ける、商品コードをカタログ形式の縦リスト×複数列にする</li><li><strong>WRAPROWSが向く例</strong>: 週次7日データを4週分の4行7列に整形する、横長のログを指定件数ごとの行に折り返す</li></ul>



<p>「最終的に縦長にしたいか、横長にしたいか」を先にイメージすると選びやすいです。</p>



<h2 class="wp-block-heading"><span id="toc19">実務ユースケース：こんな場面で使える</span></h2>



<h3 class="wp-block-heading"><span id="toc20">月次レポートデータを月別列に整形</span></h3>



<p>月次KPIを「Q1・Q2・Q3・Q4」の4列にまとめたいときは、次のように書きます。</p>



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



<p>四半期ごとのレビュー資料や、横並びで比較したい分析シートの下準備に使えます。</p>



<h3 class="wp-block-heading"><span id="toc21">商品カタログを列グループに分けて表示</span></h3>



<p>商品コードが50件、<code>A1:A50</code> に縦に並んでいるとします。10行×5列のカタログ形式にしたいときは次のとおりです。</p>



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



<p>50は10で割り切れるので端数は出ません。割り切れない件数（例：52件）の場合は <code>pad_with=""</code> を指定して空白で埋めるときれいです。</p>



<h3 class="wp-block-heading"><span id="toc22">TOCOLと組み合わせて2次元→1列→複数列に変換</span></h3>



<p><code>WRAPCOLS</code> は1次元配列しか受け付けませんが、前処理に <a href="https://mashukabu.com/spreadsheet-tocol-function/">TOCOL関数</a> を挟めば2次元範囲も扱えます。たとえば <code>A1:C10</code>（10行×3列）の30件を、5行6列に並べ替えたいとき。</p>



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



<p><code>TOCOL</code> でまず縦1列の30件に直し、それを <code>WRAPCOLS</code> で5行ごとに折り返します。転置して処理したい場合は <a href="https://mashukabu.com/spreadsheet-transpose-function/">TRANSPOSE関数</a> との合わせ技も有効です。複数表の結合が絡む場合は <a href="https://mashukabu.com/spreadsheet-vstack-function/">VSTACK関数</a> や <a href="https://mashukabu.com/spreadsheet-hstack-function/">HSTACK関数</a> も選択肢に入ります。</p>



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



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



<p>原因は <code>pad_with</code> を省略したまま、折り返し時に端数が発生したケースです。第3引数に <code>""</code> や任意の値を指定するだけで解消します。</p>



<pre class="wp-block-code"><code>// NG: 10件をwrap_count=3で折り返すと #N/A が残る
=WRAPCOLS(A1:A10, 3)

// OK: 空文字で埋めて見た目をきれいに
=WRAPCOLS(A1:A10, 3, &quot;&quot;)</code></pre>



<h3 class="wp-block-heading"><span id="toc25">#VALUE!エラー：引数が1次元でない場合</span></h3>



<p><code>WRAPCOLS</code> の第1引数は1行または1列の1次元配列のみ受け付けます。<code>A1:C10</code> のような2次元範囲を渡すと <code>#VALUE!</code> になります。<code>TOCOL</code> で1列化してから渡すか、範囲を1列または1行に絞り直してください。</p>



<h3 class="wp-block-heading"><span id="toc26">#NUM!エラー：折り返しの値が0以下</span></h3>



<p><code>wrap_count</code> に <code>0</code> や負の数を指定するとこのエラーになります。1以上の整数を指定してください。小数は自動で切り捨てられます。</p>



<h3 class="wp-block-heading"><span id="toc27">Excelファイルとの互換性</span></h3>



<p><code>WRAPCOLS</code> はMicrosoft 365およびExcel 2024以降で利用できます。Excel 2021以前で作成されたファイルをスプレッドシートで開いた場合、<code>WRAPCOLS</code> 式はそのまま動作します。逆に、<code>WRAPCOLS</code> 式を含むファイルをExcel 2021以前で開くと計算できないため注意してください。ExcelとGoogleスプレッドシートの挙動比較は <a href="https://mashukabu.com/excel-wrapcols-function/">ExcelのWRAPCOLS関数の使い方</a> の記事も参考になります。</p>



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



<p><code>WRAPCOLS</code> 関数は、縦1列のデータを「1列あたり何行」で折り返すかを指定して、複数列のレイアウトに整形する関数です。押さえておきたいポイントをおさらいします。</p>



<ul class="wp-block-list"><li>構文は <code>=WRAPCOLS(範囲, 折り返しの値, [代替文字])</code></li><li>第1引数は1次元配列のみ。2次元は <code>TOCOL</code> などで先に1列化する</li><li>第2引数は「列数」ではなく「1列あたりの行数」</li><li>第3引数 <code>pad_with</code> は基本 <code>""</code> を指定しておくと端数トラブルを防げる</li><li>折り返し方向を変えたいときは <code>WRAPROWS</code> を使う</li></ul>



<p>月次データの四半期別整形、週次データの週別整形、商品カタログの列分割など、手作業コピペが発生しがちな場面で大きな時短効果があります。<code>TOCOL</code>・<code>TOROW</code>・<code>TRANSPOSE</code>・<code>VSTACK</code> などの配列操作関数と組み合わせると整形パターンの幅が一気に広がります。ぜひセットで使いこなしていきましょう。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-wrapcols-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのTAKE関数の使い方｜先頭/末尾の行・列を抽出</title>
		<link>https://mashukabu.com/excel-function-howto-use-take/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-take/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sun, 12 Apr 2026 15:36:42 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[TAKE関数]]></category>
		<category><![CDATA[配列操作]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=5910</guid>

					<description><![CDATA[ExcelのTAKE関数は、配列の先頭・末尾から指定した行数・列数を取り出す関数です。正の値で先頭から、負の値で末尾から取得できます。SORT関数と組み合わせたTOP N抽出など実践例も解説します。]]></description>
										<content:encoded><![CDATA[
<p>ExcelのTAKE関数は、配列から先頭または末尾のN件を取り出す関数です。</p>



<p>「売上上位3件を抽出したい」「最新N件を常に表示したい」に直接答えられます。</p>



<p>この記事では、基本的な使い方から、SORT・FILTER関数との組み合わせ、DROP関数との使い分けまで解説します。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>対応バージョン</strong>: Microsoft 365 / Excel 2024 以降のみ。Excel 2021 以前は非対応です。</p></blockquote>




  <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">TAKE関数とは？</a><ol><li><a href="#toc2" tabindex="0">読み方・語源</a></li><li><a href="#toc3" tabindex="0">できること（ひと言で）</a></li><li><a href="#toc4" tabindex="0">対応バージョン（Excel 365 / 2024以降）</a></li></ol></li><li><a href="#toc5" tabindex="0">TAKE関数の書き方</a><ol><li><a href="#toc6" tabindex="0">構文と引数</a></li><li><a href="#toc7" tabindex="0">引数「行数」「列数」の正・負の意味</a></li></ol></li><li><a href="#toc8" tabindex="0">先頭のN行を取り出す（正の値）</a></li><li><a href="#toc9" tabindex="0">末尾のN行を取り出す（負の値）</a></li><li><a href="#toc10" tabindex="0">列を指定して取り出す</a><ol><li><a href="#toc11" tabindex="0">先頭N列を取り出す</a></li><li><a href="#toc12" tabindex="0">末尾N列を取り出す</a></li><li><a href="#toc13" tabindex="0">行と列を同時に指定する</a></li></ol></li><li><a href="#toc14" tabindex="0">SORT関数と組み合わせてTOP N抽出</a><ol><li><a href="#toc15" tabindex="0">売上上位3件を抽出する例</a></li><li><a href="#toc16" tabindex="0">SORTBY＋TAKEで別列基準のランキング</a></li></ol></li><li><a href="#toc17" tabindex="0">FILTER関数と組み合わせて条件付き抽出</a></li><li><a href="#toc18" tabindex="0">DROP関数との使い分け</a><ol><li><a href="#toc19" tabindex="0">TAKE vs DROP 比較表</a></li><li><a href="#toc20" tabindex="0">どちらを使うか判断基準</a></li></ol></li><li><a href="#toc21" tabindex="0">まとめ・注意点</a><ol><li><a href="#toc22" tabindex="0">できること</a></li><li><a href="#toc23" tabindex="0">注意事項</a></li></ol></li></ol>
    </div>
  </div>

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



<h3 class="wp-block-heading"><span id="toc2">読み方・語源</span></h3>



<p>TAKE関数（読み方：テイク）は、配列の先頭・末尾から行や列を取り出す関数です。関数名は英語の take（取り出す）に由来します。</p>



<p>結果は複数セルに自動展開されます（スピル動作）。</p>



<h3 class="wp-block-heading"><span id="toc3">できること（ひと言で）</span></h3>



<ul class="wp-block-list"><li>先頭N行・末尾N行の取り出し</li><li>先頭N列・末尾N列の取り出し</li><li>行と列を同時に指定した範囲の切り出し</li></ul>



<p>他の配列関数と組み合わせることで、複雑な抽出も1式で書けます。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>バージョン</th><th>対応</th></tr></thead><tbody><tr><td>Microsoft 365（Win/Mac）</td><td>○</td></tr><tr><td>Excel for the web</td><td>○</td></tr><tr><td>Excel 2024</td><td>○</td></tr><tr><td>Excel 2021</td><td>×</td></tr><tr><td>Excel 2019 以前</td><td>×</td></tr></tbody></table></figure>



<p>TAKE関数はMicrosoft 365またはExcel 2024以降が必要です。Excel 2021は非対応です。</p>



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



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



<pre class="wp-block-code"><code>=TAKE(配列, 行数, [列数])</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須</th><th>説明</th></tr></thead><tbody><tr><td>配列</td><td>必須</td><td>取り出し元の配列またはセル範囲</td></tr><tr><td>行数</td><td>必須</td><td>取り出す行数。正の値→先頭から、負の値→末尾から</td></tr><tr><td>列数</td><td>省略可</td><td>取り出す列数。正の値→先頭から、負の値→末尾から</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc7">引数「行数」「列数」の正・負の意味</span></h3>



<p>行数・列数の符号で、先頭・末尾どちらから数えるかが変わります。</p>



<ul class="wp-block-list"><li><strong>正の値</strong>: 先頭から数えてN行（列）を取り出す</li><li><strong>負の値</strong>: 末尾から数えてN行（列）を取り出す</li></ul>



<p>列のみを指定したい場合は、行数の位置をカンマで区切って空にします。</p>



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



<p>第2引数を空のままにすることで、列数だけを指定できます。</p>



<h2 class="wp-block-heading"><span id="toc8">先頭のN行を取り出す（正の値）</span></h2>



<p>A2:C10の範囲を使うとします。先頭3行を取り出すには次のように書きます。</p>



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



<p>A2:C4に相当する3行分が返されます。</p>



<p>行数が実際の行数を超えても、エラーにはなりません。配列全体が返されます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>注意</strong>: 行数に <strong>0</strong> を指定すると <code>#CALC!</code> エラーになります。0は指定しないでください。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc9">末尾のN行を取り出す（負の値）</span></h2>



<p>末尾3行を取り出すには、行数を負の値にします。</p>



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



<p>A2:C10の末尾3行が返されます。A8:C10に相当します。</p>



<p>注文履歴テーブルが日付の古い順に並んでいるとします。末尾3行が最新3件に相当します。</p>



<pre class="wp-block-code"><code>=TAKE(注文履歴テーブル, -3)</code></pre>



<p>「最新N件を常に表示したい」という用途に最適です。</p>



<h2 class="wp-block-heading"><span id="toc10">列を指定して取り出す</span></h2>



<h3 class="wp-block-heading"><span id="toc11">先頭N列を取り出す</span></h3>



<p>A2:C10を使うとします。先頭2列を取り出すには次のように書きます。</p>



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



<p>A2:B10に相当する2列分が返されます。</p>



<h3 class="wp-block-heading"><span id="toc12">末尾N列を取り出す</span></h3>



<p>末尾2列を取り出すには、列数を負の値にします。</p>



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



<p>B2:C10に相当する2列分が返されます。</p>



<h3 class="wp-block-heading"><span id="toc13">行と列を同時に指定する</span></h3>



<p>行数と列数の両方を指定すると、矩形範囲を切り出せます。</p>



<p>A2:C10から先頭3行 × 先頭2列を取り出すとします。</p>



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



<p>A2:B4に相当する範囲が返されます。</p>



<h2 class="wp-block-heading"><span id="toc14">SORT関数と組み合わせてTOP N抽出</span></h2>



<h3 class="wp-block-heading"><span id="toc15">売上上位3件を抽出する例</span></h3>



<p>A2:C10に「会社名・商品名・売上」が入っているとします。C列の高い順に上位3件を取り出すには次のように書きます。</p>



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



<p>SORT関数でA2:C10を3列目（C列）基準に降順で並べ替えます。その結果の先頭3行をTAKEで取り出します。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>SORT関数の書き方</strong>: <code>=SORT(配列, 並べ替えインデックス, 並べ替え順序)</code><br>並べ替え順序は 1=昇順、-1=降順 です。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc16">SORTBY＋TAKEで別列基準のランキング</span></h3>



<p>SORTBY関数は、表示する配列と並べ替えの基準列を別々に指定できます。</p>



<p>A2:C10に「会社名・商品名・売上」が入っているとします。C列の高い順に上位3件を取り出すには次のように書きます。</p>



<pre class="wp-block-code"><code>=TAKE(SORTBY(A2:C10, C2:C10, -1), 3)</code></pre>



<p>C2:C10を基準に降順で並べ替えます。その先頭3行をTAKEで取り出します。</p>



<p>SORTと違い、SORTBYは表示範囲外の列を基準にすることもできます。複数の基準列を設定したい場合にも対応しています。</p>



<h2 class="wp-block-heading"><span id="toc17">FILTER関数と組み合わせて条件付き抽出</span></h2>



<p>条件で絞り込んだうえで先頭N件を取り出したいときは、FILTER関数と組み合わせます。</p>



<p>B列が「東京」の行だけを対象にするとします。先頭5件を取り出すには次のように書きます。</p>



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



<p>FILTER関数で「B列=東京」の行を抽出します。その結果の先頭5件をTAKEで取り出します。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>注意</strong>: FILTER関数の結果が0件の場合、<code>#CALC!</code> エラーになります。<code>IFERROR</code> 関数を使ってエラー処理を追加してください。</p></blockquote>



<pre class="wp-block-code"><code>=IFERROR(TAKE(FILTER(A2:C10, B2:B10=&quot;東京&quot;), 5), &quot;該当なし&quot;)</code></pre>



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



<h3 class="wp-block-heading"><span id="toc19">TAKE vs DROP 比較表</span></h3>



<p>TAKE関数と対になる関数がDROP関数です。構文は同じですが、動作が逆になります。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>動作</th><th>使いどころ</th></tr></thead><tbody><tr><td>TAKE</td><td>指定部分を<strong>残す</strong>（取り出す）</td><td>「上位3件だけほしい」</td></tr><tr><td>DROP</td><td>指定部分を<strong>除外する</strong>（捨てる）</td><td>「ヘッダー行を除いた残りがほしい」</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>DROP関数の書き方</strong>: <code>=DROP(配列, 行数, [列数])</code></p></blockquote>



<h3 class="wp-block-heading"><span id="toc20">どちらを使うか判断基準</span></h3>



<ul class="wp-block-list"><li><strong>欲しい部分が決まっている</strong> → TAKE</li><li><strong>除外したい部分が決まっている</strong> → DROP</li></ul>



<p>A1:C10にヘッダーを含むデータが入っているとします。1行目（ヘッダー）を除いた残りを取り出すには次のように書きます。</p>



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



<p>TAKEとDROPは組み合わせることもできます。ヘッダーを除いたうえで先頭3件を取り出すとします。</p>



<pre class="wp-block-code"><code>=TAKE(DROP(A1:C10, 1), 3)</code></pre>



<p>DROP関数もTAKEと同様に、Microsoft 365 / Excel 2024以降のみ対応しています。</p>



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



<p>TAKE関数を使うと、配列から先頭・末尾のN件を簡単に取り出せます。</p>



<h3 class="wp-block-heading"><span id="toc22">できること</span></h3>



<ul class="wp-block-list"><li>先頭・末尾からN行・N列を取り出す</li><li>SORT・SORTBYと組み合わせてTOP N抽出</li><li>FILTERと組み合わせて条件付き先頭N件を取得</li><li>DROPと組み合わせてより柔軟な範囲切り出し</li></ul>



<h3 class="wp-block-heading"><span id="toc23">注意事項</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>注意点</th><th>詳細</th></tr></thead><tbody><tr><td>バージョン制限</td><td>Microsoft 365 / Excel 2024以降のみ。Excel 2021は非対応</td></tr><tr><td>行数に0を指定しない</td><td><code>#CALC!</code> エラーになる</td></tr><tr><td>配列サイズ超過</td><td><code>#NUM!</code> エラーになる場合がある</td></tr><tr><td>行数・列数に文字列を指定しない</td><td><code>#VALUE!</code> エラーになる</td></tr><tr><td>スピル動作</td><td>結果は複数セルに自動展開される</td></tr><tr><td>行数が配列を超えた場合</td><td>エラーにならず、配列全体が返される</td></tr></tbody></table></figure>



<p>TAKE関数はMicrosoft 365環境であれば今すぐ使えます。ぜひSORT関数やFILTER関数と組み合わせて活用してみてください。</p>



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



<p>配列操作系の関数についてはこちらもご覧ください。</p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-reduce/">REDUCE関数</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-scan/">SCAN関数</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-makearray/">MAKEARRAY関数</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-lookup/">LOOKUP関数</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-take/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのTOROW関数の使い方｜2次元データを1行に変換</title>
		<link>https://mashukabu.com/spreadsheet-torow-function/</link>
					<comments>https://mashukabu.com/spreadsheet-torow-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 21 Mar 2026 12:05:00 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[1行に変換]]></category>
		<category><![CDATA[FLATTEN関数]]></category>
		<category><![CDATA[TOCOL関数]]></category>
		<category><![CDATA[TOROW関数]]></category>
		<category><![CDATA[配列操作]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4917</guid>

					<description><![CDATA[スプレッドシートのTOROW関数で2次元の範囲を1行に変換する方法を解説。空白やエラーの除外、行順・列順の切り替え、TOCOL関数やFLATTEN関数との違いまで、実務で使えるテクニックを紹介します。]]></description>
										<content:encoded><![CDATA[
<p>スプレッドシートで複数行にまたがるデータを、横1行にまとめたいことってありますよね。手作業でコピー＆ペーストするのは面倒ですし、データが更新されるたびにやり直しになります。</p>



<p>TOROW関数を使えば、2次元の範囲を数式ひとつで1行に変換できます。空白やエラーを自動で除外する機能もついているので、クリーンなデータ整理に最適です。</p>



<p>この記事では、TOROW関数の基本から、TOCOL関数・FLATTEN関数との違いまでわかりやすく解説します。</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">スプレッドシートのTOROW関数とは？</a><ol><li><a href="#toc2" tabindex="0">TOROW関数の基本構文</a></li><li><a href="#toc3" tabindex="0">第2引数「無視」の設定値</a></li><li><a href="#toc4" tabindex="0">第3引数「列方向スキャン」の読み取り順序</a></li></ol></li><li><a href="#toc5" tabindex="0">TOROW関数の基本的な使い方</a><ol><li><a href="#toc6" tabindex="0">サンプルデータ</a></li><li><a href="#toc7" tabindex="0">数値データだけを1行にする</a></li><li><a href="#toc8" tabindex="0">空白セルを除外して変換する</a></li><li><a href="#toc9" tabindex="0">列方向に読み取って変換する</a></li></ol></li><li><a href="#toc10" tabindex="0">TOROW関数の実務活用パターン</a><ol><li><a href="#toc11" tabindex="0">パターン1: 複数列の項目を横並びで一覧表示する</a></li><li><a href="#toc12" tabindex="0">パターン2: TOCOL関数と組み合わせて行列を変換する</a></li><li><a href="#toc13" tabindex="0">パターン3: SORT関数でソートしてから横並びにする</a></li><li><a href="#toc14" tabindex="0">パターン4: ARRAYFORMULA関数と組み合わせて一括計算する</a></li><li><a href="#toc15" tabindex="0">パターン5: 複数の範囲を1行に結合する</a></li></ol></li><li><a href="#toc16" tabindex="0">TOCOL関数との違い・使い分け</a></li><li><a href="#toc17" tabindex="0">FLATTEN関数との違い・使い分け</a></li><li><a href="#toc18" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc19" tabindex="0">まとめ</a><ol><li><a href="#toc20" tabindex="0">この記事で紹介した関数・関連記事</a></li></ol></li></ol>
    </div>
  </div>

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



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



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



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



<ul class="wp-block-list"><li>2次元のセル範囲を横1行に変換する</li><li>空白セルやエラー値を除外して変換できる</li><li>読み取り順序を行方向・列方向で切り替えられる</li><li>他の関数（SORT、UNIQUE、FILTERなど）と組み合わせて活用できる</li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>TOROW関数はGoogleスプレッドシート独自の関数ではなく、ExcelのMicrosoft 365でも使用できます。ただし、Excel 2019以前のバージョンでは使えません。</p></blockquote>



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



<pre class="wp-block-code"><code>=TOROW(配列, [無視], [列方向スキャン])</code></pre>



<p>カッコの中に、1行に変換したい範囲と、オプションの引数を指定します。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>説明</th></tr></thead><tbody><tr><td>配列</td><td>必須</td><td>1行に変換したいセル範囲または配列</td></tr><tr><td>無視</td><td>任意</td><td>除外する値の種類を指定する（0: すべて保持、1: 空白を除外、2: エラーを除外、3: 空白とエラーを除外）</td></tr><tr><td>列方向スキャン</td><td>任意</td><td>読み取り方向を指定する（FALSE: 行方向、TRUE: 列方向）</td></tr></tbody></table></figure>



<p>第1引数だけで使えるシンプルな関数です。第2・第3引数はどちらも省略可能で、必要なときだけ指定すれば大丈夫ですよ。</p>



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



<p>第2引数では、変換時に除外したい値の種類を数値で指定します。</p>



<figure class="wp-block-table"><table><thead><tr><th>値</th><th>動作</th></tr></thead><tbody><tr><td>0（省略時）</td><td>すべての値を保持する</td></tr><tr><td>1</td><td>空白セルを除外する</td></tr><tr><td>2</td><td>エラー値を除外する</td></tr><tr><td>3</td><td>空白セルとエラー値の両方を除外する</td></tr></tbody></table></figure>



<p>データに歯抜けやエラーが混ざっている場合は、1や3を指定するとクリーンな1行データを取得できます。</p>



<h3 class="wp-block-heading"><span id="toc4">第3引数「列方向スキャン」の読み取り順序</span></h3>



<p>第3引数では、2次元データをどの順番で読み取るかを指定します。</p>



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



<p>たとえば以下の2行x3列のデータを変換する場合です。</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></tbody></table></figure>



<ul class="wp-block-list"><li><strong>FALSE（行方向）</strong>: あ → い → う → え → お → か</li><li><strong>TRUE（列方向）</strong>: あ → え → い → お → う → か</li></ul>



<p>省略時は行方向（FALSE）で左上から右へ読み取ります。データの並び順が結果に影響するので、用途に合わせて切り替えてくださいね。</p>



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



<p>ここでは、月別の売上データをTOROW関数で1行に変換する例を紹介します。</p>



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



<p>A1:D4に以下のデータが入っているとします。</p>



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



<h3 class="wp-block-heading"><span id="toc7">数値データだけを1行にする</span></h3>



<p>B2:D4の数値部分だけを1行に変換します。出力先のセル（たとえばA6）に以下の数式を入力して、Enterを押します。</p>



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



<p>行方向（左→右、上→下）に読み取られ、9個の値が横1行に並びます。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A</th><th>B</th><th>C</th><th>D</th><th>E</th><th>F</th><th>G</th><th>H</th><th>I</th></tr></thead><tbody><tr><td>6</td><td>100</td><td>120</td><td>110</td><td>80</td><td>90</td><td>85</td><td>60</td><td>70</td><td>65</td></tr></tbody></table></figure>



<p>東京の4月→5月→6月、大阪の4月→5月→6月&#8230;という順番で並んでいますね。</p>



<h3 class="wp-block-heading"><span id="toc8">空白セルを除外して変換する</span></h3>



<p>データに空白セルが混ざっている場合は、第2引数に1を指定します。</p>



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



<p>空白セルをスキップして、値のあるセルだけが1行に並びます。データクレンジングの第一歩として便利ですよ。</p>



<h3 class="wp-block-heading"><span id="toc9">列方向に読み取って変換する</span></h3>



<p>第3引数にTRUEを指定すると、列方向に読み取ります。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A</th><th>B</th><th>C</th><th>D</th><th>E</th><th>F</th><th>G</th><th>H</th><th>I</th></tr></thead><tbody><tr><td>6</td><td>100</td><td>80</td><td>60</td><td>120</td><td>90</td><td>70</td><td>110</td><td>85</td><td>65</td></tr></tbody></table></figure>



<p>今度は4月の東京→大阪→名古屋、5月の東京→大阪→名古屋&#8230;という月別の順番になりました。「拠点別にまとめたいか」「月別にまとめたいか」で使い分けてください。</p>



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



<h3 class="wp-block-heading"><span id="toc11">パターン1: 複数列の項目を横並びで一覧表示する</span></h3>



<p>カテゴリ別に並んだ商品名を、1行にまとめて横並びで表示できます。</p>



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



<p>部署ごとに分かれた担当者名や、月別に分かれたタスク名を1行で一覧したい場面で活躍します。レポートのヘッダー行を動的に生成するときにも使えますよ。</p>



<h3 class="wp-block-heading"><span id="toc12">パターン2: TOCOL関数と組み合わせて行列を変換する</span></h3>



<p>TOCOL関数でいったん1列にまとめたデータを、TOROW関数で1行に変換し直すこともできます。</p>



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



<p>一見冗長に見えますが、<a href="https://mashukabu.com/spreadsheet-tocol-function/">TOCOL関数</a>で空白を除外してから1行に展開するという2段階処理が1つの数式で完結します。</p>



<h3 class="wp-block-heading"><span id="toc13">パターン3: SORT関数でソートしてから横並びにする</span></h3>



<p>データを並べ替えた結果を横方向に展開するパターンです。</p>



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



<p><a href="https://mashukabu.com/spreadsheet-tocol-function/">TOCOL関数</a>で1列にまとめ、<a href="https://mashukabu.com/spreadsheet-sort-sortn-sortby/">SORT関数</a>で昇順に並べ替えてから、TOROW関数で横1行に展開しています。数値の小さい順に横並びで表示したいときに便利です。</p>



<h3 class="wp-block-heading"><span id="toc14">パターン4: ARRAYFORMULA関数と組み合わせて一括計算する</span></h3>



<p>1行に変換した値に対して一括で計算を適用することもできます。</p>



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



<p>売上データを1行に変換しつつ、すべての値に1.1（税込み換算）を掛けています。<a href="https://mashukabu.com/spreadsheet-arrayformula-function/">ARRAYFORMULA関数</a>と組み合わせれば、変換と計算を1つの数式でまとめられますよ。</p>



<h3 class="wp-block-heading"><span id="toc15">パターン5: 複数の範囲を1行に結合する</span></h3>



<p>中カッコ（{}）で複数の範囲を配列として渡すと、まとめて1行に変換できます。</p>



<pre class="wp-block-code"><code>=TOROW({B2:D4; F2:H4}, 1)</code></pre>



<p>セミコロン（;）で縦方向に結合した配列を、TOROW関数で1行に変換しています。別々のシートや離れた範囲のデータを1つの行にまとめたいときに便利です。</p>



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



<p>TOROW関数には、ペアとなるTOCOL関数があります。どちらも2次元データを1次元に変換する関数ですが、出力の方向が異なります。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>TOROW関数</th><th>TOCOL関数</th></tr></thead><tbody><tr><td>出力方向</td><td>横1行に変換</td><td>縦1列に変換</td></tr><tr><td>構文</td><td><code>=TOROW(配列, [無視], [列方向スキャン])</code></td><td><code>=TOCOL(配列, [無視], [列方向スキャン])</code></td></tr><tr><td>引数</td><td>まったく同じ（3引数）</td><td>まったく同じ（3引数）</td></tr><tr><td>第2引数（無視）</td><td>同じ（0/1/2/3）</td><td>同じ（0/1/2/3）</td></tr><tr><td>第3引数（スキャン方向）</td><td>同じ（FALSE/TRUE）</td><td>同じ（FALSE/TRUE）</td></tr><tr><td>結果の展開方向</td><td>右方向にスピル</td><td>下方向にスピル</td></tr></tbody></table></figure>



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



<ul class="wp-block-list"><li><strong>横方向にデータを並べたい</strong> → TOROW関数</li><li><strong>縦方向にデータを並べたい</strong> → TOCOL関数</li></ul>



<p>引数の構造は完全に同じなので、出力方向を変えたいときは関数名を入れ替えるだけで切り替えられます。</p>



<p>実務では、<a href="https://mashukabu.com/spreadsheet-tocol-function/">TOCOL関数</a>を使うケースのほうが多いです。スプレッドシートではデータを縦方向に並べるのが基本で、SORT関数やFILTER関数、UNIQUE関数など縦方向のデータを前提とした関数が多いためです。TOROW関数は、横方向のレイアウトが必要な場面で活躍します。</p>



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



<p>スプレッドシートには、似た機能を持つFLATTEN関数もあります。FLATTEN関数は出力が縦1列に固定されるため、横1行に変換したいときはTOROW関数を使う必要があります。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>TOROW関数</th><th>FLATTEN関数</th></tr></thead><tbody><tr><td>出力方向</td><td>横1行</td><td>縦1列</td></tr><tr><td>空白・エラーの除外</td><td>できる（第2引数で指定）</td><td>できない</td></tr><tr><td>スキャン方向の指定</td><td>できる（第3引数で指定）</td><td>できない（行方向固定）</td></tr><tr><td>複数範囲の結合</td><td>配列記法（{}）で対応</td><td>引数を複数指定可能</td></tr><tr><td>Excel互換性</td><td>あり（Microsoft 365）</td><td>なし（Sheets独自）</td></tr></tbody></table></figure>



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



<ul class="wp-block-list"><li><strong>横1行に変換したい、または空白除外・スキャン方向の制御が必要</strong> → TOROW関数</li><li><strong>縦1列でよく、複数の離れた範囲をシンプルに結合したい</strong> → FLATTEN関数</li></ul>



<p>FLATTEN関数の最大の利点は、複数の範囲を引数として直接指定できることです。</p>



<pre class="wp-block-code"><code>=FLATTEN(A1:C3, E1:G3, I1:K3)</code></pre>



<p>ただし、FLATTEN関数の出力は縦方向に固定されるため、横1行に並べたい場合は対応できません。TOROW関数には空白除外やスキャン方向の制御もあるので、より柔軟な変換が可能ですよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>FLATTEN関数はExcelにはない、Googleスプレッドシート独自の関数です。Excelとの互換性を意識するなら、TOROW関数を使うのがおすすめです。</p></blockquote>



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



<p>TOROW関数はシンプルですが、使い方によってはエラーが発生します。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td><code>#REF!</code></td><td>出力先のセルに既にデータがある</td><td>出力先の範囲を空にしてください</td></tr><tr><td><code>#REF!</code></td><td>参照先の行や列が削除された</td><td>参照先セルが存在するか確認してください</td></tr><tr><td><code>#VALUE!</code></td><td>第2引数に0~3以外の値を指定した</td><td>0、1、2、3のいずれかを指定してください</td></tr><tr><td><code>#VALUE!</code></td><td>第3引数にTRUE/FALSE以外の値を指定した</td><td>TRUEまたはFALSEを指定してください</td></tr><tr><td><code>#NAME?</code></td><td>関数名のスペルミス</td><td>「TOROW」のスペルを確認してください</td></tr><tr><td>空白が混ざる</td><td>元データに空白セルがある</td><td>第2引数に1または3を指定して空白を除外してください</td></tr></tbody></table></figure>



<p>特に注意したいのが「出力先のセルに既にデータがある」ケースです。TOROW関数は右方向にスピル展開するため、右側のセルにデータがあると <code>#REF!</code> エラーになります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>エラー値が混在するデータを扱うときは、第2引数に2（エラー除外）または3（空白+エラー除外）を指定しましょう。IFERRORで個別に対処するよりスマートです。</p></blockquote>



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



<p>TOROW関数は、2次元のセル範囲を横1行に変換するための関数です。空白やエラーの除外、読み取り方向の制御まで備わっており、データ整理の強い味方になります。</p>



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



<ul class="wp-block-list"><li>TOROW関数は <code>=TOROW(範囲)</code> で、2次元データを横1行に変換する</li><li>第2引数で空白（1）やエラー（2）を除外できる。両方除外は3を指定する</li><li>第3引数でスキャン方向を切り替えられる（FALSE: 行方向、TRUE: 列方向）</li><li>TOCOL関数はペア関数で、縦1列に変換する。引数の構造は同じ</li><li>FLATTEN関数と比べて、横1行出力・空白除外・スキャン方向制御・Excel互換性の点で優れている</li></ul>



<p>まずは <code>=TOROW(A1:C3)</code> のシンプルな使い方から試してみてください。横方向にデータを展開したいときに、TOROW関数が力を発揮しますよ。</p>



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



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/spreadsheet-tocol-function/">スプレッドシートのTOCOL関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-transpose-function/">スプレッドシートのTRANSPOSE関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-unique-function/">スプレッドシートのUNIQUE関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-sort-sortn-sortby/">スプレッドシートのSORT関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-filter-function/">スプレッドシートのFILTER関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-arrayformula-function/">スプレッドシートのARRAYFORMULA関数の使い方</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-torow-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのCHOOSECOLS関数の使い方｜列を自由に抽出</title>
		<link>https://mashukabu.com/spreadsheet-choosecols-function/</link>
					<comments>https://mashukabu.com/spreadsheet-choosecols-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 21 Mar 2026 11:37:27 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[CHOOSECOLS関数]]></category>
		<category><![CDATA[CHOOSEROWS関数]]></category>
		<category><![CDATA[INDEX関数]]></category>
		<category><![CDATA[列を取り出す]]></category>
		<category><![CDATA[配列操作]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4897</guid>

					<description><![CDATA[スプレッドシートのCHOOSECOLS関数は、表から必要な列だけを抽出・並び替えて出力できる関数です。複数列一括指定・逆順取り出しの実例をINDEX関数との使い分けを交えて解説します。]]></description>
										<content:encoded><![CDATA[
<p>スプレッドシートの大きな表から、必要な列だけを別の場所に取り出したいことってありますよね。列を手動でコピーすると、元データが更新されるたびに貼り直しが必要になって面倒です。</p>



<p>CHOOSECOLS関数を使えば、必要な列だけを数式ひとつで抽出できます。列の順番を入れ替えたり、複数列をまとめて取り出したりすることも自在です。</p>



<p>この記事では、CHOOSECOLS関数の基本的な使い方から、INDEX関数との違い、実務での活用パターンまでわかりやすく解説します。</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">スプレッドシートのCHOOSECOLS関数とは？</a><ol><li><a href="#toc2" tabindex="0">CHOOSECOLS関数の基本構文</a></li></ol></li><li><a href="#toc3" tabindex="0">CHOOSECOLS関数の基本的な使い方</a><ol><li><a href="#toc4" tabindex="0">サンプルデータ</a></li><li><a href="#toc5" tabindex="0">1列だけ取り出す</a></li><li><a href="#toc6" tabindex="0">複数列をまとめて取り出す</a></li></ol></li><li><a href="#toc7" tabindex="0">CHOOSECOLS関数の実務活用パターン</a><ol><li><a href="#toc8" tabindex="0">レポート用に必要な列だけ抽出する</a></li><li><a href="#toc9" tabindex="0">列順を入れ替えて出力する</a></li><li><a href="#toc10" tabindex="0">負の値で末尾から取り出す</a></li></ol></li><li><a href="#toc11" tabindex="0">INDEX関数との違い・使い分け</a></li><li><a href="#toc12" tabindex="0">CHOOSEROWSとCHOOSECOLSの違い</a></li><li><a href="#toc13" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc14" tabindex="0">まとめ</a><ol><li><a href="#toc15" tabindex="0">この記事で紹介した関数・関連記事</a></li></ol></li></ol>
    </div>
  </div>

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



<p>CHOOSECOLS関数（読み方: チューズコラムズ関数）は、指定した列だけを元の範囲から<strong>自由に取り出す</strong>関数です。「choose columns（列を選ぶ）」が名前の由来です。</p>



<p>たとえば、10列ある売上表から「商品名」「金額」の2列だけを抜き出すことができます。元データと数式でつながっているため、元データが更新されれば抽出結果も自動で反映されますよ。</p>



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



<ul class="wp-block-list"><li>元データから必要な列だけを抽出する</li><li>複数の列番号をカンマで並べて一括取得できる</li><li>列の並び順を自由に入れ替えて出力できる</li><li>負の値を使って末尾から列を指定できる</li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>CHOOSECOLS関数はGoogleスプレッドシート独自の関数ではなく、ExcelのMicrosoft 365やExcel 2024でも使用できます。ただし、Excel 2019以前のバージョンでは使えません。</p></blockquote>



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



<pre class="wp-block-code"><code>=CHOOSECOLS(配列, 列番号1, [列番号2, ...])</code></pre>



<p>カッコの中に、元データの範囲と、取り出したい列の番号を指定します。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>説明</th></tr></thead><tbody><tr><td>配列</td><td>必須</td><td>元データのセル範囲または配列</td></tr><tr><td>列番号1</td><td>必須</td><td>取り出す列の番号（1始まり）</td></tr><tr><td>列番号2以降</td><td>任意</td><td>追加で取り出す列の番号（カンマ区切りで複数指定可）</td></tr></tbody></table></figure>



<p>列番号は、指定した範囲の中での相対的な番号です。範囲がB列から始まっていても、B列が「1」になります。シート全体の列番号ではない点に注意してくださいね。</p>



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



<p>ここでは、社員名簿のデータからCHOOSECOLS関数で列を取り出す例を紹介します。</p>



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



<p>A1:E6に以下のデータが入っているとします。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A</th><th>B</th><th>C</th><th>D</th><th>E</th></tr></thead><tbody><tr><td>1</td><td>社員番号</td><td>氏名</td><td>部署</td><td>役職</td><td>メール</td></tr><tr><td>2</td><td>1001</td><td>田中太郎</td><td>営業</td><td>主任</td><td>tanaka@example.com</td></tr><tr><td>3</td><td>1002</td><td>鈴木花子</td><td>経理</td><td>課長</td><td>suzuki@example.com</td></tr><tr><td>4</td><td>1003</td><td>佐藤一郎</td><td>営業</td><td>部長</td><td>sato@example.com</td></tr><tr><td>5</td><td>1004</td><td>高橋美咲</td><td>人事</td><td>主任</td><td>takahashi@example.com</td></tr><tr><td>6</td><td>1005</td><td>伊藤健太</td><td>経理</td><td>係長</td><td>ito@example.com</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc5">1列だけ取り出す</span></h3>



<p>「氏名」の列だけを取り出します。出力先のセル（たとえばG1）に以下の数式を入力して、Enterを押します。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>G</th></tr></thead><tbody><tr><td>1</td><td>氏名</td></tr><tr><td>2</td><td>田中太郎</td></tr><tr><td>3</td><td>鈴木花子</td></tr><tr><td>4</td><td>佐藤一郎</td></tr><tr><td>5</td><td>高橋美咲</td></tr><tr><td>6</td><td>伊藤健太</td></tr></tbody></table></figure>



<p>第2引数に「2」を指定したので、範囲内の2列目（B列）の氏名データだけが縦に出力されました。</p>



<h3 class="wp-block-heading"><span id="toc6">複数列をまとめて取り出す</span></h3>



<p>「氏名」「部署」「メール」の3列をまとめて取り出します。</p>



<pre class="wp-block-code"><code>=CHOOSECOLS(A1:E6, 2, 3, 5)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>G</th><th>H</th><th>I</th></tr></thead><tbody><tr><td>1</td><td>氏名</td><td>部署</td><td>メール</td></tr><tr><td>2</td><td>田中太郎</td><td>営業</td><td>tanaka@example.com</td></tr><tr><td>3</td><td>鈴木花子</td><td>経理</td><td>suzuki@example.com</td></tr><tr><td>4</td><td>佐藤一郎</td><td>営業</td><td>sato@example.com</td></tr><tr><td>5</td><td>高橋美咲</td><td>人事</td><td>takahashi@example.com</td></tr><tr><td>6</td><td>伊藤健太</td><td>経理</td><td>ito@example.com</td></tr></tbody></table></figure>



<p>列番号をカンマで区切って並べるだけで、必要な列だけを抜き出せます。元データの「社員番号」や「役職」は含まれていませんね。</p>



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



<h3 class="wp-block-heading"><span id="toc8">レポート用に必要な列だけ抽出する</span></h3>



<p>元の管理表には大量の列がありますが、レポートに必要な列だけ取り出すことができます。</p>



<pre class="wp-block-code"><code>=CHOOSECOLS(A1:E6, 2, 3)</code></pre>



<p>「氏名」と「部署」だけを抽出した簡易リストの完成です。報告書や共有資料を作るとき、元データを壊さずに必要な情報だけを別の場所に表示できますよ。</p>



<h3 class="wp-block-heading"><span id="toc9">列順を入れ替えて出力する</span></h3>



<p>列番号の指定順を変えるだけで、出力順を自由に変えられます。</p>



<pre class="wp-block-code"><code>=CHOOSECOLS(A1:E6, 3, 2, 1)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>G</th><th>H</th><th>I</th></tr></thead><tbody><tr><td>1</td><td>部署</td><td>氏名</td><td>社員番号</td></tr><tr><td>2</td><td>営業</td><td>田中太郎</td><td>1001</td></tr><tr><td>3</td><td>経理</td><td>鈴木花子</td><td>1002</td></tr></tbody></table></figure>



<p>元データでは「社員番号→氏名→部署」の順番ですが、「部署→氏名→社員番号」に入れ替えて出力されました。部署別にデータを確認したいときに便利ですよ。</p>



<h3 class="wp-block-heading"><span id="toc10">負の値で末尾から取り出す</span></h3>



<p>列番号に負の値を指定すると、末尾から数えて列を取り出せます。</p>



<pre class="wp-block-code"><code>=CHOOSECOLS(A1:E6, -1)</code></pre>



<p>「-1」は最終列を意味するので、E列の「メール」が取り出されます。「-2」なら末尾から2番目のD列「役職」です。</p>



<p>列数が変動する可能性のあるデータでも、「最後の列を取得したい」という場面で確実に末尾列を取り出せます。</p>



<pre class="wp-block-code"><code>=CHOOSECOLS(A1:E6, 1, -2, -1)</code></pre>



<p>このように正の値と負の値を混ぜて使うこともできます。先頭の「社員番号」と末尾2列の「役職」「メール」を一度に取り出せますよ。</p>



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



<p>スプレッドシートで特定の列を取り出す方法として、<a href="https://mashukabu.com/spreadsheet-index-function/">INDEX関数</a>もあります。この2つの関数には明確な違いがあります。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>CHOOSECOLS関数</th><th>INDEX関数</th></tr></thead><tbody><tr><td>複数列の同時取得</td><td>できる（列番号を複数指定）</td><td>できない（1回の指定で1列のみ）</td></tr><tr><td>列順の入れ替え</td><td>できる</td><td>できない</td></tr><tr><td>負の値（末尾指定）</td><td>できる</td><td>できない</td></tr><tr><td>行の指定</td><td>できない（列の抽出専用）</td><td>できる（行と列を指定して1つの値を取得）</td></tr><tr><td>対応バージョン</td><td>Microsoft 365 / Excel 2024以降</td><td>すべてのバージョン</td></tr></tbody></table></figure>



<p>使い分けの目安は次のとおりです。</p>



<ul class="wp-block-list"><li><strong>複数列をまとめて抽出したい、列順を変えたい</strong> → CHOOSECOLS関数</li><li><strong>特定の行と列が交差する1つの値を取り出したい</strong> → INDEX関数</li></ul>



<p>INDEX関数は「行番号と列番号を指定して1つのセルの値を返す」のが本来の使い方です。一方、CHOOSECOLS関数は「列まるごと抽出」に特化しています。目的に合わせて選んでくださいね。</p>



<h2 class="wp-block-heading"><span id="toc12">CHOOSEROWSとCHOOSECOLSの違い</span></h2>



<p>CHOOSECOLS関数には、ペアとなる<a href="https://mashukabu.com/spreadsheet-chooserows-function/">CHOOSEROWS関数</a>があります。名前のとおり、行と列の違いだけです。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>CHOOSECOLS関数</th><th>CHOOSEROWS関数</th></tr></thead><tbody><tr><td>抽出対象</td><td>列を取り出す</td><td>行を取り出す</td></tr><tr><td>構文</td><td><code>=CHOOSECOLS(配列, 列番号1, ...)</code></td><td><code>=CHOOSEROWS(配列, 行番号1, ...)</code></td></tr><tr><td>引数の構造</td><td>完全に同じ</td><td>完全に同じ</td></tr><tr><td>負の値</td><td>末尾の列を指定</td><td>末尾の行を指定</td></tr></tbody></table></figure>



<p>使い分けの目安は次のとおりです。</p>



<ul class="wp-block-list"><li><strong>必要な列を選んで抽出したい</strong> → CHOOSECOLS関数</li><li><strong>必要な行を選んで抽出したい</strong> → CHOOSEROWS関数</li></ul>



<p>両方を組み合わせれば、行と列を同時に絞り込むこともできます。</p>



<pre class="wp-block-code"><code>=CHOOSEROWS(CHOOSECOLS(A1:E6, 2, 3), 1, 3, 5)</code></pre>



<p>まずCHOOSECOLS関数で「氏名」「部署」の2列を抽出し、その結果からCHOOSEROWS関数で1行目・3行目・5行目を取り出しています。大きな表から必要なデータだけをピンポイントで抜き出せますよ。</p>



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



<p>CHOOSECOLS関数はシンプルですが、列番号の指定を間違えるとエラーになります。</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>列番号に0を指定した</td><td>列番号は1以上または-1以下を指定してください</td></tr><tr><td><code>#VALUE!</code></td><td>列番号が範囲の列数を超えている</td><td>範囲の列数以内の番号を指定してください</td></tr><tr><td><code>#REF!</code></td><td>出力先のセルに既にデータがある</td><td>出力先の範囲を空にしてください</td></tr><tr><td><code>#NAME?</code></td><td>関数名のスペルミス</td><td>「CHOOSECOLS」のスペルを確認してください</td></tr></tbody></table></figure>



<p>特に注意したいのが「列番号0」のケースです。CHOOSECOLS関数の列番号は1始まりなので、0を指定すると <code>#VALUE!</code> エラーになります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>列番号が範囲の列数を超えていないか確認するには、COLUMNS関数を使いましょう。<code>=COLUMNS(A1:E6)</code> で範囲の列数（この例では5）がわかります。指定する列番号がこの数を超えないように注意してくださいね。</p></blockquote>



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



<p>CHOOSECOLS関数は、指定した列だけを元の範囲から自由に取り出すための関数です。複数列の一括抽出、列順の入れ替え、末尾からの指定まで、柔軟な列操作が1つの数式で完結します。</p>



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



<ul class="wp-block-list"><li>CHOOSECOLS関数は <code>=CHOOSECOLS(範囲, 列番号)</code> で、指定した列を取り出す</li><li>列番号をカンマで複数並べれば、必要な列をまとめて取得できる</li><li>列番号の指定順で出力の並び順が決まるので、列順の入れ替えも簡単</li><li>負の値（-1、-2&#8230;）で末尾から列を指定できる</li><li><a href="https://mashukabu.com/spreadsheet-index-function/">INDEX関数</a>は1セルの値を返す関数。列まるごと抽出ならCHOOSECOLS関数が最適</li><li><a href="https://mashukabu.com/spreadsheet-chooserows-function/">CHOOSEROWS関数</a>は行方向のペア関数。組み合わせれば行と列の同時絞り込みもできる</li></ul>



<p>まずは <code>=CHOOSECOLS(A1:E6, 2, 3)</code> のように必要な列を取り出すところから試してみてください。<a href="https://mashukabu.com/spreadsheet-filter-function/">FILTER関数</a>や<a href="https://mashukabu.com/spreadsheet-sort-sortn-sortby/">SORT関数</a>と組み合わせれば、データの整理がグッと効率的になりますよ。</p>



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/spreadsheet-chooserows-function/">スプレッドシートのCHOOSEROWS関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-index-function/">スプレッドシートのINDEX関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-filter-function/">スプレッドシートのFILTER関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-sort-sortn-sortby/">スプレッドシートのSORT関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-tocol-function/">スプレッドシートのTOCOL関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-torow-function/">スプレッドシートのTOROW関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-transpose-function/">スプレッドシートのTRANSPOSE関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-unique-function/">スプレッドシートのUNIQUE関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-arrayformula-function/">スプレッドシートのARRAYFORMULA関数の使い方</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-choosecols-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのCHOOSEROWS関数の使い方｜行を自由に抽出</title>
		<link>https://mashukabu.com/spreadsheet-chooserows-function/</link>
					<comments>https://mashukabu.com/spreadsheet-chooserows-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 21 Mar 2026 11:37:19 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[CHOOSECOLS関数]]></category>
		<category><![CDATA[CHOOSEROWS関数]]></category>
		<category><![CDATA[INDEX関数]]></category>
		<category><![CDATA[行を取り出す]]></category>
		<category><![CDATA[配列操作]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4895</guid>

					<description><![CDATA[スプレッドシートのCHOOSEROWS関数は、表から必要な行だけを抽出・並び替えて出力できる関数です。複数行一括指定・逆順取り出しの実例をINDEX関数との使い分けを交えて解説します。]]></description>
										<content:encoded><![CDATA[
<p>スプレッドシートの大きな表から、必要な行だけを別の場所に取り出したいことってありますよね。行を手動でコピーすると、元データが更新されるたびに貼り直しが必要になって面倒です。</p>



<p>CHOOSEROWS関数を使えば、必要な行だけを数式ひとつで抽出できます。行の順番を入れ替えたり、複数行をまとめて取り出したりすることも自在です。</p>



<p>この記事では、CHOOSEROWS関数の基本的な使い方から、INDEX関数との違い、実務での活用パターンまでわかりやすく解説します。</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">スプレッドシートのCHOOSEROWS関数とは？</a><ol><li><a href="#toc2" tabindex="0">CHOOSEROWS関数の基本構文</a></li></ol></li><li><a href="#toc3" tabindex="0">CHOOSEROWS関数の基本的な使い方</a><ol><li><a href="#toc4" tabindex="0">サンプルデータ</a></li><li><a href="#toc5" tabindex="0">1行だけ取り出す</a></li><li><a href="#toc6" tabindex="0">複数行をまとめて取り出す</a></li></ol></li><li><a href="#toc7" tabindex="0">CHOOSEROWS関数の実務活用パターン</a><ol><li><a href="#toc8" tabindex="0">特定のレコードだけ抽出する</a></li><li><a href="#toc9" tabindex="0">行順を入れ替えて出力する</a></li><li><a href="#toc10" tabindex="0">負の値で末尾から取り出す</a></li></ol></li><li><a href="#toc11" tabindex="0">INDEX関数との違い・使い分け</a></li><li><a href="#toc12" tabindex="0">CHOOSEROWSとCHOOSECOLSの違い</a></li><li><a href="#toc13" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc14" tabindex="0">まとめ</a><ol><li><a href="#toc15" tabindex="0">この記事で紹介した関数・関連記事</a></li></ol></li></ol>
    </div>
  </div>

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



<p>CHOOSEROWS関数（読み方: チューズロウズ関数）は、指定した行だけを元の範囲から<strong>自由に取り出す</strong>関数です。「choose rows（行を選ぶ）」が名前の由来です。</p>



<p>たとえば、20行ある社員名簿から「田中さん」「佐藤さん」の行だけを抜き出すことができます。元データと数式でつながっているため、元データが更新されれば抽出結果も自動で反映されますよ。</p>



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



<ul class="wp-block-list"><li>元データから必要な行だけを抽出する</li><li>複数の行番号をカンマで並べて一括取得できる</li><li>行の並び順を自由に入れ替えて出力できる</li><li>負の値を使って末尾から行を指定できる</li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>CHOOSEROWS関数はGoogleスプレッドシート独自の関数ではなく、ExcelのMicrosoft 365やExcel 2024でも使用できます。ただし、Excel 2019以前のバージョンでは使えません。</p></blockquote>



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



<pre class="wp-block-code"><code>=CHOOSEROWS(配列, 行番号1, [行番号2, ...])</code></pre>



<p>カッコの中に、元データの範囲と、取り出したい行の番号を指定します。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>説明</th></tr></thead><tbody><tr><td>配列</td><td>必須</td><td>元データのセル範囲または配列</td></tr><tr><td>行番号1</td><td>必須</td><td>取り出す行の番号（1始まり）</td></tr><tr><td>行番号2以降</td><td>任意</td><td>追加で取り出す行の番号（カンマ区切りで複数指定可）</td></tr></tbody></table></figure>



<p>行番号は、指定した範囲の中での相対的な番号です。範囲が3行目から始まっていても、先頭行が「1」になります。シート全体の行番号ではない点に注意してくださいね。</p>



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



<p>ここでは、社員名簿のデータからCHOOSEROWS関数で行を取り出す例を紹介します。</p>



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



<p>A1:E6に以下のデータが入っているとします。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A</th><th>B</th><th>C</th><th>D</th><th>E</th></tr></thead><tbody><tr><td>1</td><td>社員番号</td><td>氏名</td><td>部署</td><td>役職</td><td>メール</td></tr><tr><td>2</td><td>1001</td><td>田中太郎</td><td>営業</td><td>主任</td><td>tanaka@example.com</td></tr><tr><td>3</td><td>1002</td><td>鈴木花子</td><td>経理</td><td>課長</td><td>suzuki@example.com</td></tr><tr><td>4</td><td>1003</td><td>佐藤一郎</td><td>営業</td><td>部長</td><td>sato@example.com</td></tr><tr><td>5</td><td>1004</td><td>高橋美咲</td><td>人事</td><td>主任</td><td>takahashi@example.com</td></tr><tr><td>6</td><td>1005</td><td>伊藤健太</td><td>経理</td><td>係長</td><td>ito@example.com</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc5">1行だけ取り出す</span></h3>



<p>「田中太郎」の行だけを取り出します。出力先のセル（たとえばA8）に以下の数式を入力して、Enterを押します。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A</th><th>B</th><th>C</th><th>D</th><th>E</th></tr></thead><tbody><tr><td>8</td><td>1001</td><td>田中太郎</td><td>営業</td><td>主任</td><td>tanaka@example.com</td></tr></tbody></table></figure>



<p>第2引数に「2」を指定したので、範囲内の2行目（見出しを1行目とすると田中さんのデータ行）が横方向にすべて出力されました。</p>



<h3 class="wp-block-heading"><span id="toc6">複数行をまとめて取り出す</span></h3>



<p>「田中太郎」「佐藤一郎」「伊藤健太」の3行をまとめて取り出します。</p>



<pre class="wp-block-code"><code>=CHOOSEROWS(A1:E6, 2, 4, 6)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A</th><th>B</th><th>C</th><th>D</th><th>E</th></tr></thead><tbody><tr><td>8</td><td>1001</td><td>田中太郎</td><td>営業</td><td>主任</td><td>tanaka@example.com</td></tr><tr><td>9</td><td>1003</td><td>佐藤一郎</td><td>営業</td><td>部長</td><td>sato@example.com</td></tr><tr><td>10</td><td>1005</td><td>伊藤健太</td><td>経理</td><td>係長</td><td>ito@example.com</td></tr></tbody></table></figure>



<p>行番号をカンマで区切って並べるだけで、必要な行だけを抜き出せます。「鈴木花子」「高橋美咲」の行は含まれていませんね。</p>



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



<h3 class="wp-block-heading"><span id="toc8">特定のレコードだけ抽出する</span></h3>



<p>元の管理表から特定のレコードだけを取り出すことができます。ヘッダー行も一緒に抽出すると見やすくなりますよ。</p>



<pre class="wp-block-code"><code>=CHOOSEROWS(A1:E6, 1, 3, 5)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A</th><th>B</th><th>C</th><th>D</th><th>E</th></tr></thead><tbody><tr><td>8</td><td>社員番号</td><td>氏名</td><td>部署</td><td>役職</td><td>メール</td></tr><tr><td>9</td><td>1002</td><td>鈴木花子</td><td>経理</td><td>課長</td><td>suzuki@example.com</td></tr><tr><td>10</td><td>1004</td><td>高橋美咲</td><td>人事</td><td>主任</td><td>takahashi@example.com</td></tr></tbody></table></figure>



<p>行番号「1」でヘッダー行も含めて抽出しています。報告書や共有資料を作るとき、元データを壊さずに必要な情報だけを別の場所に表示できますよ。</p>



<h3 class="wp-block-heading"><span id="toc9">行順を入れ替えて出力する</span></h3>



<p>行番号の指定順を変えるだけで、出力順を自由に変えられます。</p>



<pre class="wp-block-code"><code>=CHOOSEROWS(A1:E6, 4, 2, 6)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A</th><th>B</th><th>C</th><th>D</th><th>E</th></tr></thead><tbody><tr><td>8</td><td>1003</td><td>佐藤一郎</td><td>営業</td><td>部長</td><td>sato@example.com</td></tr><tr><td>9</td><td>1001</td><td>田中太郎</td><td>営業</td><td>主任</td><td>tanaka@example.com</td></tr><tr><td>10</td><td>1005</td><td>伊藤健太</td><td>経理</td><td>係長</td><td>ito@example.com</td></tr></tbody></table></figure>



<p>元データでは「田中→佐藤→伊藤」の順番ですが、「佐藤→田中→伊藤」に入れ替えて出力されました。特定のメンバーを先頭に配置したいときに便利ですよ。</p>



<h3 class="wp-block-heading"><span id="toc10">負の値で末尾から取り出す</span></h3>



<p>行番号に負の値を指定すると、末尾から数えて行を取り出せます。</p>



<pre class="wp-block-code"><code>=CHOOSEROWS(A1:E6, -1)</code></pre>



<p>「-1」は最終行を意味するので、6行目の「伊藤健太」のデータが取り出されます。「-2」なら末尾から2番目の「高橋美咲」です。</p>



<p>行数が変動する可能性のあるデータでも、「最後の行を取得したい」という場面で確実に末尾行を取り出せます。</p>



<pre class="wp-block-code"><code>=CHOOSEROWS(A1:E6, 1, -2, -1)</code></pre>



<p>このように正の値と負の値を混ぜて使うこともできます。先頭の「ヘッダー行」と末尾2行のデータを一度に取り出せますよ。</p>



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



<p>スプレッドシートで特定の行を取り出す方法として、<a href="https://mashukabu.com/spreadsheet-index-function/">INDEX関数</a>もあります。この2つの関数には明確な違いがあります。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>CHOOSEROWS関数</th><th>INDEX関数</th></tr></thead><tbody><tr><td>複数行の同時取得</td><td>できる（行番号を複数指定）</td><td>できない（1回の指定で1行のみ）</td></tr><tr><td>行順の入れ替え</td><td>できる</td><td>できない</td></tr><tr><td>負の値（末尾指定）</td><td>できる</td><td>できない</td></tr><tr><td>列の指定</td><td>できない（行の抽出専用）</td><td>できる（行と列を指定して1つの値を取得）</td></tr><tr><td>対応バージョン</td><td>Microsoft 365 / Excel 2024以降</td><td>すべてのバージョン</td></tr></tbody></table></figure>



<p>使い分けの目安は次のとおりです。</p>



<ul class="wp-block-list"><li><strong>複数行をまとめて抽出したい、行順を変えたい</strong> → CHOOSEROWS関数</li><li><strong>特定の行と列が交差する1つの値を取り出したい</strong> → INDEX関数</li></ul>



<p>INDEX関数は「行番号と列番号を指定して1つのセルの値を返す」のが本来の使い方です。一方、CHOOSEROWS関数は「行まるごと抽出」に特化しています。目的に合わせて選んでくださいね。</p>



<h2 class="wp-block-heading"><span id="toc12">CHOOSEROWSとCHOOSECOLSの違い</span></h2>



<p>CHOOSEROWS関数には、ペアとなる<a href="https://mashukabu.com/spreadsheet-choosecols-function/">CHOOSECOLS関数</a>があります。名前のとおり、行と列の違いだけです。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>CHOOSEROWS関数</th><th>CHOOSECOLS関数</th></tr></thead><tbody><tr><td>抽出対象</td><td>行を取り出す</td><td>列を取り出す</td></tr><tr><td>構文</td><td><code>=CHOOSEROWS(配列, 行番号1, ...)</code></td><td><code>=CHOOSECOLS(配列, 列番号1, ...)</code></td></tr><tr><td>引数の構造</td><td>完全に同じ</td><td>完全に同じ</td></tr><tr><td>負の値</td><td>末尾の行を指定</td><td>末尾の列を指定</td></tr></tbody></table></figure>



<p>使い分けはシンプルです。</p>



<ul class="wp-block-list"><li><strong>必要な行を選んで抽出したい</strong> → CHOOSEROWS関数</li><li><strong>必要な列を選んで抽出したい</strong> → <a href="https://mashukabu.com/spreadsheet-choosecols-function/">CHOOSECOLS関数</a></li></ul>



<p>両方を組み合わせれば、行と列を同時に絞り込むこともできます。</p>



<pre class="wp-block-code"><code>=CHOOSEROWS(CHOOSECOLS(A1:E6, 2, 3), 1, 3, 5)</code></pre>



<p>まずCHOOSECOLS関数で「氏名」「部署」の2列を抽出し、その結果からCHOOSEROWS関数で1行目・3行目・5行目を取り出しています。大きな表から必要なデータだけをピンポイントで抜き出せますよ。</p>



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



<p>CHOOSEROWS関数はシンプルですが、行番号の指定を間違えるとエラーになります。</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>行番号に0を指定した</td><td>行番号は1以上または-1以下を指定してください</td></tr><tr><td><code>#VALUE!</code></td><td>行番号が範囲の行数を超えている</td><td>範囲の行数以内の番号を指定してください</td></tr><tr><td><code>#REF!</code></td><td>出力先のセルに既にデータがある</td><td>出力先の範囲を空にしてください</td></tr><tr><td><code>#NAME?</code></td><td>関数名のスペルミス</td><td>「CHOOSEROWS」のスペルを確認してください</td></tr></tbody></table></figure>



<p>特に注意したいのが「行番号0」のケースです。CHOOSEROWS関数の行番号は1始まりなので、0を指定すると <code>#VALUE!</code> エラーになります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>行番号が範囲の行数を超えていないか確認するには、<a href="https://mashukabu.com/spreadsheet-rows-function/">ROWS関数</a>を使いましょう。<code>=ROWS(A1:E6)</code> で範囲の行数（この例では6）がわかります。指定する行番号がこの数を超えないように注意してくださいね。</p></blockquote>



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



<p>CHOOSEROWS関数は、指定した行だけを元の範囲から自由に取り出すための関数です。複数行の一括抽出、行順の入れ替え、末尾からの指定まで、柔軟な行操作が1つの数式で完結します。</p>



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



<ul class="wp-block-list"><li>CHOOSEROWS関数は <code>=CHOOSEROWS(範囲, 行番号)</code> で、指定した行を取り出す</li><li>行番号をカンマで複数並べれば、必要な行をまとめて取得できる</li><li>行番号の指定順で出力の並び順が決まるので、行順の入れ替えも簡単</li><li>負の値（-1、-2&#8230;）で末尾から行を指定できる</li><li><a href="https://mashukabu.com/spreadsheet-index-function/">INDEX関数</a>は1セルの値を返す関数。行まるごと抽出ならCHOOSEROWS関数が最適</li><li><a href="https://mashukabu.com/spreadsheet-choosecols-function/">CHOOSECOLS関数</a>は列方向のペア関数。組み合わせれば行と列の同時絞り込みもできる</li></ul>



<p>まずは <code>=CHOOSEROWS(A1:E6, 2, 4)</code> のように必要な行を取り出すところから試してみてください。<a href="https://mashukabu.com/spreadsheet-filter-function/">FILTER関数</a>や<a href="https://mashukabu.com/spreadsheet-sort-sortn-sortby/">SORT関数</a>と組み合わせれば、データの整理がグッと効率的になりますよ。</p>



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/spreadsheet-choosecols-function/">スプレッドシートのCHOOSECOLS関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-index-function/">スプレッドシートのINDEX関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-rows-function/">スプレッドシートのROWS関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-filter-function/">スプレッドシートのFILTER関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-sort-sortn-sortby/">スプレッドシートのSORT関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-tocol-function/">スプレッドシートのTOCOL関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-torow-function/">スプレッドシートのTOROW関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-transpose-function/">スプレッドシートのTRANSPOSE関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-arrayformula-function/">スプレッドシートのARRAYFORMULA関数の使い方</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-chooserows-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのDROP関数の使い方｜行列を削除</title>
		<link>https://mashukabu.com/spreadsheet-drop-function/</link>
					<comments>https://mashukabu.com/spreadsheet-drop-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 21 Mar 2026 11:36:13 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[DROP関数]]></category>
		<category><![CDATA[TAKE関数]]></category>
		<category><![CDATA[動的配列関数]]></category>
		<category><![CDATA[行列を削除]]></category>
		<category><![CDATA[配列操作]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4877</guid>

					<description><![CDATA[スプレッドシートのDROP関数で配列から行・列を削除する方法を解説。先頭・末尾の削除、FILTER結果のヘッダー除去、TAKE関数との違い・使い分けまで実例付きで紹介します。]]></description>
										<content:encoded><![CDATA[
<p>スプレッドシートで表を加工するとき、先頭のヘッダー行や末尾の合計行を除外したいことってありますよね。手作業で削除すると元データまで消えてしまうし、毎回範囲を調整するのも面倒です。</p>



<p>DROP関数を使えば、配列の先頭や末尾から指定した数の行・列を削除して、残りのデータだけを取り出せます。元データはそのまま残るので安心です。</p>



<p>この記事では、DROP関数の基本的な使い方から、FILTER関数との組み合わせ、TAKE関数との違いまでわかりやすく解説します。</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">スプレッドシートのDROP関数とは？</a><ol><li><a href="#toc2" tabindex="0">DROP関数の基本構文</a></li></ol></li><li><a href="#toc3" tabindex="0">DROP関数の基本的な使い方</a><ol><li><a href="#toc4" tabindex="0">サンプルデータ</a></li><li><a href="#toc5" tabindex="0">先頭の行を削除する</a></li><li><a href="#toc6" tabindex="0">末尾の行を削除する</a></li><li><a href="#toc7" tabindex="0">列を削除する</a></li><li><a href="#toc8" tabindex="0">行と列を同時に削除する</a></li></ol></li><li><a href="#toc9" tabindex="0">DROP関数の実務活用パターン</a><ol><li><a href="#toc10" tabindex="0">パターン1: FILTER結果からヘッダー行を除去する</a></li><li><a href="#toc11" tabindex="0">パターン2: 集計行を除いてデータだけ取り出す</a></li><li><a href="#toc12" tabindex="0">パターン3: 直近N件を除いた過去データを抽出する</a></li><li><a href="#toc13" tabindex="0">パターン4: DROP + TAKEで中間のデータだけ抽出する</a></li><li><a href="#toc14" tabindex="0">パターン5: VSTACK結合後にヘッダーの重複を除去する</a></li></ol></li><li><a href="#toc15" tabindex="0">TAKE関数との違い・使い分け</a></li><li><a href="#toc16" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc17" tabindex="0">まとめ</a><ol><li><a href="#toc18" tabindex="0">この記事で紹介した関数・関連記事</a></li></ol></li></ol>
    </div>
  </div>

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



<p>DROP関数（読み方: ドロップ関数）は、配列やセル範囲から<strong>先頭または末尾の行・列を削除</strong>して、残りのデータを返す関数です。「Drop（落とす・除外する）」が名前の由来です。</p>



<p>たとえば、10行のデータから先頭2行を削除して残り8行だけを取り出すことができます。元データと数式でつながっているため、元データが更新されれば結果も自動で反映されますよ。</p>



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



<ul class="wp-block-list"><li>配列の先頭からN行を削除する（正の数を指定）</li><li>配列の末尾からN行を削除する（負の数を指定）</li><li>列方向の削除もできる（第3引数を使用）</li><li>行と列を同時に削除することもできる</li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>DROP関数はGoogleスプレッドシート独自の関数ではなく、ExcelのMicrosoft 365やExcel 2024でも使用できます。ただし、Excel 2021以前のバージョンでは使えません。</p></blockquote>



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



<pre class="wp-block-code"><code>=DROP(配列, 行数, [列数])</code></pre>



<p>カッコの中に、対象の範囲と削除する行数・列数を指定します。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>説明</th></tr></thead><tbody><tr><td>配列</td><td>必須</td><td>削除対象のセル範囲または配列</td></tr><tr><td>行数</td><td>必須</td><td>削除する行数。正の数で先頭から、負の数で末尾から削除</td></tr><tr><td>列数</td><td>任意</td><td>削除する列数。正の数で左から、負の数で右から削除</td></tr></tbody></table></figure>



<p>第2引数（行数）の符号で削除方向が決まります。正の数なら先頭から、負の数なら末尾から削除します。第3引数（列数）も同じルールです。行の削除をスキップして列だけ削除したい場合は、行数に0を指定してくださいね。</p>



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



<p>ここでは、売上データからDROP関数で行や列を削除する例を紹介します。</p>



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



<p>A1:D7に以下のデータが入っているとします。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A</th><th>B</th><th>C</th><th>D</th></tr></thead><tbody><tr><td>1</td><td>日付</td><td>担当者</td><td>商品</td><td>売上</td></tr><tr><td>2</td><td>4/1</td><td>佐藤</td><td>商品A</td><td>50,000</td></tr><tr><td>3</td><td>4/2</td><td>田中</td><td>商品B</td><td>30,000</td></tr><tr><td>4</td><td>4/3</td><td>鈴木</td><td>商品C</td><td>45,000</td></tr><tr><td>5</td><td>4/4</td><td>高橋</td><td>商品A</td><td>60,000</td></tr><tr><td>6</td><td>4/5</td><td>伊藤</td><td>商品B</td><td>35,000</td></tr><tr><td>7</td><td>4/6</td><td>佐藤</td><td>商品C</td><td>55,000</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc5">先頭の行を削除する</span></h3>



<p>ヘッダー行（1行目）を削除して、データ部分だけを取り出します。出力先のセル（たとえばF1）に以下の数式を入力して、Enterを押します。</p>



<pre class="wp-block-code"><code>=DROP(A1:D7, 1)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>F</th><th>G</th><th>H</th><th>I</th></tr></thead><tbody><tr><td>1</td><td>4/1</td><td>佐藤</td><td>商品A</td><td>50,000</td></tr><tr><td>2</td><td>4/2</td><td>田中</td><td>商品B</td><td>30,000</td></tr><tr><td>3</td><td>4/3</td><td>鈴木</td><td>商品C</td><td>45,000</td></tr><tr><td>4</td><td>4/4</td><td>高橋</td><td>商品A</td><td>60,000</td></tr><tr><td>5</td><td>4/5</td><td>伊藤</td><td>商品B</td><td>35,000</td></tr><tr><td>6</td><td>4/6</td><td>佐藤</td><td>商品C</td><td>55,000</td></tr></tbody></table></figure>



<p>第2引数に「1」を指定したので、先頭1行（ヘッダー行）が削除され、データ部分だけが出力されました。「2」にすれば先頭2行が削除されます。</p>



<h3 class="wp-block-heading"><span id="toc6">末尾の行を削除する</span></h3>



<p>末尾から削除するには、第2引数に負の数を指定します。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>F</th><th>G</th><th>H</th><th>I</th></tr></thead><tbody><tr><td>1</td><td>日付</td><td>担当者</td><td>商品</td><td>売上</td></tr><tr><td>2</td><td>4/1</td><td>佐藤</td><td>商品A</td><td>50,000</td></tr><tr><td>3</td><td>4/2</td><td>田中</td><td>商品B</td><td>30,000</td></tr><tr><td>4</td><td>4/3</td><td>鈴木</td><td>商品C</td><td>45,000</td></tr><tr><td>5</td><td>4/4</td><td>高橋</td><td>商品A</td><td>60,000</td></tr></tbody></table></figure>



<p>「-2」を指定したので、末尾2行（5行目・6行目のデータ）が削除されました。合計行や集計行を除外したいときに便利ですよ。</p>



<h3 class="wp-block-heading"><span id="toc7">列を削除する</span></h3>



<p>列方向の削除には第3引数を使います。行の削除をスキップするには、行数に0を指定します。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>F</th><th>G</th><th>H</th></tr></thead><tbody><tr><td>1</td><td>担当者</td><td>商品</td><td>売上</td></tr><tr><td>2</td><td>佐藤</td><td>商品A</td><td>50,000</td></tr><tr><td>3</td><td>田中</td><td>商品B</td><td>30,000</td></tr><tr><td>4</td><td>鈴木</td><td>商品C</td><td>45,000</td></tr><tr><td>5</td><td>高橋</td><td>商品A</td><td>60,000</td></tr><tr><td>6</td><td>伊藤</td><td>商品B</td><td>35,000</td></tr><tr><td>7</td><td>佐藤</td><td>商品C</td><td>55,000</td></tr></tbody></table></figure>



<p>行数を0にして列数を1に指定したので、左端1列（日付列）だけが削除されました。右端から削除したい場合は「-1」のように負の数を使います。</p>



<h3 class="wp-block-heading"><span id="toc8">行と列を同時に削除する</span></h3>



<p>行と列を同時に削除することもできます。</p>



<pre class="wp-block-code"><code>=DROP(A1:D7, 1, 1)</code></pre>



<p>先頭1行（ヘッダー）と左端1列（日付）を同時に削除します。ヘッダーと不要な列をまとめて除去したいときに、1つの数式で済むので効率的ですよ。</p>



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



<h3 class="wp-block-heading"><span id="toc10">パターン1: FILTER結果からヘッダー行を除去する</span></h3>



<p><a href="https://mashukabu.com/spreadsheet-filter-function/">FILTER関数</a>で列全体を対象にフィルターをかけると、ヘッダー行まで結果に含まれてしまうことがあります。DROP関数で先頭1行を除去しましょう。</p>



<pre class="wp-block-code"><code>=DROP(FILTER(A:D, C:C=&quot;商品A&quot;), 1)</code></pre>



<p>FILTER関数の結果をそのままDROPに渡して、先頭1行（ヘッダー）を削除しています。数式もシンプルで読みやすいですよね。</p>



<h3 class="wp-block-heading"><span id="toc11">パターン2: 集計行を除いてデータだけ取り出す</span></h3>



<p>表の最終行に合計行がある場合、データ部分だけを取り出せます。</p>



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



<p>末尾1行を削除するだけで、集計行を除いた純粋なデータが手に入ります。<a href="https://mashukabu.com/spreadsheet-sort-sortn-sortby/">SORT関数</a>や<a href="https://mashukabu.com/spreadsheet-unique-function/">UNIQUE関数</a>に渡す前処理として使うと、集計行が混ざる事故を防げますよ。</p>



<h3 class="wp-block-heading"><span id="toc12">パターン3: 直近N件を除いた過去データを抽出する</span></h3>



<p>売上データを日付の新しい順に並べ替えて、直近3件を除いた残りを取り出します。</p>



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



<p><a href="https://mashukabu.com/spreadsheet-sort-sortn-sortby/">SORT関数</a>で日付の降順に並べ替えたあと、DROPで先頭3行（直近3件）を削除しています。「並べ替えてから先頭を切る」という2ステップで考えるとわかりやすいです。</p>



<h3 class="wp-block-heading"><span id="toc13">パターン4: DROP + TAKEで中間のデータだけ抽出する</span></h3>



<p>先頭と末尾の両方を除外して、中間部分だけを取り出すことができます。</p>



<pre class="wp-block-code"><code>=TAKE(DROP(A2:D100, 10), 10)</code></pre>



<p>先頭10行を削除したあと、そこから10行だけ取り出します。つまり11行目から20行目が返ります。ページネーションのように特定範囲のデータを取り出したいときに便利ですよ。</p>



<h3 class="wp-block-heading"><span id="toc14">パターン5: VSTACK結合後にヘッダーの重複を除去する</span></h3>



<p><a href="https://mashukabu.com/spreadsheet-vstack-function/">VSTACK関数</a>で複数の表を縦に結合すると、2つ目以降のヘッダーが重複することがあります。</p>



<pre class="wp-block-code"><code>=VSTACK(Sheet1!A1:D4, DROP(Sheet2!A1:D4, 1))</code></pre>



<p>2つ目の表をDROPでヘッダー除去してからVSTACKに渡しています。結合前にヘッダーを落とすことで、きれいな一覧表が完成しますよ。</p>



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



<p>DROP関数には、ペアとなるTAKE関数があります。どちらも配列のサイズを縮小する関数ですが、アプローチが正反対です。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>DROP関数</th><th>TAKE関数</th></tr></thead><tbody><tr><td>動作</td><td>指定した行・列を<strong>削除</strong>して残りを返す</td><td>指定した行・列を<strong>取り出して</strong>返す</td></tr><tr><td>構文</td><td><code>=DROP(配列, 行数, [列数])</code></td><td><code>=TAKE(配列, 行数, [列数])</code></td></tr><tr><td>引数の構造</td><td>完全に同じ</td><td>完全に同じ</td></tr><tr><td>正の数の意味</td><td>先頭から削除</td><td>先頭から取得</td></tr><tr><td>負の数の意味</td><td>末尾から削除</td><td>末尾から取得</td></tr><tr><td>結果</td><td>指定した部分を<strong>除いた</strong>残り</td><td>指定した部分<strong>だけ</strong></td></tr></tbody></table></figure>



<p>同じデータに対して、DROPとTAKEの結果を比べてみましょう。</p>



<pre class="wp-block-code"><code>=DROP(A1:A10, 3)   → 4行目〜10行目が返る（先頭3行を削除）
=TAKE(A1:A10, 3)   → 1行目〜3行目が返る（先頭3行を取得）</code></pre>



<p>DROPが返す部分とTAKEが返す部分は、ちょうど補い合う関係です。元の配列をDROPの結果とTAKEの結果に分割しているイメージですね。</p>



<p>使い分けの目安は次のとおりです。</p>



<ul class="wp-block-list"><li><strong>ヘッダー行や合計行を除外したい</strong> → DROP関数（「不要な行を消す」が直感的）</li><li><strong>上位N件だけ取り出したい</strong> → TAKE関数（「N件取る」が直感的）</li><li><strong>中間レコードの抽出</strong> → DROP + TAKEの組み合わせ</li></ul>



<p>迷ったときは「自分がやりたい操作は消す？取る？」と考えてみてください。意図が伝わりやすい方を選ぶと、数式が読みやすくなりますよ。</p>



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



<p>DROP関数はシンプルですが、削除する行数の指定を間違えるとエラーになります。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td><code>#CALC!</code></td><td>削除する行数が配列の行数以上になった</td><td>削除行数を配列の行数より小さくしてください</td></tr><tr><td><code>#VALUE!</code></td><td>行数・列数に数値以外（文字列など）を指定した</td><td>引数が数値になっているか確認してください</td></tr><tr><td><code>#REF!</code></td><td>出力先のセルに既にデータがある</td><td>出力先の範囲を空にしてください</td></tr><tr><td><code>#NAME?</code></td><td>関数名のスペルミス</td><td>「DROP」のスペルを確認してください</td></tr></tbody></table></figure>



<p>特に注意したいのが <code>#CALC!</code> エラーです。たとえば5行しかないデータに <code>=DROP(A1:A5, 5)</code> と指定すると、全行が削除されて結果が空になるためエラーが発生します。</p>



<p>削除前に行数を確認する方法で回避できます。</p>



<pre class="wp-block-code"><code>=IF(ROWS(A1:D10)&gt;1, DROP(A1:D10, 1), A1:D10)</code></pre>



<p><a href="https://mashukabu.com/spreadsheet-rows-function/">ROWS関数</a>で行数を取得し、削除しても行が残る場合だけDROPを実行しています。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>IFERRORで囲む方法もありますが、他のエラーまで隠してしまう点に注意してください。原因を特定しやすくするには、IF+ROWSの組み合わせがおすすめです。</p></blockquote>



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



<p>DROP関数は、配列から不要な行・列を削除して残りのデータを返す関数です。正の数で先頭から、負の数で末尾から削除できるシンプルな仕組みです。</p>



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



<ul class="wp-block-list"><li>DROP関数は <code>=DROP(配列, 行数)</code> で、先頭または末尾の行を削除する</li><li>正の数で先頭から削除、負の数で末尾から削除。符号を変えるだけで方向が切り替わる</li><li>第3引数を指定すれば、列方向の削除や行と列の同時削除もできる</li><li><a href="https://mashukabu.com/spreadsheet-filter-function/">FILTER関数</a>のヘッダー除去や集計行の除外など、前処理として活躍する</li><li>TAKE関数はペア関数で、「削除して残す」のがDROP、「指定した分だけ取り出す」のがTAKE</li><li>削除行数が配列の行数以上になると <code>#CALC!</code> エラー。ROWS関数で事前チェックすると安全</li></ul>



<p>まずは <code>=DROP(A1:D10, 1)</code> のヘッダー行削除から試してみてください。<a href="https://mashukabu.com/spreadsheet-filter-function/">FILTER関数</a>や<a href="https://mashukabu.com/spreadsheet-sort-sortn-sortby/">SORT関数</a>と組み合わせれば、データの前処理がグッと効率的になりますよ。</p>



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



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-drop/">ExcelのDROP関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-take-function/">スプレッドシートのTAKE関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-expand-function/">スプレッドシートのEXPAND関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-filter-function/">スプレッドシートのFILTER関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-sort-sortn-sortby/">スプレッドシートのSORT関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-unique-function/">スプレッドシートのUNIQUE関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-vstack-function/">スプレッドシートのVSTACK関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-rows-function/">スプレッドシートのROWS関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-transpose-function/">スプレッドシートのTRANSPOSE関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-arrayformula-function/">スプレッドシートのARRAYFORMULA関数の使い方</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-drop-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのEXPAND関数の使い方｜配列を拡張</title>
		<link>https://mashukabu.com/spreadsheet-expand-function/</link>
					<comments>https://mashukabu.com/spreadsheet-expand-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 21 Mar 2026 11:35:45 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[DROP関数]]></category>
		<category><![CDATA[EXPAND関数]]></category>
		<category><![CDATA[TAKE関数]]></category>
		<category><![CDATA[動的配列関数]]></category>
		<category><![CDATA[配列拡張]]></category>
		<category><![CDATA[配列操作]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4869</guid>

					<description><![CDATA[スプレッドシートのEXPAND関数で配列を拡張する方法を解説。構文・引数の詳細、pad_withの設定、FILTER結果の固定サイズ化やVSTACK前の列数正規化など実務パターン、DROP・TAKE関数との違いまで紹介します。]]></description>
										<content:encoded><![CDATA[
<p>FILTER関数やVSTACK関数の結果って、条件によって行数がバラバラになりますよね。そのまま横に並べるとレイアウトが崩れて困ることもあるはずです。</p>



<p>EXPAND関数を使えば、配列を指定したサイズに自動で拡張できます。不足分には好きな値を埋められるので、サイズの違う結果をきれいに揃えられますよ。</p>



<p>この記事では、EXPAND関数の基本的な使い方から実務活用パターンまでまとめて紹介します。DROP・TAKE関数との違いも整理していますよ。</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">スプレッドシートのEXPAND関数とは？</a><ol><li><a href="#toc2" tabindex="0">EXPAND関数の基本構文</a></li></ol></li><li><a href="#toc3" tabindex="0">EXPAND関数の基本的な使い方</a><ol><li><a href="#toc4" tabindex="0">サンプルデータ</a></li><li><a href="#toc5" tabindex="0">行方向に拡張する</a></li><li><a href="#toc6" tabindex="0">行と列の両方向に拡張する</a></li><li><a href="#toc7" tabindex="0">列方向だけ拡張する</a></li><li><a href="#toc8" tabindex="0">pad_withの指定による違い</a></li></ol></li><li><a href="#toc9" tabindex="0">EXPAND関数の実務活用パターン</a><ol><li><a href="#toc10" tabindex="0">パターン1: FILTER結果を固定サイズに揃える</a></li><li><a href="#toc11" tabindex="0">パターン2: VSTACKで列数が異なるテーブルを結合する</a></li><li><a href="#toc12" tabindex="0">パターン3: DROP + EXPANDでヘッダー除去とサイズ統一を同時に行う</a></li><li><a href="#toc13" tabindex="0">パターン4: HSTACKで行数が異なるテーブルを横結合する</a></li><li><a href="#toc14" tabindex="0">パターン5: SEQUENCE + EXPANDで連番付きテンプレートを作る</a></li></ol></li><li><a href="#toc15" tabindex="0">DROP・TAKE関数との違い・使い分け</a></li><li><a href="#toc16" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc17" tabindex="0">まとめ</a><ol><li><a href="#toc18" tabindex="0">この記事で紹介した関数・関連記事</a></li></ol></li></ol>
    </div>
  </div>

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



<p>EXPAND関数（読み方: エクスパンド関数）は、配列やセル範囲を指定した行数・列数に<strong>拡張</strong>する関数です。「Expand（拡張する・広げる）」が名前の由来です。</p>



<p>たとえば、3行2列の表を10行3列に広げたいとき、一発で拡張できます。拡張部分には空白や0など、好きな値を埋められますよ。</p>



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



<ul class="wp-block-list"><li>配列を指定した行数に拡張する</li><li>列方向の拡張もできる（第3引数を使用）</li><li>行と列を同時に拡張することもできる</li><li>拡張部分に埋める値を自由に指定できる（第4引数）</li></ul>



<p>EXPANDという名前のとおり「拡大専用」の関数です。配列を小さくすることはできません。縮小したい場合は<a href="https://mashukabu.com/spreadsheet-drop-function/">DROP関数</a>を使いましょう。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>EXPAND関数はGoogleスプレッドシート独自の関数ではなく、ExcelのMicrosoft 365やExcel 2024でも使用できます。ただし、Excel 2021以前のバージョンでは使えません。</p></blockquote>



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



<pre class="wp-block-code"><code>=EXPAND(配列, 行, [列], [pad_with])</code></pre>



<p>カッコの中に、対象の範囲と拡張後のサイズを指定します。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>説明</th></tr></thead><tbody><tr><td>配列</td><td>必須</td><td>拡張したいセル範囲または配列</td></tr><tr><td>行</td><td>必須</td><td>拡張後の総行数（元の行数以上を指定）</td></tr><tr><td>列</td><td>任意</td><td>拡張後の総列数（省略時は列方向の拡張なし）</td></tr><tr><td>pad_with</td><td>任意</td><td>拡張部分に埋める値（省略時は#N/A）</td></tr></tbody></table></figure>



<p>第2引数（行）と第3引数（列）には、元の配列のサイズ以上の値を指定します。元のサイズより小さい値を指定すると#VALUE!エラーになるので注意してくださいね。</p>



<p>第4引数（pad_with）は省略すると拡張部分に#N/Aが表示されます。実務では&#8221;&#8221;（空文字列）か0を指定しておくのがおすすめです。</p>



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



<p>ここでは、売上データを使ってEXPAND関数で配列を拡張する例を紹介します。</p>



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



<p>A1:C4に以下のデータが入っているとします。</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>商品A</td><td>50,000</td></tr><tr><td>3</td><td>田中</td><td>商品B</td><td>30,000</td></tr><tr><td>4</td><td>鈴木</td><td>商品C</td><td>45,000</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc5">行方向に拡張する</span></h3>



<p>3行のデータ部分を8行に拡張してみましょう。出力先のセル（たとえばE1）に以下の数式を入力します。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>E</th><th>F</th><th>G</th></tr></thead><tbody><tr><td>1</td><td>担当者</td><td>商品</td><td>売上</td></tr><tr><td>2</td><td>佐藤</td><td>商品A</td><td>50,000</td></tr><tr><td>3</td><td>田中</td><td>商品B</td><td>30,000</td></tr><tr><td>4</td><td>鈴木</td><td>商品C</td><td>45,000</td></tr><tr><td>5</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>6</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>7</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>8</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr></tbody></table></figure>



<p>元の4行3列を8行3列に拡張しました。5行目以降は空白で埋められています。pad_withに&#8221;&#8221;を指定したので、見た目はスッキリですね。</p>



<h3 class="wp-block-heading"><span id="toc6">行と列の両方向に拡張する</span></h3>



<p>行と列を同時に拡張することもできます。A1:C4（4行3列）を6行5列にしてみましょう。</p>



<pre class="wp-block-code"><code>=EXPAND(A1:C4, 6, 5, 0)</code></pre>



<p>元のデータの右側と下側に、0で埋められたセルが追加されます。pad_withに0を指定したので、拡張部分にはすべて0が入ります。</p>



<h3 class="wp-block-heading"><span id="toc7">列方向だけ拡張する</span></h3>



<p>列方向だけ拡張したい場合は、行の引数に元の行数をそのまま指定します。</p>



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



<p>行数は4のまま変えず、列数だけ3列から6列に拡張しています。</p>



<h3 class="wp-block-heading"><span id="toc8">pad_withの指定による違い</span></h3>



<p>pad_with引数の設定で、拡張部分の表示が変わります。</p>



<figure class="wp-block-table"><table><thead><tr><th>pad_withの指定</th><th>拡張部分の表示</th><th>備考</th></tr></thead><tbody><tr><td>省略</td><td>#N/A</td><td>エラー値として扱われる</td></tr><tr><td>&#8220;&#8221;</td><td>空白表示</td><td>空文字列（ISBLANKはFALSE）</td></tr><tr><td>0</td><td>0</td><td>数値のゼロとして扱われる</td></tr><tr><td>&#8220;-&#8220;</td><td>&#8211;</td><td>テキストとして表示される</td></tr></tbody></table></figure>



<p>pad_withを省略すると、拡張部分の#N/Aが他の数式にも連鎖します。特別な理由がなければ&#8221;&#8221;か0を指定してください。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>pad_withに&#8221;&#8221;を指定したセルは見た目は空白ですが、空文字列が入っています。ISBLANK関数で判定するとFALSEが返る点に注意してくださいね。</p></blockquote>



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



<h3 class="wp-block-heading"><span id="toc10">パターン1: FILTER結果を固定サイズに揃える</span></h3>



<p><a href="https://mashukabu.com/spreadsheet-filter-function/">FILTER関数</a>の結果は、条件に合うデータの件数で行数が変わります。複数のFILTER結果を横に並べると行数がバラバラでレイアウトが崩れがちです。</p>



<p>EXPAND関数で結果を固定サイズに揃えましょう。</p>



<pre class="wp-block-code"><code>=EXPAND(FILTER(A2:C100, B2:B100=&quot;営業部&quot;), 10, 3, &quot;&quot;)</code></pre>



<p>FILTER関数の結果をそのままEXPANDに渡して、10行3列に拡張しています。結果が3件でも8件でも、常に10行分の表示領域を確保できますよ。</p>



<h3 class="wp-block-heading"><span id="toc11">パターン2: VSTACKで列数が異なるテーブルを結合する</span></h3>



<p><a href="https://mashukabu.com/spreadsheet-vstack-function/">VSTACK関数</a>で列数が異なるテーブルを縦結合すると、不足部分がエラーになることがあります。</p>



<p>EXPAND関数で列数を揃えてから結合しましょう。</p>



<pre class="wp-block-code"><code>=VSTACK(EXPAND(A1:B5, 5, 3, &quot;&quot;), D1:F5)</code></pre>



<p>A1:B5（2列）を3列に拡張してからVSTACKで結合しています。不足部分が空白で埋まるので、きれいな一覧表が完成しますよ。</p>



<h3 class="wp-block-heading"><span id="toc12">パターン3: DROP + EXPANDでヘッダー除去とサイズ統一を同時に行う</span></h3>



<p><a href="https://mashukabu.com/spreadsheet-drop-function/">DROP関数</a>で不要な行を削除してから、EXPAND関数でサイズを揃える2段階の整形パターンです。</p>



<pre class="wp-block-code"><code>=EXPAND(DROP(A1:D20, 1), 10, 4, &quot;&quot;)</code></pre>



<p>DROPで先頭1行（ヘッダー）を削除し、EXPANDで10行4列に揃えています。レポートの表サイズを統一したいときに便利です。</p>



<h3 class="wp-block-heading"><span id="toc13">パターン4: HSTACKで行数が異なるテーブルを横結合する</span></h3>



<p><a href="https://mashukabu.com/spreadsheet-hstack-function/">HSTACK関数</a>で行数が異なるテーブルを横に結合するときも、EXPAND関数で行数を揃えてから結合できます。</p>



<pre class="wp-block-code"><code>=HSTACK(EXPAND(A1:B3, 5, 2, &quot;&quot;), EXPAND(D1:E5, 5, 2, &quot;&quot;))</code></pre>



<p>どちらのテーブルも5行2列に揃えてからHSTACKで結合しています。行数の違いによるエラーを防げますよ。</p>



<h3 class="wp-block-heading"><span id="toc14">パターン5: SEQUENCE + EXPANDで連番付きテンプレートを作る</span></h3>



<p>SEQUENCE関数で連番を生成し、EXPAND関数で入力欄を確保するテクニックです。</p>



<pre class="wp-block-code"><code>=HSTACK(SEQUENCE(20), EXPAND({&quot;&quot;}, 20, 3, &quot;&quot;))</code></pre>



<p>SEQUENCE(20)で1〜20の連番を生成し、空白を20行3列に拡張して入力欄を作成しています。<a href="https://mashukabu.com/spreadsheet-hstack-function/">HSTACK関数</a>で連番と入力欄を横に結合すれば、連番付きの空テンプレートが完成します。</p>



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



<p>EXPAND関数には、配列のサイズを変更する仲間としてDROP関数とTAKE関数があります。3つの関数を比較してみましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>EXPAND関数</th><th>DROP関数</th><th>TAKE関数</th></tr></thead><tbody><tr><td>機能</td><td>配列を<strong>拡大</strong>する</td><td>先頭/末尾を<strong>削除</strong>する</td><td>先頭/末尾を<strong>取り出す</strong></td></tr><tr><td>配列サイズ</td><td>大きくなる</td><td>小さくなる</td><td>小さくなる</td></tr><tr><td>引数の意味</td><td>拡張後の<strong>総行列数</strong></td><td>削除する<strong>行列数</strong></td><td>取得する<strong>行列数</strong></td></tr><tr><td>負の数の指定</td><td>不可（#VALUE!エラー）</td><td>可（末尾から削除）</td><td>可（末尾から取得）</td></tr><tr><td>pad_with引数</td><td>あり（拡張部分の値）</td><td>なし</td><td>なし</td></tr><tr><td>代表的な使い方</td><td>FILTER結果の固定サイズ化</td><td>ヘッダー行の除去</td><td>上位N件の取得</td></tr></tbody></table></figure>



<p>DROPとTAKEは配列を縮小する関数ですが、アプローチが逆です。DROPは「不要な部分を捨てる」、TAKEは「必要な部分だけ取る」です。EXPANDはこの2つとは方向が逆で、配列を大きくする関数です。</p>



<p>使い分けの目安は次のとおりです。</p>



<ul class="wp-block-list"><li><strong>結果のサイズを統一したい</strong> → EXPAND関数（不足分を埋めて整形）</li><li><strong>ヘッダー行や合計行を除外したい</strong> → <a href="https://mashukabu.com/spreadsheet-drop-function/">DROP関数</a>（「不要な行を消す」が直感的）</li><li><strong>上位N件だけ取り出したい</strong> → TAKE関数（「N件取る」が直感的）</li><li><strong>ヘッダー除去してからサイズを揃えたい</strong> → DROP + EXPANDの組み合わせ</li></ul>



<p>迷ったときは「配列を大きくしたい？ 小さくしたい？」と考えてみてください。大きくするならEXPAND、小さくするならDROPかTAKEです。</p>



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



<p>EXPAND関数で発生するエラーをまとめました。</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>元の配列より小さいサイズを指定した</td><td>元のサイズ以上の値を指定する。縮小は<a href="https://mashukabu.com/spreadsheet-drop-function/">DROP関数</a>を使う</td></tr><tr><td><code>#VALUE!</code></td><td>行・列に負の値や小数を指定した</td><td>正の整数のみ指定する</td></tr><tr><td><code>#N/A</code></td><td>pad_with引数を省略した</td><td>pad_withに&#8221;&#8221;や0を指定する</td></tr><tr><td><code>#REF!</code></td><td>出力先のセルに既にデータがある</td><td>出力先の範囲を空にする</td></tr><tr><td><code>#NAME?</code></td><td>関数名のスペルミス</td><td>「EXPAND」のスペルを確認する</td></tr></tbody></table></figure>



<p>特に注意したいのが <code>#VALUE!</code> エラーです。EXPAND関数は拡大専用なので、元の配列より小さいサイズは指定できません。</p>



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



<p>A1:C5は5行3列です。3行2列にしようとすると#VALUE!エラーになります。縮小したい場合は<a href="https://mashukabu.com/spreadsheet-drop-function/">DROP関数</a>を使いましょう。</p>



<p>もうひとつよくあるのが <code>#N/A</code> です。pad_with引数を省略すると拡張部分に#N/Aが表示されます。これは仕様どおりの動作ですが、他の数式にもエラーが連鎖します。pad_withに&#8221;&#8221;か0を指定しておくのがおすすめですよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>IFERRORで#N/Aを処理する方法もありますが、他のエラーまで隠してしまいます。最初からpad_withを指定しておく方が安全です。</p></blockquote>



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



<p>EXPAND関数は、配列を指定したサイズに拡張する関数です。FILTER関数やVSTACK関数と組み合わせると、サイズの異なる結果をきれいに揃えられます。</p>



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



<ul class="wp-block-list"><li>EXPAND関数は <code>=EXPAND(配列, 行, [列], [pad_with])</code> で、配列を拡張する</li><li>pad_with引数を省略すると拡張部分に#N/Aが表示される。&#8221;&#8221;や0を指定するのがおすすめ</li><li><a href="https://mashukabu.com/spreadsheet-filter-function/">FILTER関数</a>の結果を固定サイズに揃えたり、<a href="https://mashukabu.com/spreadsheet-vstack-function/">VSTACK関数</a>の結合前に列数を正規化したりできる</li><li>DROP関数は縮小、EXPAND関数は拡大で、方向が正反対のペア関数</li><li><a href="https://mashukabu.com/spreadsheet-drop-function/">DROP関数</a>でヘッダーを除去してからEXPANDでサイズを揃える組み合わせが便利</li><li>元の配列より小さいサイズを指定すると#VALUE!エラー。縮小にはDROP関数を使う</li></ul>



<p>まずは <code>=EXPAND(A1:C4, 10, 3, "")</code> のように、表を固定サイズに揃えるところから試してみてください。<a href="https://mashukabu.com/spreadsheet-filter-function/">FILTER関数</a>や<a href="https://mashukabu.com/spreadsheet-vstack-function/">VSTACK関数</a>と組み合わせれば、配列操作がグッと効率的になりますよ。</p>



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



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-expand/">ExcelのEXPAND関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-drop-function/">スプレッドシートのDROP関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-take-function/">スプレッドシートのTAKE関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-filter-function/">スプレッドシートのFILTER関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-vstack-function/">スプレッドシートのVSTACK関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-hstack-function/">スプレッドシートのHSTACK関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-sort-sortn-sortby/">スプレッドシートのSORT関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-unique-function/">スプレッドシートのUNIQUE関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-arrayformula-function/">スプレッドシートのARRAYFORMULA関数の使い方</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-expand-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのFLATTEN関数の使い方｜配列を1列にまとめる方法</title>
		<link>https://mashukabu.com/spreadsheet-flatten-function/</link>
					<comments>https://mashukabu.com/spreadsheet-flatten-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 21 Mar 2026 11:35:24 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[1列に変換]]></category>
		<category><![CDATA[FLATTEN関数]]></category>
		<category><![CDATA[TOCOL関数]]></category>
		<category><![CDATA[TOROW関数]]></category>
		<category><![CDATA[配列操作]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4863</guid>

					<description><![CDATA[スプレッドシートのFLATTEN関数で多次元の配列を縦1列に変換する方法を解説。複数範囲の結合、TOCOL関数との違いと使い分けまで、実務で使えるテクニックを紹介します。]]></description>
										<content:encoded><![CDATA[
<p>スプレッドシートで複数行・複数列にまたがるデータを、縦1列にまとめたいことってありますよね。手作業でコピー＆ペーストすると時間がかかりますし、データが変わるたびにやり直しです。</p>



<p>FLATTEN関数を使えば、数式ひとつで多次元の配列を縦1列に変換できます。引数に範囲を指定するだけのシンプルな関数なので、覚えるのも簡単です。</p>



<p>この記事では、FLATTEN関数の基本から、TOCOL関数との違いまでわかりやすく解説します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-9" checked><label class="toc-title" for="toc-checkbox-9">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">FLATTEN関数とは？</a><ol><li><a href="#toc2" tabindex="0">FLATTEN関数の基本構文</a></li></ol></li><li><a href="#toc3" tabindex="0">FLATTEN関数の基本的な使い方</a><ol><li><a href="#toc4" tabindex="0">サンプルデータ</a></li><li><a href="#toc5" tabindex="0">数値データだけを1列にする</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">FLATTEN関数の実務活用パターン</a><ol><li><a href="#toc9" tabindex="0">パターン1: 重複を除外したユニークリストを作る</a></li><li><a href="#toc10" tabindex="0">パターン2: 1列にまとめてからソートする</a></li><li><a href="#toc11" tabindex="0">パターン3: 別シートの範囲をまとめて結合する</a></li><li><a href="#toc12" tabindex="0">パターン4: QUERY関数の入力データとして使う</a></li><li><a href="#toc13" tabindex="0">パターン5: ARRAYFORMULA関数と組み合わせて一括計算する</a></li></ol></li><li><a href="#toc14" tabindex="0">TOCOL関数との違い・使い分け</a><ol><li><a href="#toc15" tabindex="0">FLATTEN関数が向いている場面</a></li><li><a href="#toc16" tabindex="0">TOCOL関数が向いている場面</a></li></ol></li><li><a href="#toc17" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc18" tabindex="0">まとめ</a><ol><li><a href="#toc19" tabindex="0">この記事で紹介した関数・関連記事</a></li></ol></li></ol>
    </div>
  </div>

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



<p>FLATTEN関数（読み方: フラッテン関数）は、2次元以上のセル範囲や配列を<strong>縦1列の配列に変換する</strong>関数です。「flatten（平らにする）」が名前の由来で、多次元のデータを平坦化するイメージですね。</p>



<p>たとえば、3行x4列の表をFLATTEN関数に渡すと、縦12行x1列のデータに変換されます。元データと数式でつながっているため、元データを変更すると結果も自動で更新されますよ。</p>



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



<ul class="wp-block-list"><li>2次元のセル範囲を縦1列に変換する</li><li>複数の離れた範囲を引数に指定して、まとめて1列にできる</li><li>他の関数（SORT、UNIQUE、FILTERなど）と組み合わせて活用できる</li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>FLATTEN関数はGoogleスプレッドシート独自の関数です。Excelには同じ名前の関数がありません。Excelで同様の処理をしたい場合は、TOCOL関数（Microsoft 365で利用可能）を使ってください。</p></blockquote>



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



<pre class="wp-block-code"><code>=FLATTEN(範囲1, [範囲2, ...])</code></pre>



<p>カッコの中に、1列にまとめたい範囲を指定します。</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>追加で1列にまとめたい範囲（複数指定可能）</td></tr></tbody></table></figure>



<p>FLATTEN関数にはオプション引数がありません。空白の除外やスキャン方向の切り替えといった機能はなく、とてもシンプルです。指定した範囲を行方向（左から右、上から下）に読み取って縦1列に変換します。</p>



<p>シンプルな分、迷わずに使えるのがFLATTEN関数のよいところです。</p>



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



<p>ここでは、月別の売上データをFLATTEN関数で1列に変換する例を紹介します。</p>



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



<p>A1:D4に以下のデータが入っているとします。</p>



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



<h3 class="wp-block-heading"><span id="toc5">数値データだけを1列にする</span></h3>



<p>B2:D4の数値部分だけを1列に変換します。出力先のセル（たとえばF2）に以下の数式を入力して、Enterを押します。</p>



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



<p>行方向（左から右、上から下）に読み取られ、9個の値が縦1列に並びます。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>F</th></tr></thead><tbody><tr><td>2</td><td>100</td></tr><tr><td>3</td><td>120</td></tr><tr><td>4</td><td>110</td></tr><tr><td>5</td><td>80</td></tr><tr><td>6</td><td>90</td></tr><tr><td>7</td><td>85</td></tr><tr><td>8</td><td>60</td></tr><tr><td>9</td><td>70</td></tr><tr><td>10</td><td>65</td></tr></tbody></table></figure>



<p>東京の4月→5月→6月、大阪の4月→5月→6月&#8230;という順番で並んでいますね。</p>



<h3 class="wp-block-heading"><span id="toc6">ヘッダー行を含めて変換する</span></h3>



<p>範囲にヘッダー行を含めると、ヘッダーも一緒に1列に変換されます。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>F</th></tr></thead><tbody><tr><td>1</td><td>&nbsp;</td></tr><tr><td>2</td><td>4月</td></tr><tr><td>3</td><td>5月</td></tr><tr><td>4</td><td>6月</td></tr><tr><td>5</td><td>東京</td></tr><tr><td>6</td><td>100</td></tr><tr><td>7</td><td>&#8230;</td></tr></tbody></table></figure>



<p>A1が空白セルなので、先頭に空白が入ります。FLATTEN関数には空白を除外する機能がないため、数値だけを取り出したい場合は範囲を絞って指定してくださいね。</p>



<h3 class="wp-block-heading"><span id="toc7">複数の離れた範囲を1列にまとめる</span></h3>



<p>FLATTEN関数の大きな特徴は、複数の範囲を引数として直接指定できることです。</p>



<p>たとえば、上期（B2:D4）と下期（F2:H4）のデータを1つのリストにまとめたい場合はこう書きます。</p>



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



<p>2つの範囲のデータが順番につながって、縦1列に並びます。カンマで区切るだけなので、3つ以上の範囲も同じように指定できますよ。</p>



<pre class="wp-block-code"><code>=FLATTEN(B2:D4, F2:H4, J2:L4)</code></pre>



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



<h3 class="wp-block-heading"><span id="toc9">パターン1: 重複を除外したユニークリストを作る</span></h3>



<p>複数列にまたがる担当者名を1列にまとめて、重複を除外したリストを作れます。</p>



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



<p>FLATTEN関数で1列にまとめた結果を、<a href="https://mashukabu.com/spreadsheet-unique-function/">UNIQUE関数</a>に渡して重複を除外しています。ドロップダウンリストの選択肢を自動生成したい場面で活躍するパターンです。</p>



<h3 class="wp-block-heading"><span id="toc10">パターン2: 1列にまとめてからソートする</span></h3>



<p>散らばったデータを1列にまとめて、昇順や降順に並べ替えることもできます。</p>



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



<p><a href="https://mashukabu.com/spreadsheet-sort-sortn-sortby/">SORT関数</a>と組み合わせれば、2次元の数値データを小さい順に並べた一覧が作れます。全体のランキングを見たいときに便利ですよ。</p>



<h3 class="wp-block-heading"><span id="toc11">パターン3: 別シートの範囲をまとめて結合する</span></h3>



<p>FLATTEN関数は別シートの範囲も引数に指定できます。</p>



<pre class="wp-block-code"><code>=FLATTEN(Sheet1!B2:D4, Sheet2!B2:D4)</code></pre>



<p>月別や拠点別にシートを分けている場合でも、1つの数式で横断的にデータをまとめられます。</p>



<h3 class="wp-block-heading"><span id="toc12">パターン4: QUERY関数の入力データとして使う</span></h3>



<p>FLATTEN関数で1列にまとめたデータを、<a href="https://mashukabu.com/spreadsheet-query-function/">QUERY関数</a>で集計するパターンです。</p>



<pre class="wp-block-code"><code>=QUERY(FLATTEN(B2:D10), &quot;select Col1, count(Col1) group by Col1 label count(Col1) '件数'&quot;)</code></pre>



<p>複数列に分散していたデータを1列に変換してからQUERY関数に渡すことで、全体の集計ができます。</p>



<h3 class="wp-block-heading"><span id="toc13">パターン5: ARRAYFORMULA関数と組み合わせて一括計算する</span></h3>



<p>1列に変換した値に対して一括で計算を適用できます。</p>



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



<p>売上データを1列に変換しつつ、すべての値に1.1（税込み換算）を掛けています。<a href="https://mashukabu.com/spreadsheet-arrayformula-function/">ARRAYFORMULA関数</a>と組み合わせれば、変換と計算を1つの数式で完結できますよ。</p>



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



<p>FLATTEN関数と似た機能を持つ関数に、TOCOL関数があります。どちらも2次元データを縦1列に変換しますが、機能に違いがあります。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>FLATTEN関数</th><th>TOCOL関数</th></tr></thead><tbody><tr><td>出力方向</td><td>縦1列</td><td>縦1列</td></tr><tr><td>空白セルの除外</td><td>できない</td><td>できる（第2引数で指定）</td></tr><tr><td>エラー値の除外</td><td>できない</td><td>できる（第2引数で指定）</td></tr><tr><td>スキャン方向の指定</td><td>できない（行方向に固定）</td><td>できる（第3引数で指定）</td></tr><tr><td>複数範囲の結合</td><td>引数を複数指定できる</td><td>配列記法（<code>{}</code>）で対応</td></tr><tr><td>Excel互換性</td><td>なし（Sheets独自）</td><td>あり（Microsoft 365）</td></tr></tbody></table></figure>



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



<ul class="wp-block-list"><li><strong>複数の離れた範囲をシンプルに結合したい</strong> → FLATTEN関数</li><li><strong>空白除外やスキャン方向の制御が必要</strong> → <a href="https://mashukabu.com/spreadsheet-tocol-function/">TOCOL関数</a></li></ul>



<h3 class="wp-block-heading"><span id="toc15">FLATTEN関数が向いている場面</span></h3>



<p>FLATTEN関数は引数にカンマ区切りで複数の範囲を指定できるのが最大の利点です。</p>



<pre class="wp-block-code"><code>=FLATTEN(A1:C3, E1:G3, I1:K3)</code></pre>



<p>TOCOL関数で同じことをするには、中カッコ（<code>{}</code>）で配列を組み立てる必要があります。</p>



<pre class="wp-block-code"><code>=TOCOL({A1:C3; E1:G3; I1:K3})</code></pre>



<p>範囲をまとめるだけの用途なら、FLATTEN関数のほうが数式がシンプルで読みやすいですね。</p>



<h3 class="wp-block-heading"><span id="toc16">TOCOL関数が向いている場面</span></h3>



<p>TOCOL関数は空白やエラーを除外する機能を持っています。</p>



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



<p>第2引数に1を指定すると空白セルをスキップし、3を指定すると空白とエラーの両方を除外できます。FLATTEN関数にはこの機能がないため、データクレンジングが必要な場面ではTOCOL関数のほうが便利です。</p>



<p>また、TOCOL関数は第3引数でスキャン方向を切り替えられます。列方向（上から下→次の列へ）に読み取りたい場合は、TOCOL関数を使ってください。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>TOCOL関数はExcelのMicrosoft 365でも使えます。Excelとの互換性を意識するなら、TOCOL関数を選ぶのがおすすめです。FLATTEN関数はGoogleスプレッドシート独自の関数のため、Excelでは動作しません。</p></blockquote>



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



<p>FLATTEN関数は引数が少なくシンプルですが、いくつかのエラーが発生することがあります。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td><code>#REF!</code></td><td>出力先のセルに既にデータがある</td><td>出力先の範囲を空にしてください</td></tr><tr><td><code>#REF!</code></td><td>参照先の行や列が削除された</td><td>参照先セルが存在するか確認してください</td></tr><tr><td><code>#NAME?</code></td><td>関数名のスペルミス</td><td>「FLATTEN」のスペルを確認してください</td></tr><tr><td><code>#NAME?</code></td><td>Excelで使用しようとした</td><td>FLATTEN関数はGoogleスプレッドシート専用です。ExcelではTOCOL関数を使ってください</td></tr><tr><td>空白が混ざる</td><td>元データに空白セルがある</td><td>FLATTEN関数では空白を除外できません。TOCOL関数の第2引数に1を指定するか、QUERY関数で空白行を除外してください</td></tr><tr><td>エラー値が混ざる</td><td>元データにエラー値がある</td><td>FLATTEN関数ではエラーを除外できません。TOCOL関数の第2引数に2を指定してください</td></tr></tbody></table></figure>



<p>特に注意したいのが「出力先のセルに既にデータがある」ケースです。スプレッドシートのスピル展開は、出力先にデータがあると<code>#REF!</code>エラーになります。出力先に十分な空きセルを確保してから数式を入力してくださいね。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>FLATTEN関数で「Excelに渡したら動かなくなった」というケースが多いです。チームでExcelユーザーとファイルを共有する場合は、TOCOL関数を使うほうが安全ですよ。</p></blockquote>



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



<p>FLATTEN関数は、多次元のセル範囲を縦1列に変換するためのシンプルな関数です。オプション引数がなく覚えやすいので、配列操作の入門にもぴったりです。</p>



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



<ul class="wp-block-list"><li>FLATTEN関数は<code>=FLATTEN(範囲)</code>で、多次元データを縦1列に変換する</li><li>複数の範囲をカンマ区切りで指定でき、離れたデータをまとめるのが得意</li><li>空白除外やスキャン方向の制御はできない（必要ならTOCOL関数を使う）</li><li>Googleスプレッドシート独自の関数で、Excelでは使えない</li><li>UNIQUE関数やSORT関数と組み合わせると、データ整理がグッと楽になる</li></ul>



<p>まずは<code>=FLATTEN(A1:C3)</code>のシンプルな使い方から試してみてください。複数範囲の結合が必要になったら、カンマで範囲を追加するだけですよ。</p>



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



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/spreadsheet-tocol-function/">スプレッドシートのTOCOL関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-torow-function/">スプレッドシートのTOROW関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-unique-function/">スプレッドシートのUNIQUE関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-sort-sortn-sortby/">スプレッドシートのSORT・SORTN・SORTBY関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-arrayformula-function/">スプレッドシートのARRAYFORMULA関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-query-function/">スプレッドシートのQUERY関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-transpose-function/">スプレッドシートのTRANSPOSE関数の使い方</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-flatten-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのHSTACK関数の使い方｜表を横に結合</title>
		<link>https://mashukabu.com/spreadsheet-hstack-function/</link>
					<comments>https://mashukabu.com/spreadsheet-hstack-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 21 Mar 2026 11:34:51 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[HSTACK関数]]></category>
		<category><![CDATA[VSTACK関数]]></category>
		<category><![CDATA[横方向に結合]]></category>
		<category><![CDATA[配列操作]]></category>
		<category><![CDATA[配列記法]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4853</guid>

					<description><![CDATA[スプレッドシートのHSTACK関数で複数の表を横方向に結合する方法を解説。基本構文から実務活用パターン、VSTACK関数や中カッコ配列記法との違いまで、わかりやすく紹介します。]]></description>
										<content:encoded><![CDATA[
<p>スプレッドシートで、別々の表を横方向にくっつけたいことってありますよね。社員名簿の横に評価データを並べたり、商品リストに在庫数を追加したり。手作業でコピーすると、行がズレたりデータ更新のたびにやり直しになったりで大変です。</p>



<p>HSTACK関数を使えば、複数の表を数式ひとつで横方向に結合できます。元データが更新されれば結合結果も自動で反映されるので、メンテナンスの手間もかかりません。</p>



<p>この記事では、HSTACK関数の基本から、VSTACK関数や中カッコ配列記法との違いまでわかりやすく解説します。</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">スプレッドシートのHSTACK関数とは？</a><ol><li><a href="#toc2" tabindex="0">HSTACK関数の基本構文</a></li><li><a href="#toc3" tabindex="0">行数が異なる表を結合した場合</a></li></ol></li><li><a href="#toc4" tabindex="0">HSTACK関数の基本的な使い方</a><ol><li><a href="#toc5" tabindex="0">サンプルデータ</a></li><li><a href="#toc6" tabindex="0">2つの表を横に結合する</a></li><li><a href="#toc7" tabindex="0">3つ以上の表を結合する</a></li></ol></li><li><a href="#toc8" tabindex="0">HSTACK関数の実務活用パターン</a><ol><li><a href="#toc9" tabindex="0">パターン1: FILTER関数と組み合わせて絞り込む</a></li><li><a href="#toc10" tabindex="0">パターン2: SORT関数と組み合わせて並べ替える</a></li><li><a href="#toc11" tabindex="0">パターン3: ARRAYFORMULA関数で列を追加する</a></li><li><a href="#toc12" tabindex="0">パターン4: 別シートの表を結合する</a></li><li><a href="#toc13" tabindex="0">パターン5: UNIQUE関数で重複なし結合リストを作る</a></li></ol></li><li><a href="#toc14" tabindex="0">VSTACK関数との違い・使い分け</a></li><li><a href="#toc15" tabindex="0">中カッコ{配列}記法との違い・使い分け</a><ol><li><a href="#toc16" tabindex="0">中カッコ配列記法とは</a></li><li><a href="#toc17" tabindex="0">HSTACK関数と配列記法の比較</a></li></ol></li><li><a href="#toc18" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc19" tabindex="0">まとめ</a><ol><li><a href="#toc20" tabindex="0">この記事で紹介した関数・関連記事</a></li></ol></li></ol>
    </div>
  </div>

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



<p>HSTACK関数（読み方: エイチスタック関数）は、複数の配列やセル範囲を<strong>横方向（水平方向）に結合</strong>する関数です。「H」はHorizontal（水平）、「STACK」は積み重ねるという意味で、表を横に積み重ねるイメージです。</p>



<p>たとえば、3列の社員名簿と2列の評価テーブルを結合して、5列の一覧表を作れます。元データと数式でつながっているため、元データを変更すれば結合結果も自動で更新されますよ。</p>



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



<ul class="wp-block-list"><li>複数の表やセル範囲を横方向に結合する</li><li>引数を追加するだけで3つ以上の表もまとめて結合できる</li><li>行数が異なる表を結合した場合、不足行は自動で補完される</li><li>FILTER関数やSORT関数と組み合わせて結合後のデータを加工できる</li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>HSTACK関数はGoogleスプレッドシート独自の関数ではなく、ExcelのMicrosoft 365やExcel 2024でも使用できます。ただし、Excel 2021以前のバージョンでは使えません。</p></blockquote>



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



<pre class="wp-block-code"><code>=HSTACK(配列1, [配列2], ...)</code></pre>



<p>カッコの中に、横方向に結合したい範囲を順番に指定します。</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>結合する最初のセル範囲または配列</td></tr><tr><td>配列2以降</td><td>任意</td><td>追加で結合するセル範囲または配列（最大254個）</td></tr></tbody></table></figure>



<p>結合したい表をカンマ区切りで並べるだけのシンプルな構文です。引数は最大254個まで指定できますが、実務では2〜4個程度を使うことがほとんどですよ。</p>



<h3 class="wp-block-heading"><span id="toc3">行数が異なる表を結合した場合</span></h3>



<p>HSTACK関数では、結合する表の行数が異なっても結合自体は成功します。ただし、行数が少ない側の不足分は<strong>#N/Aエラー</strong>で自動的に埋められます。</p>



<p>たとえば、3行の表と5行の表を結合すると、3行の表側の4〜5行目に#N/Aが入ります。この#N/Aを消したい場合は、IFERROR関数で囲みましょう。</p>



<pre class="wp-block-code"><code>=IFERROR(HSTACK(A1:B3, D1:E5), &quot;&quot;)</code></pre>



<p>これで#N/Aの部分が空白に置き換わります。行数が異なる表を扱うときは、セットで覚えておいてくださいね。</p>



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



<p>ここでは、社員データを使ってHSTACK関数の基本操作を紹介します。</p>



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



<p>A1:C4に社員名簿、E1:F4に評価テーブルが入っているとします。</p>



<p>社員名簿（A1:C4）:</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>001</td><td>佐藤</td><td>営業</td></tr><tr><td>3</td><td>002</td><td>田中</td><td>経理</td></tr><tr><td>4</td><td>003</td><td>鈴木</td><td>総務</td></tr></tbody></table></figure>



<p>評価テーブル（E1:F4）:</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>E</th><th>F</th></tr></thead><tbody><tr><td>1</td><td>評価</td><td>前年比</td></tr><tr><td>2</td><td>A</td><td>120%</td></tr><tr><td>3</td><td>B</td><td>95%</td></tr><tr><td>4</td><td>A</td><td>110%</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc6">2つの表を横に結合する</span></h3>



<p>出力先のセル（たとえばH1）に以下の数式を入力して、Enterを押します。</p>



<pre class="wp-block-code"><code>=HSTACK(A1:C4, E1:F4)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>H</th><th>I</th><th>J</th><th>K</th><th>L</th></tr></thead><tbody><tr><td>1</td><td>社員番号</td><td>氏名</td><td>部署</td><td>評価</td><td>前年比</td></tr><tr><td>2</td><td>001</td><td>佐藤</td><td>営業</td><td>A</td><td>120%</td></tr><tr><td>3</td><td>002</td><td>田中</td><td>経理</td><td>B</td><td>95%</td></tr><tr><td>4</td><td>003</td><td>鈴木</td><td>総務</td><td>A</td><td>110%</td></tr></tbody></table></figure>



<p>社員名簿の右側に評価テーブルがきれいに結合されました。1つの数式を入力するだけで、5列分のデータがスピルで自動展開されます。</p>



<h3 class="wp-block-heading"><span id="toc7">3つ以上の表を結合する</span></h3>



<p>結合する表が3つ以上ある場合も、カンマで区切って引数を追加するだけです。</p>



<pre class="wp-block-code"><code>=HSTACK(A1:C4, E1:F4, H1:H4)</code></pre>



<p>社員名簿・評価テーブル・備考列の3つを一気に結合できます。データソースが増えても数式に追加するだけなので、管理がラクですよ。</p>



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



<h3 class="wp-block-heading"><span id="toc9">パターン1: FILTER関数と組み合わせて絞り込む</span></h3>



<p>複数の表を結合した後、条件に合うデータだけ抽出したいことがありますよね。<a href="https://mashukabu.com/spreadsheet-filter-function/">FILTER関数</a>と組み合わせましょう。</p>



<pre class="wp-block-code"><code>=FILTER(HSTACK(A2:C4, E2:F4), E2:E4=&quot;A&quot;)</code></pre>



<p>HSTACKで結合した表に対して、評価が「A」のデータだけを抽出しています。FILTER関数の条件には、元のセル範囲（E2:E4）を指定するのがポイントです。</p>



<h3 class="wp-block-heading"><span id="toc10">パターン2: SORT関数と組み合わせて並べ替える</span></h3>



<p>結合したデータを特定の列で並べ替えたい場合は、<a href="https://mashukabu.com/spreadsheet-sort-sortn-sortby/">SORT関数</a>が便利です。</p>



<pre class="wp-block-code"><code>=SORT(HSTACK(A2:C4, E2:F4), 5, FALSE)</code></pre>



<p>第2引数の「5」は結合後の5列目（前年比）を基準にソートします。第3引数のFALSEは降順です。結合と並べ替えが1つの数式で完結しますよ。</p>



<h3 class="wp-block-heading"><span id="toc11">パターン3: ARRAYFORMULA関数で列を追加する</span></h3>



<p>既存のデータに計算列を横に追加するパターンです。</p>



<pre class="wp-block-code"><code>=HSTACK(A1:C4, ARRAYFORMULA(IF(ROW(A1:A4)=1, &quot;税込&quot;, B2:B4*1.1)))</code></pre>



<p>元データの右側に、<a href="https://mashukabu.com/spreadsheet-arrayformula-function/">ARRAYFORMULA関数</a>で計算した「税込」列を追加しています。ヘッダー行にはIF関数で見出しテキストを入れるのがコツです。</p>



<h3 class="wp-block-heading"><span id="toc12">パターン4: 別シートの表を結合する</span></h3>



<p>別シートにある表を横に結合することもできます。</p>



<pre class="wp-block-code"><code>=HSTACK(A1:C4, '評価シート'!A1:B4)</code></pre>



<p>シート名をシングルクォーテーションで囲んで指定します。部署ごとに別シートで管理しているデータを、1つの一覧表にまとめたいときに便利ですよ。</p>



<h3 class="wp-block-heading"><span id="toc13">パターン5: UNIQUE関数で重複なし結合リストを作る</span></h3>



<p>複数の範囲から重複を除外した一覧を作るパターンです。</p>



<pre class="wp-block-code"><code>=UNIQUE(HSTACK(A2:A10, D2:D10))</code></pre>



<p>2つの列を横に結合した後、<a href="https://mashukabu.com/spreadsheet-unique-function/">UNIQUE関数</a>で重複行を除外しています。結合したデータから一意の組み合わせだけを取り出したいときに使えます。</p>



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



<p>HSTACK関数には、ペアとなる<a href="https://mashukabu.com/spreadsheet-vstack-function/">VSTACK関数</a>があります。どちらも表を結合する関数ですが、結合の方向が異なります。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>HSTACK関数</th><th>VSTACK関数</th></tr></thead><tbody><tr><td>結合方向</td><td>横方向（右に並べる）</td><td>縦方向（下に積み重ねる）</td></tr><tr><td>語源</td><td>Horizontal Stack（水平に積む）</td><td>Vertical Stack（垂直に積む）</td></tr><tr><td>結果の行数</td><td>各配列の行数の最大値</td><td>各配列の行数の合計</td></tr><tr><td>結果の列数</td><td>各配列の列数の合計</td><td>各配列の列数の最大値</td></tr><tr><td>サイズ不一致時</td><td>不足行を#N/Aで埋める</td><td>不足列を#N/Aで埋める</td></tr><tr><td>主な用途</td><td>項目（列）を横に追加する</td><td>月別・支店別データを縦にまとめる</td></tr></tbody></table></figure>



<p>使い分けはシンプルです。</p>



<ul class="wp-block-list"><li><strong>列（項目）を増やしたい</strong> → HSTACK関数</li><li><strong>行（データ件数）を増やしたい</strong> → VSTACK関数</li></ul>



<p>たとえば「社員名簿に評価列を追加したい」ならHSTACK関数です。「1月〜3月の売上データを1つの表にまとめたい」なら<a href="https://mashukabu.com/spreadsheet-vstack-function/">VSTACK関数</a>を使いましょう。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>HSTACKとVSTACKは組み合わせて使うこともできます。VSTACKで月別データを縦に結合してから、HSTACKで集計列を横に追加する、といった使い方も可能ですよ。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc15">中カッコ{配列}記法との違い・使い分け</span></h2>



<p>スプレッドシートには、中カッコ <code>{}</code> を使って配列を作る記法があります。HSTACK関数と似た結果を得られますが、いくつかの違いがあります。</p>



<h3 class="wp-block-heading"><span id="toc16">中カッコ配列記法とは</span></h3>



<p>中カッコの中でカンマ区切りにすると、横方向に結合できます。</p>



<pre class="wp-block-code"><code>={A1:C4, E1:F4}</code></pre>



<p>これは <code>=HSTACK(A1:C4, E1:F4)</code> とほぼ同じ結果になります。なお、セミコロン区切り <code>{A1:C4; E1:F4}</code> にすると縦方向の結合（VSTACK相当）になります。</p>



<h3 class="wp-block-heading"><span id="toc17">HSTACK関数と配列記法の比較</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>HSTACK関数</th><th>中カッコ配列記法</th></tr></thead><tbody><tr><td>構文</td><td><code>=HSTACK(範囲1, 範囲2)</code></td><td><code>={範囲1, 範囲2}</code></td></tr><tr><td>行数不一致時</td><td>#N/Aで自動補完</td><td>エラーになる場合がある</td></tr><tr><td>3つ以上の結合</td><td>カンマで追加するだけ</td><td>ネストが深くなりがち</td></tr><tr><td>他関数との組み合わせ</td><td>FILTER・SORTの引数に直接渡せる</td><td>配列記法ごと渡す必要がある</td></tr><tr><td>可読性</td><td>関数名から意図が明確</td><td>慣れないと読みにくい</td></tr><tr><td>Excel互換性</td><td>あり（Microsoft 365）</td><td>Sheets固有の記法</td></tr></tbody></table></figure>



<p><strong>使い分けの目安は次のとおりです。</strong></p>



<ul class="wp-block-list"><li><strong>行数が異なる表を結合する、3つ以上の表を結合する</strong> → HSTACK関数</li><li><strong>行数が同じ2つの表をサッと結合したい</strong> → 中カッコ配列記法</li></ul>



<p>中カッコ記法は手軽ですが、行数が異なる表を結合すると意図しない結果になることがあります。HSTACK関数は行数不一致を#N/Aで自動補完するため、安全に使えますよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>中カッコ配列記法はGoogleスプレッドシート特有の記法です。Excelとの互換性を意識する場合は、HSTACK関数を使うのがおすすめです。</p></blockquote>



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



<p>HSTACK関数はシンプルですが、使い方によってはエラーが発生します。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td><code>#REF!</code></td><td>出力先のセルに既にデータがある</td><td>出力先の範囲を空にしてください</td></tr><tr><td><code>#REF!</code></td><td>参照先の行や列が削除された</td><td>参照先セルが存在するか確認してください</td></tr><tr><td><code>#N/A</code></td><td>行数が異なる表を結合した</td><td>IFERRORで空白に置換してください</td></tr><tr><td><code>#NAME?</code></td><td>関数名のスペルミス</td><td>「HSTACK」のスペルを確認してください</td></tr><tr><td><code>#ERROR!</code></td><td>引数にセル範囲以外の不正な値を指定した</td><td>セル範囲または配列を正しく指定してください</td></tr></tbody></table></figure>



<p>特に注意したいのが <code>#N/A</code> です。これはエラーではなく、行数不一致時の仕様による自動補完です。見た目が気になる場合はIFERROR関数で対処しましょう。</p>



<pre class="wp-block-code"><code>=IFERROR(HSTACK(A1:B3, D1:E5), &quot;&quot;)</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>「出力先のセルに既にデータがある」ケースが最も多いトラブルです。数式を入力するセルの右側に、結合後の列数分の空きスペースを確保してくださいね。</p></blockquote>



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



<p>HSTACK関数は、複数の表やセル範囲を横方向に結合するための関数です。数式ひとつで列を追加でき、元データの更新も自動で反映されます。</p>



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



<ul class="wp-block-list"><li>HSTACK関数は <code>=HSTACK(範囲1, 範囲2)</code> で、表を横方向に結合する</li><li>引数をカンマで追加するだけで、3つ以上の表もまとめて結合できる</li><li>行数が異なる表を結合すると、不足行は#N/Aで埋まる。IFERRORで対処する</li><li><a href="https://mashukabu.com/spreadsheet-vstack-function/">VSTACK関数</a>はペア関数で、縦方向に結合する。列を増やすならHSTACK、行を増やすならVSTACK</li><li>中カッコ配列記法 <code>={範囲1, 範囲2}</code> でも横結合できるが、行数不一致時はHSTACK関数のほうが安全</li><li><a href="https://mashukabu.com/spreadsheet-filter-function/">FILTER関数</a>や<a href="https://mashukabu.com/spreadsheet-sort-sortn-sortby/">SORT関数</a>と組み合わせれば、結合と加工が1つの数式で完結する</li></ul>



<p>まずは <code>=HSTACK(A1:C3, E1:F3)</code> のシンプルな横結合から試してみてください。別シートの情報を横に並べたり、計算列を追加したりと、使い道がどんどん広がりますよ。</p>



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



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/spreadsheet-vstack-function/">スプレッドシートのVSTACK関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-hstack/">ExcelのHSTACK関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-filter-function/">スプレッドシートのFILTER関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-sort-sortn-sortby/">スプレッドシートのSORT関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-unique-function/">スプレッドシートのUNIQUE関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-arrayformula-function/">スプレッドシートのARRAYFORMULA関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-tocol-function/">スプレッドシートのTOCOL関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-transpose-function/">スプレッドシートのTRANSPOSE関数の使い方</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-hstack-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
