<?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>INDEX関数 &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/index%e9%96%a2%e6%95%b0/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Thu, 04 Jun 2026 14:47:25 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://mashukabu.com/wp-content/uploads/2022/04/cropped-site-icon-32x32.png</url>
	<title>INDEX関数 &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>スプレッドシートのIFNA関数の使い方｜#N/Aエラー時の代替値を設定する方法</title>
		<link>https://mashukabu.com/spreadsheet-ifna-function/</link>
					<comments>https://mashukabu.com/spreadsheet-ifna-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Mon, 23 Mar 2026 14:55:13 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[IFERROR関数]]></category>
		<category><![CDATA[IFNA関数]]></category>
		<category><![CDATA[INDEX関数]]></category>
		<category><![CDATA[MATCH関数]]></category>
		<category><![CDATA[VLOOKUP関数]]></category>
		<category><![CDATA[エラー処理]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=5204</guid>

					<description><![CDATA[スプレッドシートのIFNA関数の使い方を基本から解説。#N/Aエラーだけを処理する構文から、VLOOKUPやINDEX/MATCHとの組み合わせ、IFERROR関数との違い、よくあるエラーの対処法まで実務シナリオで丁寧に解説します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">スプレッドシートでVLOOKUPやMATCHを使ったら「#N/A」が表示された。こんな経験、ありませんか？</p>



<p class="wp-block-paragraph">「#N/Aだけ消したいけど、数式ミスまで隠すのは怖い」。そんなときに活躍するのがスプレッドシートのIFNA関数です。</p>



<p class="wp-block-paragraph">この記事では基本の書き方から実務パターンまで解説します。<a href="https://mashukabu.com/spreadsheet-iferror-function/">IFERROR関数</a>との違いもしっかり紹介しますよ。</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">スプレッドシートのIFNA関数とは？#N/Aエラー専用の処理関数</a></li><li><a href="#toc2" tabindex="0">IFNA関数の書き方（構文・引数）</a><ol><li><a href="#toc3" tabindex="0">基本構文</a></li><li><a href="#toc4" tabindex="0">引数の説明</a></li><li><a href="#toc5" tabindex="0">最もシンプルな使用例</a></li></ol></li><li><a href="#toc6" tabindex="0">基本的な使い方3選</a><ol><li><a href="#toc7" tabindex="0">#N/Aを空白にする</a></li><li><a href="#toc8" tabindex="0">#N/Aのときにメッセージを表示する</a></li><li><a href="#toc9" tabindex="0">#N/Aのときに数値を返す</a></li></ol></li><li><a href="#toc10" tabindex="0">実務で使える応用パターン</a><ol><li><a href="#toc11" tabindex="0">VLOOKUP+IFNAで未登録データを処理する</a></li><li><a href="#toc12" tabindex="0">INDEX/MATCH+IFNAで柔軟な検索をする</a></li><li><a href="#toc13" tabindex="0">IFNAのネストで複数テーブルを順番に検索する</a></li><li><a href="#toc14" tabindex="0">IF関数と組み合わせて空白セルを除外する</a></li></ol></li><li><a href="#toc15" tabindex="0">IFNA関数とIFERROR関数の違い・使い分け</a><ol><li><a href="#toc16" tabindex="0">どちらを使うべき？判断基準</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">スプレッドシートのIFNA関数とは？#N/Aエラー専用の処理関数</span></h2>



<p class="wp-block-paragraph">IFNA関数（読み方: イフエヌエー関数）は、<strong>数式の結果が#N/Aエラーのときだけ代わりの値を返す関数</strong>です。</p>



<p class="wp-block-paragraph">「IF」は「もし」、「N/A」は「Not Available（該当なし）」の略です。</p>



<p class="wp-block-paragraph">たとえば「VLOOKUPで該当なしのときだけ代替値を表示したい」場面です。IFNA関数なら#N/Aだけを処理できます。</p>



<p class="wp-block-paragraph">それ以外のエラーはそのまま残せますよ。</p>



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/spreadsheet-vlookup-function/">VLOOKUP関数</a>や<a href="https://mashukabu.com/spreadsheet-match-function/">MATCH関数</a>の#N/Aを空白やメッセージに置き換える</li><li>#N/A以外のエラー（#REF!や#VALUE!など）はそのまま残す</li><li>数式ミスによるエラーを見逃さずに済む</li><li>「検索値が見つからない」ことだけを想定内として処理できる</li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>IFERRORとの最大の違い</strong></p><p><a href="https://mashukabu.com/spreadsheet-iferror-function/">IFERROR関数</a>はすべてのエラーをまとめて処理します。一方、IFNA関数は#N/Aだけが対象です。「検索で見つからない」は想定内だけど、「参照先が消えた」「数式が壊れた」は検知したい。そんなときはIFNA関数のほうが安全ですよ。</p></blockquote>



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



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



<p class="wp-block-paragraph">IFNA関数の構文はとてもシンプルです。</p>



<pre class="wp-block-code"><code>=IFNA(値, NA時の値)</code></pre>



<p class="wp-block-paragraph">引数は2つだけ。<a href="https://mashukabu.com/spreadsheet-iferror-function/">IFERROR関数</a>とまったく同じ形なので覚えやすいですよね。</p>



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



<p class="wp-block-paragraph">それぞれの引数の意味を表で整理しておきましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>説明</th></tr></thead><tbody><tr><td>値</td><td>必須</td><td>#N/Aかどうかをチェックしたい数式やセル参照</td></tr><tr><td>NA時の値</td><td>任意</td><td>#N/Aだったときに返す値。文字列・数値・数式のいずれもOK</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">第2引数を省略するとどうなるでしょうか。Googleスプレッドシートでは空文字列（&#8221;&#8221;）が返ります。</p>



<p class="wp-block-paragraph">実務では表示したい値を明示するのがおすすめですよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>文字列を返す場合はダブルクォーテーションで囲みます。数値を返す場合は囲みません。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc5">最もシンプルな使用例</span></h3>



<p class="wp-block-paragraph">A2にVLOOKUPの結果が入っているとします。#N/Aのときに「該当なし」と表示してみましょう。</p>



<pre class="wp-block-code"><code>=IFNA(VLOOKUP(A2, D:E, 2, FALSE), &quot;該当なし&quot;)</code></pre>



<ul class="wp-block-list"><li><strong>VLOOKUP(A2, D:E, 2, FALSE)</strong>: A2の値をD列から検索</li><li><strong>&#8220;該当なし&#8221;</strong>: #N/Aエラー時に表示するテキスト</li></ul>



<p class="wp-block-paragraph">検索値が見つかれば結果がそのまま返ります。見つからなければ「該当なし」と表示されます。</p>



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



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



<h3 class="wp-block-heading"><span id="toc7">#N/Aを空白にする</span></h3>



<p class="wp-block-paragraph">一番よく使うパターンが、#N/Aを空白に置き換えるケースです。</p>



<pre class="wp-block-code"><code>=IFNA(VLOOKUP(A2, D:E, 2, FALSE), &quot;&quot;)</code></pre>



<p class="wp-block-paragraph">検索値が見つからなかったセルが空白になります。印刷する資料や共有用のシートで重宝しますよ。</p>



<h3 class="wp-block-heading"><span id="toc8">#N/Aのときにメッセージを表示する</span></h3>



<p class="wp-block-paragraph">空白ではなく、わかりやすいメッセージを表示することもできます。</p>



<pre class="wp-block-code"><code>=IFNA(VLOOKUP(A2, D:E, 2, FALSE), &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">#N/Aの代わりに「該当なし」と表示されます。データが見つからなかったことをひと目で伝えたいときに便利です。</p>



<h3 class="wp-block-heading"><span id="toc9">#N/Aのときに数値を返す</span></h3>



<p class="wp-block-paragraph">数値を返すパターンも実務でよく使います。</p>



<pre class="wp-block-code"><code>=IFNA(VLOOKUP(A2, 単価表!A:B, 2, FALSE), 0)</code></pre>



<p class="wp-block-paragraph">#N/Aの代わりに0を返します。SUM関数やAVERAGE関数の集計でエラーが止まるのを防げますよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>#VALUE!や#REF!はどうなる？</strong></p><p>IFNA関数は#N/A以外のエラーには反応しません。たとえば参照先を削除して#REF!が発生した場合、そのまま#REF!が表示されます。数式ミスが隠れないので安心ですね。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc10">実務で使える応用パターン</span></h2>



<h3 class="wp-block-heading"><span id="toc11">VLOOKUP+IFNAで未登録データを処理する</span></h3>



<p class="wp-block-paragraph">IFNA関数の最も定番の使い方が、<a href="https://mashukabu.com/spreadsheet-vlookup-function/">VLOOKUP関数</a>との組み合わせです。</p>



<p class="wp-block-paragraph">商品コードで商品マスタを検索するケースを考えてみましょう。</p>



<pre class="wp-block-code"><code>=IFNA(VLOOKUP(A2, 商品マスタ!A:C, 3, FALSE), &quot;未登録&quot;)</code></pre>



<p class="wp-block-paragraph">商品コードが見つからなければ「未登録」と表示します。大量データの突合で必須のテクニックですよ。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-iferror-function/">IFERROR関数</a>でも同じことはできます。ただしIFERRORだと列番号ミスの#REF!も隠れてしまいます。</p>



<p class="wp-block-paragraph">IFNA関数なら#REF!はそのまま表示されます。不具合に気づけるのがメリットですよ。</p>



<h3 class="wp-block-heading"><span id="toc12">INDEX/MATCH+IFNAで柔軟な検索をする</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-index-function/">INDEX関数</a>と<a href="https://mashukabu.com/spreadsheet-match-function/">MATCH関数</a>を組み合わせた検索でも活躍します。</p>



<pre class="wp-block-code"><code>=IFNA(INDEX(C:C, MATCH(E2, A:A, 0)), &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">「検索列より左側の値を取得する」パターンです。見つからないときだけ「該当なし」を返します。</p>



<p class="wp-block-paragraph">VLOOKUPでは対応できない検索が必要な場面で使ってみてください。</p>



<h3 class="wp-block-heading"><span id="toc13">IFNAのネストで複数テーブルを順番に検索する</span></h3>



<p class="wp-block-paragraph">第2引数に別のIFNA関数を入れると、複数テーブルを順番に検索できます。</p>



<pre class="wp-block-code"><code>=IFNA(VLOOKUP(A2, シート1!A:B, 2, FALSE), IFNA(VLOOKUP(A2, シート2!A:B, 2, FALSE), &quot;どちらにもなし&quot;))</code></pre>



<p class="wp-block-paragraph">まずシート1で検索します。#N/Aならシート2を検索します。どちらにもなければ「どちらにもなし」を表示する仕組みです。</p>



<p class="wp-block-paragraph">ちょっと複雑に見えますが、やっていることはシンプルです。「最初のIFNAが失敗したら次のIFNAを試す」という流れですよ。</p>



<h3 class="wp-block-heading"><span id="toc14">IF関数と組み合わせて空白セルを除外する</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-if-function/">IF関数</a>とIFNA関数を組み合わせると、入力前のセルを除外できます。</p>



<pre class="wp-block-code"><code>=IF(A2=&quot;&quot;, &quot;&quot;, IFNA(VLOOKUP(A2, D:E, 2, FALSE), &quot;該当なし&quot;))</code></pre>



<p class="wp-block-paragraph">A2が空白ならそもそも検索しません。値が入っているときだけVLOOKUPを実行します。</p>



<p class="wp-block-paragraph">入力途中のデータを扱うときに便利なパターンですよ。</p>



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



<p class="wp-block-paragraph">IFNA関数と<a href="https://mashukabu.com/spreadsheet-iferror-function/">IFERROR関数</a>は構文が同じですが、動作が異なります。大きな違いは「処理するエラーの範囲」です。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>IFNA</th><th>IFERROR</th></tr></thead><tbody><tr><td>対象エラー</td><td>#N/Aのみ</td><td>全7種のエラー</td></tr><tr><td>主な用途</td><td>VLOOKUP等の「該当なし」だけ処理</td><td>汎用的なエラー処理</td></tr><tr><td>バグ発見</td><td>#N/A以外はそのまま表示される</td><td>エラーを隠す可能性あり</td></tr><tr><td>構文</td><td>=IFNA(値, NA時の値)</td><td>=IFERROR(値, エラー時の値)</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">具体的に、同じ数式にミスがあった場合の動作を比較してみましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>発生したエラー</th><th>IFNA関数</th><th>IFERROR関数</th></tr></thead><tbody><tr><td>#N/A（検索値なし）</td><td>代替値を表示</td><td>代替値を表示</td></tr><tr><td>#REF!（参照先削除）</td><td>#REF!をそのまま表示</td><td>代替値を表示</td></tr><tr><td>#VALUE!（データ型不正）</td><td>#VALUE!をそのまま表示</td><td>代替値を表示</td></tr><tr><td>#NAME?（関数名ミス）</td><td>#NAME?をそのまま表示</td><td>代替値を表示</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">IFERRORだと#REF!や#NAME?も代替値に置き換わります。数式のスペルミスに気づけないリスクがありますよね。</p>



<h3 class="wp-block-heading"><span id="toc16">どちらを使うべき？判断基準</span></h3>



<p class="wp-block-paragraph">使い分けの基準はシンプルです。</p>



<ul class="wp-block-list"><li><strong>VLOOKUPやMATCHの「該当なし」だけ処理したい</strong> → IFNA関数がおすすめ</li><li><strong>割り算のゼロ除算など複数種のエラーをまとめて処理したい</strong> → <a href="https://mashukabu.com/spreadsheet-iferror-function/">IFERROR関数</a>が便利</li><li><strong>数式のバグを見逃したくない</strong> → IFNA関数が安全</li></ul>



<p class="wp-block-paragraph">迷ったらIFNA関数を選んでおくのが安全です。想定外のエラーはそのまま残せるので、デバッグしやすくなりますよ。</p>



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



<p class="wp-block-paragraph">IFNA関数自体はシンプルですが、ハマるポイントがあります。</p>



<figure class="wp-block-table"><table><thead><tr><th>症状</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>#N/A以外のエラーも処理したい</td><td>IFNA関数は#N/Aのみ対象</td><td><a href="https://mashukabu.com/spreadsheet-iferror-function/">IFERROR関数</a>に切り替える</td></tr><tr><td>#N/Aなのに代替値が表示されない</td><td>IFNA関数の外で#N/Aが発生している</td><td>#N/Aを返す数式をIFNAの第1引数に直接入れる</td></tr><tr><td>#NAME?エラーが出る</td><td>関数名のスペルミス</td><td>関数名は <code>IFNA</code> と正確に入力する</td></tr><tr><td>意図しない空白が表示される</td><td>第2引数を省略している</td><td>表示したい値（0や&#8221;該当なし&#8221;など）を明示する</td></tr><tr><td>#VALUE!がそのまま表示される</td><td>IFNA関数は#VALUE!に反応しない（正常動作）</td><td>#VALUE!も処理したいならIFERROR関数を使う</td></tr><tr><td>#REF!がそのまま表示される</td><td>IFNA関数は#REF!に反応しない（正常動作）</td><td>参照先のセルやシートが正しいか確認する</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>デバッグのコツ</strong></p><p>トラブル発生時は、まずIFNA関数を外して中の数式だけをテストしましょう。#N/A以外のエラーが出ていないか確認できます。「エラーが消えない」と思ったら、実は#N/A以外のエラーだったというケースが多いですよ。</p></blockquote>



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



<p class="wp-block-paragraph">スプレッドシートのIFNA関数について解説しました。ポイントを振り返りましょう。</p>



<ul class="wp-block-list"><li>IFNA関数の構文は <code>=IFNA(値, NA時の値)</code> の2つの引数</li><li>#N/Aエラーだけを処理し、他のエラーはそのまま表示する</li><li>VLOOKUP+IFNAの組み合わせが実務で最も頻出</li><li>INDEX/MATCH+IFNAで柔軟な検索にも対応</li><li>IFERRORとの違いは「対象エラーの範囲」</li><li>数式のバグを見逃したくないならIFNA関数が安全</li></ul>



<p class="wp-block-paragraph">まずはVLOOKUP+IFNAから試してみてください。#N/Aだけをきれいに処理しつつ、数式の不具合も見逃しません。</p>



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/spreadsheet-iferror-function/">スプレッドシートのIFERROR関数の使い方</a> &#8212; 全エラーをまとめて処理</li><li><a href="https://mashukabu.com/spreadsheet-vlookup-function/">スプレッドシートのVLOOKUP関数の使い方</a> &#8212; 検索の基本</li><li><a href="https://mashukabu.com/spreadsheet-index-function/">スプレッドシートのINDEX関数の使い方</a> &#8212; 柔軟なセル参照</li><li><a href="https://mashukabu.com/spreadsheet-match-function/">スプレッドシートのMATCH関数の使い方</a> &#8212; 位置を検索する</li><li><a href="https://mashukabu.com/spreadsheet-if-function/">スプレッドシートのIF関数の使い方</a> &#8212; 条件分岐の基本</li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-ifna-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 class="wp-block-paragraph">スプレッドシートの大きな表から、必要な列だけを別の場所に取り出したいことってありますよね。列を手動でコピーすると、元データが更新されるたびに貼り直しが必要になって面倒です。</p>



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



<p class="wp-block-paragraph">この記事では、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-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">スプレッドシートの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 class="wp-block-paragraph">CHOOSECOLS関数（読み方: チューズコラムズ関数）は、指定した列だけを元の範囲から<strong>自由に取り出す</strong>関数です。「choose columns（列を選ぶ）」が名前の由来です。</p>



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



<p class="wp-block-paragraph">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 class="wp-block-paragraph">カッコの中に、元データの範囲と、取り出したい列の番号を指定します。</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 class="wp-block-paragraph">列番号は、指定した範囲の中での相対的な番号です。範囲がB列から始まっていても、B列が「1」になります。シート全体の列番号ではない点に注意してくださいね。</p>



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



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



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



<p class="wp-block-paragraph">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 class="wp-block-paragraph">「氏名」の列だけを取り出します。出力先のセル（たとえば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 class="wp-block-paragraph">第2引数に「2」を指定したので、範囲内の2列目（B列）の氏名データだけが縦に出力されました。</p>



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



<p class="wp-block-paragraph">「氏名」「部署」「メール」の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 class="wp-block-paragraph">列番号をカンマで区切って並べるだけで、必要な列だけを抜き出せます。元データの「社員番号」や「役職」は含まれていませんね。</p>



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



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



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



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



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



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



<p class="wp-block-paragraph">列番号の指定順を変えるだけで、出力順を自由に変えられます。</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 class="wp-block-paragraph">元データでは「社員番号→氏名→部署」の順番ですが、「部署→氏名→社員番号」に入れ替えて出力されました。部署別にデータを確認したいときに便利ですよ。</p>



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



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



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



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



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



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



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



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



<p class="wp-block-paragraph">スプレッドシートで特定の列を取り出す方法として、<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 class="wp-block-paragraph">使い分けの目安は次のとおりです。</p>



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



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



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



<p class="wp-block-paragraph">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 class="wp-block-paragraph">使い分けの目安は次のとおりです。</p>



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



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



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



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



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



<p class="wp-block-paragraph">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 class="wp-block-paragraph">特に注意したいのが「列番号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 class="wp-block-paragraph">CHOOSECOLS関数は、指定した列だけを元の範囲から自由に取り出すための関数です。複数列の一括抽出、列順の入れ替え、末尾からの指定まで、柔軟な列操作が1つの数式で完結します。</p>



<p class="wp-block-paragraph">この記事のポイントをおさらいしておきましょう。</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 class="wp-block-paragraph">まずは <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 class="wp-block-paragraph">スプレッドシートの大きな表から、必要な行だけを別の場所に取り出したいことってありますよね。行を手動でコピーすると、元データが更新されるたびに貼り直しが必要になって面倒です。</p>



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



<p class="wp-block-paragraph">この記事では、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-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">スプレッドシートの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 class="wp-block-paragraph">CHOOSEROWS関数（読み方: チューズロウズ関数）は、指定した行だけを元の範囲から<strong>自由に取り出す</strong>関数です。「choose rows（行を選ぶ）」が名前の由来です。</p>



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



<p class="wp-block-paragraph">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 class="wp-block-paragraph">カッコの中に、元データの範囲と、取り出したい行の番号を指定します。</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 class="wp-block-paragraph">行番号は、指定した範囲の中での相対的な番号です。範囲が3行目から始まっていても、先頭行が「1」になります。シート全体の行番号ではない点に注意してくださいね。</p>



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



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



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



<p class="wp-block-paragraph">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 class="wp-block-paragraph">「田中太郎」の行だけを取り出します。出力先のセル（たとえば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 class="wp-block-paragraph">第2引数に「2」を指定したので、範囲内の2行目（見出しを1行目とすると田中さんのデータ行）が横方向にすべて出力されました。</p>



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



<p class="wp-block-paragraph">「田中太郎」「佐藤一郎」「伊藤健太」の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 class="wp-block-paragraph">行番号をカンマで区切って並べるだけで、必要な行だけを抜き出せます。「鈴木花子」「高橋美咲」の行は含まれていませんね。</p>



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



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



<p class="wp-block-paragraph">元の管理表から特定のレコードだけを取り出すことができます。ヘッダー行も一緒に抽出すると見やすくなりますよ。</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 class="wp-block-paragraph">行番号「1」でヘッダー行も含めて抽出しています。報告書や共有資料を作るとき、元データを壊さずに必要な情報だけを別の場所に表示できますよ。</p>



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



<p class="wp-block-paragraph">行番号の指定順を変えるだけで、出力順を自由に変えられます。</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 class="wp-block-paragraph">元データでは「田中→佐藤→伊藤」の順番ですが、「佐藤→田中→伊藤」に入れ替えて出力されました。特定のメンバーを先頭に配置したいときに便利ですよ。</p>



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



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



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



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



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



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



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



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



<p class="wp-block-paragraph">スプレッドシートで特定の行を取り出す方法として、<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 class="wp-block-paragraph">使い分けの目安は次のとおりです。</p>



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



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



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



<p class="wp-block-paragraph">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 class="wp-block-paragraph">使い分けはシンプルです。</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 class="wp-block-paragraph">両方を組み合わせれば、行と列を同時に絞り込むこともできます。</p>



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



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



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



<p class="wp-block-paragraph">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 class="wp-block-paragraph">特に注意したいのが「行番号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 class="wp-block-paragraph">CHOOSEROWS関数は、指定した行だけを元の範囲から自由に取り出すための関数です。複数行の一括抽出、行順の入れ替え、末尾からの指定まで、柔軟な行操作が1つの数式で完結します。</p>



<p class="wp-block-paragraph">この記事のポイントをおさらいしておきましょう。</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 class="wp-block-paragraph">まずは <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>スプレッドシートのCOLUMNS関数の使い方｜列数を調べる方法</title>
		<link>https://mashukabu.com/spreadsheet-columns-function/</link>
					<comments>https://mashukabu.com/spreadsheet-columns-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 21 Mar 2026 11:37:04 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[COLUMNS関数]]></category>
		<category><![CDATA[COLUMN関数]]></category>
		<category><![CDATA[INDEX関数]]></category>
		<category><![CDATA[OFFSET関数]]></category>
		<category><![CDATA[ROWS関数]]></category>
		<category><![CDATA[列数]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4891</guid>

					<description><![CDATA[スプレッドシートのCOLUMNS関数でセル範囲の列数を調べる方法を解説。COLUMN関数との違い、INDEX・OFFSET・ROWS関数との組み合わせ技、エラー対処法まで、実務で使えるテクニックを紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「この表って何列あるんだろう？」と数えたくなること、ありますよね。</p>



<p class="wp-block-paragraph">列数が多い表だと、目的の範囲が何列分あるか数え間違えることもあります。データの列が増減するたびに数え直すのも面倒です。</p>



<p class="wp-block-paragraph">スプレッドシートのCOLUMNS関数を使えば、セル範囲の列数を一発で自動カウントできます。他の関数と組み合わせれば、動的な範囲制御やデータサイズの検証にも活用できますよ。</p>



<p class="wp-block-paragraph">この記事では、COLUMNS関数の基本的な書き方から、実務で使える組み合わせパターンまで紹介します。</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">スプレッドシートのCOLUMNS関数とは？基本の仕組みを理解しよう</a><ol><li><a href="#toc2" tabindex="0">COLUMNS関数の基本構文</a></li><li><a href="#toc3" tabindex="0">COLUMN関数との違いを押さえよう</a></li></ol></li><li><a href="#toc4" tabindex="0">COLUMNS関数の基本的な使い方</a><ol><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">COLUMNS関数の実務活用パターン</a><ol><li><a href="#toc10" tabindex="0">パターン1: INDEX関数と組み合わせて最終列のデータを取得</a></li><li><a href="#toc11" tabindex="0">パターン2: OFFSET関数と組み合わせて可変範囲を作る</a></li><li><a href="#toc12" tabindex="0">パターン3: INDIRECT関数と組み合わせて動的な範囲サイズを取得</a></li><li><a href="#toc13" tabindex="0">パターン4: データ項目数の検証に使う</a></li><li><a href="#toc14" tabindex="0">パターン5: ROWS関数と組み合わせて総セル数を計算</a></li></ol></li><li><a href="#toc15" tabindex="0">COLUMN関数との違い・使い分け</a><ol><li><a href="#toc16" tabindex="0">比較表</a></li></ol></li><li><a href="#toc17" tabindex="0">ROWS関数との比較</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">スプレッドシートのCOLUMNS関数とは？基本の仕組みを理解しよう</span></h2>



<p class="wp-block-paragraph">COLUMNS関数（読み方: カラムズ関数）は、指定したセル範囲の<strong>列数</strong>を数値で返す関数です。「COLUMNS」は英語の「COLUMN（列）」の複数形で、列がいくつあるかを意味します。</p>



<p class="wp-block-paragraph">たとえば <code>=COLUMNS(A1:C1)</code> と入力すると、結果は「3」です。A列からC列まで3列分あるからですね。</p>



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



<ul class="wp-block-list"><li>セル範囲の列数を数値で返す</li><li>行方向にどれだけ広がっていても、列数だけをカウントする</li><li>名前付き範囲や配列定数にも使える</li><li>他の関数と組み合わせて動的な範囲制御に使える</li></ul>



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



<pre class="wp-block-code"><code>=COLUMNS(範囲)</code></pre>



<p class="wp-block-paragraph">カッコの中に、列数を調べたい範囲を指定します。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>説明</th></tr></thead><tbody><tr><td>範囲</td><td>必須</td><td>列数を調べたいセル範囲。セル参照、名前付き範囲、配列定数のいずれも指定できる</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">引数は1つだけなので覚えやすい関数です。ただし、COLUMN関数と違って<strong>引数の省略はできません</strong>。<code>=COLUMNS()</code> と書くとエラーになるので注意してください。</p>



<h3 class="wp-block-heading"><span id="toc3">COLUMN関数との違いを押さえよう</span></h3>



<p class="wp-block-paragraph">COLUMNS関数とCOLUMN関数は名前がよく似ていますが、返す情報がまったく異なります。</p>



<pre class="wp-block-code"><code>=COLUMN(C1)      → 3（C1セルの列番号）
=COLUMNS(A1:C10) → 3（A1からC10の列数）</code></pre>



<ul class="wp-block-list"><li><strong>COLUMN関数</strong>: セルが「何列目にあるか」を返す（位置の情報）</li><li><strong>COLUMNS関数</strong>: 範囲に「何列あるか」を返す（サイズの情報）</li></ul>



<p class="wp-block-paragraph">覚え方は「複数形のCOLUMNSは範囲全体の列数を数える」と考えるとわかりやすいですよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>COLUMNS関数はGoogleスプレッドシートの全バージョンで使えます。Excelでもまったく同じ構文で動作します。</p></blockquote>



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



<h3 class="wp-block-heading"><span id="toc5">セル範囲の列数を調べる</span></h3>



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



<p class="wp-block-paragraph">A1からE1までの列数「5」を返します。行方向にどれだけ広がっていても結果は同じです。<code>=COLUMNS(A1:E10)</code> でも「5」になります。</p>



<h3 class="wp-block-heading"><span id="toc6">単一セルの列数を調べる</span></h3>



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



<p class="wp-block-paragraph">単一セルは1列分なので、結果は「1」です。実務で単体で使う場面は少ないですが、数式の仕組みを理解するための基本として押さえておきましょう。</p>



<h3 class="wp-block-heading"><span id="toc7">名前付き範囲の列数を調べる</span></h3>



<pre class="wp-block-code"><code>=COLUMNS(売上データ)</code></pre>



<p class="wp-block-paragraph">名前付き範囲「売上データ」の列数を返します。メニューの「データ」>「名前付き範囲」で設定した範囲が対象です。セル参照を直接書くよりわかりやすくなりますよ。</p>



<h3 class="wp-block-heading"><span id="toc8">配列定数の列数を調べる</span></h3>



<pre class="wp-block-code"><code>=COLUMNS({1,2,3;4,5,6;7,8,9})</code></pre>



<p class="wp-block-paragraph">配列定数の列数「3」を返します。カンマ（<code>,</code>）で区切られた要素が列に対応します。セミコロン（<code>;</code>）は行の区切りなので、列数には影響しません。</p>



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



<h3 class="wp-block-heading"><span id="toc10">パターン1: INDEX関数と組み合わせて最終列のデータを取得</span></h3>



<p class="wp-block-paragraph">データ範囲の最後の列の値を取り出したいときに便利なパターンです。</p>



<pre class="wp-block-code"><code>=INDEX(A1:G1, COLUMNS(A1:G1))</code></pre>



<p class="wp-block-paragraph">COLUMNS関数で範囲の列数（7）を取得し、<a href="https://mashukabu.com/spreadsheet-index-function/">INDEX関数</a>の列番号に渡しています。範囲の最後の列、つまりG1の値を返します。</p>



<p class="wp-block-paragraph">2次元範囲で最終列・最終行のデータを取り出す場合は、ROWS関数と組み合わせます。</p>



<pre class="wp-block-code"><code>=INDEX(A1:G10, ROWS(A1:G10), COLUMNS(A1:G10))</code></pre>



<p class="wp-block-paragraph">ROWS関数で行数（10）、COLUMNS関数で列数（7）を取得して、範囲の右下隅のデータを返す仕組みです。</p>



<h3 class="wp-block-heading"><span id="toc11">パターン2: OFFSET関数と組み合わせて可変範囲を作る</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-offset-function/">OFFSET関数</a>の「幅」引数にCOLUMNS関数を使うと、範囲のサイズを動的に制御できます。</p>



<pre class="wp-block-code"><code>=OFFSET(A1, 0, 0, 1, COLUMNS(A1:E1))</code></pre>



<p class="wp-block-paragraph">COLUMNS関数が返す列数に応じて、OFFSET関数が返す範囲の幅が変わります。グラフの参照範囲やデータ入力規則の元データを可変にしたいときに活躍するパターンです。</p>



<h3 class="wp-block-heading"><span id="toc12">パターン3: INDIRECT関数と組み合わせて動的な範囲サイズを取得</span></h3>



<p class="wp-block-paragraph">文字列で組み立てた範囲の列数を調べたいときに使えます。</p>



<pre class="wp-block-code"><code>=COLUMNS(INDIRECT(&quot;A1:&quot; &amp; B1 &amp; &quot;1&quot;))</code></pre>



<p class="wp-block-paragraph">セルB1に入力された列文字に応じて範囲のサイズが変わります。B1が「F」なら <code>=COLUMNS(A1:F1)</code> と同じ結果（6）です。ユーザーが列数を指定して範囲を制御する仕組みを作りたいときに便利ですよ。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-indirect-function/">INDIRECT関数</a>の詳しい使い方は関連記事を参考にしてみてください。</p>



<h3 class="wp-block-heading"><span id="toc13">パターン4: データ項目数の検証に使う</span></h3>



<p class="wp-block-paragraph">想定どおりの列数があるかチェックする数式です。</p>



<pre class="wp-block-code"><code>=IF(COLUMNS(A1:G1) = 7, &quot;OK&quot;, &quot;列数が違います&quot;)</code></pre>



<p class="wp-block-paragraph">COLUMNS関数で範囲の列数を調べ、期待値（7列）と比較しています。他のシートからデータを取り込んだときに、列構造が変わっていないか検証するのに使えます。</p>



<h3 class="wp-block-heading"><span id="toc14">パターン5: ROWS関数と組み合わせて総セル数を計算</span></h3>



<p class="wp-block-paragraph">COLUMNS関数とROWS関数を掛け合わせると、データ範囲の総セル数がわかります。</p>



<pre class="wp-block-code"><code>=ROWS(A1:G10) * COLUMNS(A1:G10)</code></pre>



<p class="wp-block-paragraph">この数式は <code>10 * 7 = 70</code> を返します。想定どおりのデータサイズか確認したいときに使えるパターンです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>COLUMNS関数は「範囲の列数」を返すだけのシンプルな関数です。単体よりも、INDEX・OFFSET・INDIRECTなど他の関数と組み合わせてこそ真価を発揮します。</p></blockquote>



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



<p class="wp-block-paragraph">COLUMNS関数とCOLUMN関数は名前が似ていますが、役割がまったく異なります。混同しやすいポイントを整理しておきましょう。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>COLUMNS関数</th><th>COLUMN関数</th></tr></thead><tbody><tr><td>返す値</td><td>範囲の列数（サイズ）</td><td>セルの列番号（位置）</td></tr><tr><td>引数</td><td>セル範囲（必須）</td><td>セル参照（省略可）</td></tr><tr><td>構文</td><td><code>=COLUMNS(A1:E1)</code></td><td><code>=COLUMN(A1)</code></td></tr><tr><td>結果の例</td><td><code>=COLUMNS(C1:F1)</code> → 4</td><td><code>=COLUMN(C1)</code> → 3</td></tr><tr><td>主な用途</td><td>範囲サイズの取得、動的範囲の制御</td><td>連番作成、動的な列参照</td></tr><tr><td>引数省略</td><td>不可（エラーになる）</td><td>可（自分のセルの列番号を返す）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">使い分けのポイントはシンプルです。</p>



<ul class="wp-block-list"><li>「この範囲は<strong>何列あるか</strong>」を知りたい → <strong>COLUMNS関数</strong></li><li>「このセルは<strong>何列目か</strong>」を知りたい → <strong>COLUMN関数</strong></li></ul>



<p class="wp-block-paragraph">COLUMN関数の詳しい使い方は「<a href="https://mashukabu.com/spreadsheet-column-function/">スプレッドシートのCOLUMN関数の使い方</a>」で解説しています。</p>



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



<p class="wp-block-paragraph">COLUMNS関数とROWS関数は、列と行の方向が違うだけの<strong>対称ペア</strong>です。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>COLUMNS関数</th><th>ROWS関数</th></tr></thead><tbody><tr><td>返す値</td><td>範囲の列数</td><td>範囲の行数</td></tr><tr><td>構文</td><td><code>=COLUMNS(範囲)</code></td><td><code>=ROWS(範囲)</code></td></tr><tr><td>結果の例</td><td><code>=COLUMNS(A1:C10)</code> → 3</td><td><code>=ROWS(A1:C10)</code> → 10</td></tr><tr><td>方向</td><td>横方向のサイズ</td><td>縦方向のサイズ</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">構文も <code>=COLUMNS(範囲)</code> と <code>=ROWS(範囲)</code> でまったく同じ形です。セットで覚えてしまいましょう。</p>



<p class="wp-block-paragraph">また、ROW関数は「何行目か」を返す関数です。4つの関数の関係を整理すると次のようになります。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>位置（1つのセル）</th><th>サイズ（範囲）</th></tr></thead><tbody><tr><td>行（縦）</td><td>ROW関数</td><td>ROWS関数</td></tr><tr><td>列（横）</td><td>COLUMN関数</td><td>COLUMNS関数</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">この4つの関係を押さえておけば、「行番号？ 行数？ 列番号？ 列数？」で迷うことがなくなりますよ。</p>



<p class="wp-block-paragraph">ROWS関数の詳しい使い方は「<a href="https://mashukabu.com/spreadsheet-rows-function/">スプレッドシートのROWS関数の使い方</a>」で解説しています。</p>



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



<p class="wp-block-paragraph">COLUMNS関数自体は非常にシンプルなので、単独でエラーになることはほとんどありません。ただし、いくつか注意点があります。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>引数なしでエラー</td><td><code>=COLUMNS()</code> と引数を省略した</td><td>COLUMNS関数は引数が必須です。列数を調べたい範囲を指定してください</td></tr><tr><td><code>#REF!</code></td><td>参照先の行や列が削除された</td><td>参照先セルが存在するか確認してください</td></tr><tr><td><code>#NAME?</code></td><td>名前付き範囲のスペルミス</td><td>「データ」>「名前付き範囲」から名前を確認してください</td></tr><tr><td>期待と違う数値が返る</td><td>列数ではなく列番号を求めていた</td><td>列番号がほしい場合はCOLUMN関数を使ってください</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">特に注意したいのが「引数省略」のケースです。COLUMN関数は <code>=COLUMN()</code> と引数なしで使えますが、COLUMNS関数は必ず範囲を指定する必要があります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>「期待と違う数値が返る」場合は、COLUMNS関数とCOLUMN関数を混同していることがほとんどです。COLUMNS関数は範囲の「サイズ」、COLUMN関数はセルの「位置」を返します。<code>=COLUMNS(C1:F1)</code> は「4」、<code>=COLUMN(C1)</code> は「3」です。</p></blockquote>



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



<p class="wp-block-paragraph">COLUMNS関数は、セル範囲の列数を取得するシンプルな関数です。他の関数と組み合わせることで、最終列データの取得や動的な範囲制御に活用できます。</p>



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



<ul class="wp-block-list"><li>COLUMNS関数は <code>=COLUMNS(範囲)</code> で、範囲の列数を数値で返す（引数の省略は不可）</li><li>COLUMN関数は「何列目か（位置）」、COLUMNS関数は「何列あるか（サイズ）」を返す</li><li>INDEX関数と組み合わせれば、最終列のデータを簡単に取得できる</li><li>OFFSET関数と組み合わせれば、動的に伸縮する範囲を作れる</li><li>ROWS関数とは行・列の方向が違うだけの対称ペア</li></ul>



<p class="wp-block-paragraph">まずは <code>=COLUMNS(A1:E1)</code> のシンプルな使い方から試してみてください。INDEX関数やOFFSET関数との組み合わせを覚えれば、データ管理がグッとラクになりますよ。</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-column-function/">スプレッドシートのCOLUMN関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-rows-function/">スプレッドシートのROWS関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-row-function/">スプレッドシートのROW関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-index-function/">スプレッドシートのINDEX関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-offset-function/">スプレッドシートのOFFSET関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-indirect-function/">スプレッドシートのINDIRECT関数の使い方</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-columns-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのROWS関数の使い方｜行数を調べる方法</title>
		<link>https://mashukabu.com/spreadsheet-rows-function/</link>
					<comments>https://mashukabu.com/spreadsheet-rows-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 21 Mar 2026 11:30:51 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[COLUMNS関数]]></category>
		<category><![CDATA[COUNTA関数]]></category>
		<category><![CDATA[INDEX関数]]></category>
		<category><![CDATA[ROWS関数]]></category>
		<category><![CDATA[ROW関数]]></category>
		<category><![CDATA[行数]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4771</guid>

					<description><![CDATA[スプレッドシートのROWS関数でセル範囲の行数を調べる方法を解説。ROW関数との違い、INDEX・INDIRECT・OFFSETとの組み合わせ技、COLUMNS関数との比較まで、実務で使えるテクニックを紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「この表って何行あるんだろう？」と数えたくなること、ありますよね。</p>



<p class="wp-block-paragraph">手動で数えると行数が多いときにミスしがちです。データが増減するたびに数え直すのも面倒ですよね。</p>



<p class="wp-block-paragraph">スプレッドシートのROWS関数を使えば、セル範囲の行数を一発で自動カウントできます。他の関数と組み合わせれば、最終行のデータ取得や可変範囲の作成にも活用できますよ。</p>



<p class="wp-block-paragraph">この記事では、ROWS関数の基本的な書き方から、実務で使える組み合わせパターンまで紹介します。</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">スプレッドシートのROWS関数とは？基本の仕組みを理解しよう</a><ol><li><a href="#toc2" tabindex="0">ROWS関数の基本構文</a></li><li><a href="#toc3" tabindex="0">ROW関数との違いを押さえよう</a></li></ol></li><li><a href="#toc4" tabindex="0">ROWS関数の基本的な使い方</a><ol><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">ROWS関数の実務活用パターン</a><ol><li><a href="#toc10" tabindex="0">パターン1: INDEX関数と組み合わせて最終行のデータを取得</a></li><li><a href="#toc11" tabindex="0">パターン2: OFFSET関数と組み合わせて可変範囲を作る</a></li><li><a href="#toc12" tabindex="0">パターン3: INDIRECT関数と組み合わせて動的な範囲サイズを取得</a></li><li><a href="#toc13" tabindex="0">パターン4: データ件数の検証に使う</a></li><li><a href="#toc14" tabindex="0">パターン5: COLUMNS関数と組み合わせて総セル数を計算</a></li></ol></li><li><a href="#toc15" tabindex="0">ROW関数との違い・使い分け</a><ol><li><a href="#toc16" tabindex="0">比較表</a></li></ol></li><li><a href="#toc17" tabindex="0">COLUMNS関数との比較</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">スプレッドシートのROWS関数とは？基本の仕組みを理解しよう</span></h2>



<p class="wp-block-paragraph">ROWS関数（読み方: ロウズ関数）は、指定したセル範囲の<strong>行数</strong>を数値で返す関数です。「ROWS」は英語の「ROW（行）」の複数形で、行がいくつあるかを意味します。</p>



<p class="wp-block-paragraph">たとえば <code>=ROWS(A1:A5)</code> と入力すると、結果は「5」です。A1からA5まで5行分あるからですね。</p>



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



<ul class="wp-block-list"><li>セル範囲の行数を数値で返す</li><li>列方向にどれだけ広がっていても、行数だけをカウントする</li><li>名前付き範囲や配列定数にも使える</li><li>他の関数と組み合わせて動的な範囲制御に使える</li></ul>



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



<pre class="wp-block-code"><code>=ROWS(範囲)</code></pre>



<p class="wp-block-paragraph">カッコの中に、行数を調べたい範囲を指定します。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>説明</th></tr></thead><tbody><tr><td>範囲</td><td>必須</td><td>行数を調べたいセル範囲。セル参照、名前付き範囲、配列定数のいずれも指定できる</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">引数は1つだけなので覚えやすい関数です。ただし、ROW関数と違って<strong>引数の省略はできません</strong>。<code>=ROWS()</code> と書くとエラーになるので注意してください。</p>



<h3 class="wp-block-heading"><span id="toc3">ROW関数との違いを押さえよう</span></h3>



<p class="wp-block-paragraph">ROWS関数とROW関数は名前がよく似ていますが、返す情報がまったく異なります。</p>



<pre class="wp-block-code"><code>=ROW(A3)      → 3（A3セルの行番号）
=ROWS(A3:A10) → 8（A3からA10の行数）</code></pre>



<ul class="wp-block-list"><li><strong>ROW関数</strong>: セルが「何行目にあるか」を返す（位置の情報）</li><li><strong>ROWS関数</strong>: 範囲に「何行あるか」を返す（サイズの情報）</li></ul>



<p class="wp-block-paragraph">覚え方は「複数形のROWSは範囲全体の行数を数える」と考えるとわかりやすいですよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>ROWS関数はGoogleスプレッドシートの全バージョンで使えます。Excelでもまったく同じ構文で動作します。</p></blockquote>



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



<h3 class="wp-block-heading"><span id="toc5">セル範囲の行数を調べる</span></h3>



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



<p class="wp-block-paragraph">A1からA10までの行数「10」を返します。列方向にどれだけ広がっていても結果は同じです。<code>=ROWS(A1:G10)</code> でも「10」になります。</p>



<h3 class="wp-block-heading"><span id="toc6">単一セルの行数を調べる</span></h3>



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



<p class="wp-block-paragraph">単一セルは1行分なので、結果は「1」です。実務で単体で使う場面は少ないですが、数式の仕組みを理解するための基本として押さえておきましょう。</p>



<h3 class="wp-block-heading"><span id="toc7">名前付き範囲の行数を調べる</span></h3>



<pre class="wp-block-code"><code>=ROWS(売上データ)</code></pre>



<p class="wp-block-paragraph">名前付き範囲「売上データ」の行数を返します。メニューの「データ」>「名前付き範囲」で設定した範囲が対象です。セル参照を直接書くよりわかりやすくなりますよ。</p>



<h3 class="wp-block-heading"><span id="toc8">配列定数の行数を調べる</span></h3>



<pre class="wp-block-code"><code>=ROWS({1,2,3;4,5,6;7,8,9})</code></pre>



<p class="wp-block-paragraph">配列定数の行数「3」を返します。セミコロン（<code>;</code>）で区切られたブロックが行に対応します。カンマ（<code>,</code>）は列の区切りなので、行数には影響しません。</p>



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



<h3 class="wp-block-heading"><span id="toc10">パターン1: INDEX関数と組み合わせて最終行のデータを取得</span></h3>



<p class="wp-block-paragraph">データ範囲の最後の値を取り出したいときに便利なパターンです。</p>



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



<p class="wp-block-paragraph">ROWS関数で範囲の行数（99）を取得し、<a href="https://mashukabu.com/spreadsheet-index-function/">INDEX関数</a>の行番号に渡しています。範囲の最後の行、つまりA100の値を返します。</p>



<p class="wp-block-paragraph">データが途中までしか入っていない場合は、<a href="https://mashukabu.com/spreadsheet-counta-function/">COUNTA関数</a>と組み合わせるとさらに正確です。</p>



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



<p class="wp-block-paragraph">COUNTA関数でデータが入っているセルの数を数え、その位置のデータを取得する流れです。</p>



<h3 class="wp-block-heading"><span id="toc11">パターン2: OFFSET関数と組み合わせて可変範囲を作る</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-offset-function/">OFFSET関数</a>の「高さ」引数にROWS関数を使うと、範囲のサイズを動的に制御できます。</p>



<pre class="wp-block-code"><code>=OFFSET(A1, 0, 0, ROWS(A1:A10), 1)</code></pre>



<p class="wp-block-paragraph">ROWS関数が返す行数に応じて、OFFSET関数が返す範囲の高さが変わります。グラフの参照範囲やデータ入力規則の元データを可変にしたいときに活躍するパターンです。</p>



<h3 class="wp-block-heading"><span id="toc12">パターン3: INDIRECT関数と組み合わせて動的な範囲サイズを取得</span></h3>



<p class="wp-block-paragraph">文字列で組み立てた範囲の行数を調べたいときに使えます。</p>



<pre class="wp-block-code"><code>=ROWS(INDIRECT(&quot;A1:A&quot; &amp; B1))</code></pre>



<p class="wp-block-paragraph">セルB1に入力された数値に応じて範囲のサイズが変わります。B1が「20」なら <code>=ROWS(A1:A20)</code> と同じ結果です。ユーザーが行数を指定して範囲を制御する仕組みを作りたいときに便利ですよ。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-indirect-function/">INDIRECT関数</a>の詳しい使い方は関連記事を参考にしてみてください。</p>



<h3 class="wp-block-heading"><span id="toc13">パターン4: データ件数の検証に使う</span></h3>



<p class="wp-block-paragraph">想定どおりのデータ件数があるかチェックする数式です。</p>



<pre class="wp-block-code"><code>=IF(ROWS(A2:A100) = COUNTA(A2:A100), &quot;OK&quot;, &quot;空白セルあり&quot;)</code></pre>



<p class="wp-block-paragraph">ROWS関数で範囲の行数を調べ、COUNTA関数でデータが入っているセルの数を比較しています。空白行が混ざっていると数が合わなくなるので、データの欠損チェックに使えます。</p>



<h3 class="wp-block-heading"><span id="toc14">パターン5: COLUMNS関数と組み合わせて総セル数を計算</span></h3>



<p class="wp-block-paragraph">ROWS関数とCOLUMNS関数を掛け合わせると、データ範囲の総セル数がわかります。</p>



<pre class="wp-block-code"><code>=ROWS(A1:G10) * COLUMNS(A1:G10)</code></pre>



<p class="wp-block-paragraph">この数式は <code>10 * 7 = 70</code> を返します。想定どおりのデータサイズか確認したいときに使えるパターンです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>ROWS関数は「範囲の行数」を返すだけのシンプルな関数です。単体よりも、INDEX・OFFSET・INDIRECTなど他の関数と組み合わせてこそ真価を発揮します。</p></blockquote>



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



<p class="wp-block-paragraph">ROWS関数とROW関数は名前が似ていますが、役割がまったく異なります。混同しやすいポイントを整理しておきましょう。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>ROWS関数</th><th>ROW関数</th></tr></thead><tbody><tr><td>返す値</td><td>範囲の行数（サイズ）</td><td>セルの行番号（位置）</td></tr><tr><td>引数</td><td>セル範囲（必須）</td><td>セル参照（省略可）</td></tr><tr><td>構文</td><td><code>=ROWS(A1:A10)</code></td><td><code>=ROW(A1)</code></td></tr><tr><td>結果の例</td><td><code>=ROWS(A3:A10)</code> → 8</td><td><code>=ROW(A3)</code> → 3</td></tr><tr><td>主な用途</td><td>範囲サイズの取得、動的範囲の制御</td><td>連番作成、動的な行参照</td></tr><tr><td>引数省略</td><td>不可（エラーになる）</td><td>可（自分のセルの行番号を返す）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">使い分けのポイントはシンプルです。</p>



<ul class="wp-block-list"><li>「この範囲は<strong>何行あるか</strong>」を知りたい → <strong>ROWS関数</strong></li><li>「このセルは<strong>何行目か</strong>」を知りたい → <strong>ROW関数</strong></li></ul>



<p class="wp-block-paragraph">ROW関数の詳しい使い方は「<a href="https://mashukabu.com/spreadsheet-row-function/">スプレッドシートのROW関数の使い方</a>」で解説しています。</p>



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



<p class="wp-block-paragraph">ROWS関数とCOLUMNS関数は、行と列の方向が違うだけの<strong>対称ペア</strong>です。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>ROWS関数</th><th>COLUMNS関数</th></tr></thead><tbody><tr><td>返す値</td><td>範囲の行数</td><td>範囲の列数</td></tr><tr><td>構文</td><td><code>=ROWS(範囲)</code></td><td><code>=COLUMNS(範囲)</code></td></tr><tr><td>結果の例</td><td><code>=ROWS(A1:C10)</code> → 10</td><td><code>=COLUMNS(A1:C10)</code> → 3</td></tr><tr><td>方向</td><td>縦方向のサイズ</td><td>横方向のサイズ</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">構文も <code>=ROWS(範囲)</code> と <code>=COLUMNS(範囲)</code> でまったく同じ形です。セットで覚えてしまいましょう。</p>



<p class="wp-block-paragraph">また、COLUMN関数は「何列目か」を返す関数です。4つの関数の関係を整理すると次のようになります。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>位置（1つのセル）</th><th>サイズ（範囲）</th></tr></thead><tbody><tr><td>行（縦）</td><td>ROW関数</td><td>ROWS関数</td></tr><tr><td>列（横）</td><td>COLUMN関数</td><td>COLUMNS関数</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">この4つの関係を押さえておけば、「行番号？ 行数？ 列番号？ 列数？」で迷うことがなくなりますよ。</p>



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



<p class="wp-block-paragraph">ROWS関数自体は非常にシンプルなので、単独でエラーになることはほとんどありません。ただし、いくつか注意点があります。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>引数なしでエラー</td><td><code>=ROWS()</code> と引数を省略した</td><td>ROWS関数は引数が必須です。行数を調べたい範囲を指定してください</td></tr><tr><td><code>#REF!</code></td><td>参照先の行や列が削除された</td><td>参照先セルが存在するか確認してください</td></tr><tr><td><code>#NAME?</code></td><td>名前付き範囲のスペルミス</td><td>「データ」>「名前付き範囲」から名前を確認してください</td></tr><tr><td>期待と違う数値が返る</td><td>行数ではなく行番号を求めていた</td><td>行番号がほしい場合はROW関数を使ってください</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">特に注意したいのが「引数省略」のケースです。ROW関数は <code>=ROW()</code> と引数なしで使えますが、ROWS関数は必ず範囲を指定する必要があります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>「期待と違う数値が返る」場合は、ROWS関数とROW関数を混同していることがほとんどです。ROWS関数は範囲の「サイズ」、ROW関数はセルの「位置」を返します。<code>=ROWS(A3:A10)</code> は「8」、<code>=ROW(A3)</code> は「3」です。</p></blockquote>



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



<p class="wp-block-paragraph">ROWS関数は、セル範囲の行数を取得するシンプルな関数です。他の関数と組み合わせることで、最終行データの取得や動的な範囲制御に活用できます。</p>



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



<ul class="wp-block-list"><li>ROWS関数は <code>=ROWS(範囲)</code> で、範囲の行数を数値で返す（引数の省略は不可）</li><li>ROW関数は「何行目か（位置）」、ROWS関数は「何行あるか（サイズ）」を返す</li><li>INDEX関数と組み合わせれば、最終行のデータを簡単に取得できる</li><li>OFFSET関数と組み合わせれば、動的に伸縮する範囲を作れる</li><li>COLUMNS関数とは行・列の方向が違うだけの対称ペア</li></ul>



<p class="wp-block-paragraph">まずは <code>=ROWS(A1:A10)</code> のシンプルな使い方から試してみてください。INDEX関数やOFFSET関数との組み合わせを覚えれば、データ管理がグッとラクになりますよ。</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-row-function/">スプレッドシートのROW関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-column-function/">スプレッドシートのCOLUMN関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-columns-function/">スプレッドシートのCOLUMNS関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-index-function/">スプレッドシートのINDEX関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-indirect-function/">スプレッドシートのINDIRECT関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-offset-function/">スプレッドシートのOFFSET関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-counta-function/">スプレッドシートのCOUNTA関数の使い方</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-rows-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのIFERROR関数の使い方｜エラー時の代替値を設定する方法</title>
		<link>https://mashukabu.com/spreadsheet-iferror-function/</link>
					<comments>https://mashukabu.com/spreadsheet-iferror-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Fri, 20 Mar 2026 13:57:06 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[IFERROR関数]]></category>
		<category><![CDATA[IFNA関数]]></category>
		<category><![CDATA[IF関数]]></category>
		<category><![CDATA[INDEX関数]]></category>
		<category><![CDATA[VLOOKUP関数]]></category>
		<category><![CDATA[エラー処理]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4699</guid>

					<description><![CDATA[スプレッドシートのIFERROR関数の使い方を基本から解説。エラー時に代替値を返す構文から、VLOOKUPやINDEX/MATCHとの組み合わせ、IFNA関数との違い、よくあるエラーの対処法まで実務シナリオで丁寧に解説します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「スプレッドシートで数式を入れたら#N/Aや#DIV/0!が表示されてしまった」。こんな経験、ありませんか？</p>



<p class="wp-block-paragraph">エラーが並んだ表はそのまま共有しにくいですよね。見た目が悪いだけでなく、集計関数にも影響してしまいます。</p>



<p class="wp-block-paragraph">そんなときに使えるのが、スプレッドシートのIFERROR関数です。この記事では基本の書き方から、VLOOKUPとの組み合わせ、IFNA関数との違い、よくあるエラーの対処法まで丁寧に解説します。</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">スプレッドシートのIFERROR関数とは？エラー処理の基本</a></li><li><a href="#toc2" tabindex="0">IFERROR関数の書き方（構文・引数）</a><ol><li><a href="#toc3" tabindex="0">基本構文</a></li><li><a href="#toc4" tabindex="0">引数の説明</a></li><li><a href="#toc5" tabindex="0">最もシンプルな使用例</a></li></ol></li><li><a href="#toc6" tabindex="0">基本的な使い方3選</a><ol><li><a href="#toc7" tabindex="0">VLOOKUPのエラーを処理する（最頻出パターン）</a></li><li><a href="#toc8" tabindex="0">割り算のゼロ除算エラーを防ぐ</a></li><li><a href="#toc9" tabindex="0">INDEX/MATCHのエラーを処理する</a></li></ol></li><li><a href="#toc10" tabindex="0">実務で使える応用パターン</a><ol><li><a href="#toc11" tabindex="0">エラー時に空白にする（表の見た目を整える）</a></li><li><a href="#toc12" tabindex="0">IF関数と組み合わせる</a></li><li><a href="#toc13" tabindex="0">複数の検索を順番に試す（フォールバック検索）</a></li></ol></li><li><a href="#toc14" tabindex="0">IFERROR関数で処理できるエラーの種類</a></li><li><a href="#toc15" tabindex="0">IFERROR関数とIFNA関数の違い・使い分け</a><ol><li><a href="#toc16" tabindex="0">どちらを使うべき？判断基準</a></li></ol></li><li><a href="#toc17" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc18" tabindex="0">エラーが処理されない</a></li><li><a href="#toc19" tabindex="0">第2引数を省略したときの注意点</a></li><li><a href="#toc20" tabindex="0">すべてのエラーが消えてデバッグできない</a></li><li><a href="#toc21" tabindex="0">IFERROR関数自体は正しいのにエラーが出る</a></li></ol></li><li><a href="#toc22" tabindex="0">まとめ</a><ol><li><a href="#toc23" tabindex="0">この記事で紹介した関数・関連記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">スプレッドシートのIFERROR関数とは？エラー処理の基本</span></h2>



<p class="wp-block-paragraph">IFERROR関数（読み方: イフエラー関数）は、<strong>数式がエラーを返したときに代わりの値を表示する関数</strong>です。「IF」は「もし」、「ERROR」は「エラーなら」という意味に由来しています。</p>



<p class="wp-block-paragraph">たとえば「VLOOKUPで検索値が見つからないとき、#N/Aの代わりに&#8221;該当なし&#8221;と表示する」という処理を考えてみましょう。IFERROR関数を使えば、エラー判定と代替値の指定を1つの数式で完結できます。</p>



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



<ul class="wp-block-list"><li>数式のエラーを任意の文字列や数値に置き換える</li><li>#N/A・#DIV/0!・#VALUE!など全7種のエラーを一括処理する</li><li>エラーでないときは元の数式の結果をそのまま返す</li><li>VLOOKUP・INDEX/MATCHなどの検索関数と組み合わせて使う</li></ul>



<p class="wp-block-paragraph">「エラーが出たら別の値を返す関数」と覚えておくとわかりやすいですよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>IFERROR関数はGoogleスプレッドシートの全バージョンで使えます。Excelでは2007以降に対応しているため、ファイルのやり取りでも安心です。</p></blockquote>



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



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



<pre class="wp-block-code"><code>=IFERROR(値, エラー時の値)</code></pre>



<p class="wp-block-paragraph">カッコの中に「エラーを確認したい数式」と「エラーのときに返す値」を指定します。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>説明</th></tr></thead><tbody><tr><td>値</td><td>必須</td><td>エラーかどうかを確認する数式や値</td></tr><tr><td>エラー時の値</td><td>任意</td><td>エラーだったときに返す値（省略時は空白）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">第2引数の「エラー時の値」は省略できます。省略するとエラー時に空白（空文字列）が返ります。ただし実務では「該当なし」や0などを明示するのが一般的ですよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>文字列を返す場合はダブルクォーテーションで囲みます。数値を返す場合は囲みません。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc5">最もシンプルな使用例</span></h3>



<p class="wp-block-paragraph">B列の値をC列の値で割り算するとします。C列が0のときに#DIV/0!エラーが出るのを防いでみましょう。</p>



<pre class="wp-block-code"><code>=IFERROR(B2/C2, 0)</code></pre>



<ul class="wp-block-list"><li><strong>B2/C2</strong>（値）: 割り算の数式</li><li><strong>0</strong>（エラー時の値）: エラーが出たら0を返す</li></ul>



<p class="wp-block-paragraph">C2が0でなければ割り算の結果が返ります。C2が0のときは#DIV/0!の代わりに0が表示されます。</p>



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



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



<h3 class="wp-block-heading"><span id="toc7">VLOOKUPのエラーを処理する（最頻出パターン）</span></h3>



<p class="wp-block-paragraph">商品コードをもとに商品名を検索するとします。<a href="https://mashukabu.com/spreadsheet-vlookup-function/">VLOOKUP関数</a>で該当がないと#N/Aエラーが出ます。IFERRORで「該当なし」に置き換えてみましょう。</p>



<pre class="wp-block-code"><code>=IFERROR(VLOOKUP(A2, E:F, 2, FALSE), &quot;該当なし&quot;)</code></pre>



<ul class="wp-block-list"><li><strong>VLOOKUP(A2, E:F, 2, FALSE)</strong>: A2の商品コードをE列から検索</li><li><strong>&#8220;該当なし&#8221;</strong>: 検索値が見つからないときの表示</li></ul>



<p class="wp-block-paragraph">A2の値がE列に存在すれば商品名が返ります。存在しなければ「該当なし」と表示されます。検索系の関数でもっとも使われるパターンですよ。</p>



<h3 class="wp-block-heading"><span id="toc8">割り算のゼロ除算エラーを防ぐ</span></h3>



<p class="wp-block-paragraph">達成率を計算するとき、目標が0だと#DIV/0!エラーが出ます。IFERRORで「-」に置き換えましょう。</p>



<pre class="wp-block-code"><code>=IFERROR(B2/C2, &quot;-&quot;)</code></pre>



<ul class="wp-block-list"><li><strong>B2/C2</strong>: 実績を目標で割った達成率</li><li><strong>&#8220;-&#8220;</strong>: 目標が0のとき「-」を表示</li></ul>



<p class="wp-block-paragraph">売上報告書やKPI管理表でよく使うパターンです。0を返すと「達成率0%」と誤解されるため、「-」や「N/A」を返すほうが親切ですよ。</p>



<h3 class="wp-block-heading"><span id="toc9">INDEX/MATCHのエラーを処理する</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-index-function/">INDEX関数</a>とMATCH関数を組み合わせた検索でも、該当なしのときに#N/Aエラーが出ます。</p>



<pre class="wp-block-code"><code>=IFERROR(INDEX(B:B, MATCH(E2, A:A, 0)), &quot;未登録&quot;)</code></pre>



<ul class="wp-block-list"><li><strong>INDEX(B:B, MATCH(E2, A:A, 0))</strong>: E2をA列から検索し、B列の値を返す</li><li><strong>&#8220;未登録&#8221;</strong>: 該当がないときの表示</li></ul>



<p class="wp-block-paragraph">VLOOKUPよりも柔軟な検索ができるINDEX/MATCHですが、エラー処理の考え方は同じです。IFERRORで囲むだけで対応できます。</p>



<h2 class="wp-block-heading"><span id="toc10">実務で使える応用パターン</span></h2>



<h3 class="wp-block-heading"><span id="toc11">エラー時に空白にする（表の見た目を整える）</span></h3>



<p class="wp-block-paragraph">エラーを完全に非表示にしたい場合は、第2引数に空文字列を指定します。</p>



<pre class="wp-block-code"><code>=IFERROR(B2/C2, &quot;&quot;)</code></pre>



<p class="wp-block-paragraph">空文字列を指定すると、エラー時にセルが空白に見えます。印刷用の帳票や共有資料で、エラー表示を消したいときに便利です。</p>



<h3 class="wp-block-heading"><span id="toc12">IF関数と組み合わせる</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-if-function/">IF関数</a>とIFERROR関数を組み合わせると、条件分岐とエラー処理を同時に行えます。</p>



<pre class="wp-block-code"><code>=IF(A2=&quot;&quot;, &quot;&quot;, IFERROR(VLOOKUP(A2, E:F, 2, FALSE), &quot;該当なし&quot;))</code></pre>



<p class="wp-block-paragraph">A2が空白ならそもそも検索しません。値が入っているときだけVLOOKUPを実行し、見つからなければ「該当なし」を返します。入力途中のデータを扱うときに便利なパターンですよ。</p>



<h3 class="wp-block-heading"><span id="toc13">複数の検索を順番に試す（フォールバック検索）</span></h3>



<p class="wp-block-paragraph">IFERROR関数をネスト（入れ子）にすると、最初の検索が失敗したら次の検索を試せます。</p>



<pre class="wp-block-code"><code>=IFERROR(VLOOKUP(A2, シート1!A:B, 2, FALSE), IFERROR(VLOOKUP(A2, シート2!A:B, 2, FALSE), &quot;どちらにも該当なし&quot;))</code></pre>



<p class="wp-block-paragraph">まずシート1から検索します。見つからなければシート2を検索します。どちらにもなければ「どちらにも該当なし」を返します。複数の参照テーブルを持つ業務で活用できるパターンです。</p>



<h2 class="wp-block-heading"><span id="toc14">IFERROR関数で処理できるエラーの種類</span></h2>



<p class="wp-block-paragraph">IFERROR関数は、スプレッドシートで発生する<strong>全7種類のエラー</strong>を一括で処理できます。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>発生原因</th><th>対処例</th></tr></thead><tbody><tr><td>#N/A</td><td>検索値が見つからない</td><td><code>=IFERROR(VLOOKUP(...), "該当なし")</code></td></tr><tr><td>#DIV/0!</td><td>0で割り算した</td><td><code>=IFERROR(B2/C2, 0)</code></td></tr><tr><td>#VALUE!</td><td>引数のデータ型が不正</td><td><code>=IFERROR(A2+B2, "数値を入力")</code></td></tr><tr><td>#REF!</td><td>参照先のセルが削除された</td><td><code>=IFERROR(A2, "参照エラー")</code></td></tr><tr><td>#NAME?</td><td>関数名のスペルミス</td><td><code>=IFERROR(数式, "数式エラー")</code></td></tr><tr><td>#NUM!</td><td>数値として無効な計算結果</td><td><code>=IFERROR(SQRT(A2), "計算不可")</code></td></tr><tr><td>#NULL!</td><td>範囲の交差指定が不正</td><td><code>=IFERROR(数式, "範囲エラー")</code></td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>WARNING</strong></p><p>IFERRORは全エラーをキャッチするため、数式のバグ（#REF!や#NAME?）も隠してしまう場合があります。検索系のエラー（#N/A）だけを処理したい場合は、後述するIFNA関数を使うほうが安全です。</p></blockquote>



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



<p class="wp-block-paragraph">IFERROR関数と似た関数に、IFNA関数があります。大きな違いは「処理するエラーの範囲」です。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>IFERROR</th><th>IFNA</th></tr></thead><tbody><tr><td>対象エラー</td><td>全7種のエラー</td><td>#N/Aのみ</td></tr><tr><td>主な用途</td><td>汎用的なエラー処理</td><td>VLOOKUP等の「該当なし」だけ処理</td></tr><tr><td>バグ発見</td><td>エラーを隠す可能性あり</td><td>#N/A以外はエラーのまま表示される</td></tr><tr><td>構文</td><td>=IFERROR(値, エラー時の値)</td><td>=IFNA(値, N/A時の値)</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc16">どちらを使うべき？判断基準</span></h3>



<p class="wp-block-paragraph">使い分けの基準はシンプルです。</p>



<ul class="wp-block-list"><li><strong>VLOOKUPやMATCHの「該当なし」だけ処理したい</strong> → IFNA関数がおすすめ</li><li><strong>割り算のゼロ除算など、複数種のエラーをまとめて処理したい</strong> → IFERROR関数が便利</li><li><strong>数式のバグを見逃したくない</strong> → IFNA関数が安全</li></ul>



<p class="wp-block-paragraph">IFNA関数は#N/A以外のエラーをそのまま表示します。そのため、数式に問題があればすぐに気づけます。「なんでもIFERRORで囲む」のはやめて、用途に応じて使い分けてみてください。</p>



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



<p class="wp-block-paragraph">IFERROR関数自体でエラーが出ることはほとんどありません。ただし、意図した動作にならないケースがあります。</p>



<h3 class="wp-block-heading"><span id="toc18">エラーが処理されない</span></h3>



<p class="wp-block-paragraph">IFERRORの第1引数の外でエラーが発生している場合、処理されません。</p>



<p class="wp-block-paragraph">NGの例: IFERRORの外で割り算している</p>



<pre class="wp-block-code"><code>=IFERROR(A2, &quot;エラー&quot;) / B2</code></pre>



<p class="wp-block-paragraph">OKの例: エラーが出る数式全体をIFERRORで囲む</p>



<pre class="wp-block-code"><code>=IFERROR(A2/B2, &quot;エラー&quot;)</code></pre>



<p class="wp-block-paragraph">エラーが出る可能性のある数式全体を第1引数に入れるのがポイントです。</p>



<h3 class="wp-block-heading"><span id="toc19">第2引数を省略したときの注意点</span></h3>



<p class="wp-block-paragraph">第2引数を省略すると空白が返ります。ただし、空白セルと空文字列は厳密には異なります。</p>



<pre class="wp-block-code"><code>=IFERROR(B2/C2)</code></pre>



<p class="wp-block-paragraph">この数式でエラーが出ると空文字列(&#8220;&#8221;)が返ります。COUNTA関数（空白でないセルを数える関数）はこの空文字列をカウントします。集計に影響する場合は注意してください。</p>



<h3 class="wp-block-heading"><span id="toc20">すべてのエラーが消えてデバッグできない</span></h3>



<p class="wp-block-paragraph">IFERRORで全エラーを隠すと、数式のミスに気づけません。</p>



<pre class="wp-block-code"><code>=IFERROR(VLOOKP(A2, B:C, 2, FALSE), &quot;OK&quot;)</code></pre>



<p class="wp-block-paragraph">上の例では「VLOOKUP」を「VLOOKP」とスペルミスしています。本来は#NAME?エラーで気づけるはずです。しかしIFERRORが「OK」を返してしまいます。数式を組み立てるときは、まずIFERRORなしで動作を確認してから囲むのがおすすめですよ。</p>



<h3 class="wp-block-heading"><span id="toc21">IFERROR関数自体は正しいのにエラーが出る</span></h3>



<p class="wp-block-paragraph">IFERROR関数の構文が正しくても、次のケースではエラーになります。</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>第1引数がエラーではない</td><td>第1引数の数式を単体で確認</td></tr></tbody></table></figure>



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



<p class="wp-block-paragraph">スプレッドシートのIFERROR関数について解説しました。ポイントを振り返りましょう。</p>



<ul class="wp-block-list"><li>IFERROR関数は「数式がエラーなら代替値を返す」関数</li><li>構文は <code>=IFERROR(値, エラー時の値)</code> とシンプル</li><li>VLOOKUPの#N/A、割り算の#DIV/0!など全7種のエラーに対応</li><li>IFNA関数は#N/Aだけを処理する。バグを見逃したくないならIFNAが安全</li><li>数式のデバッグ時はIFERRORを外してエラーを確認する</li></ul>



<p class="wp-block-paragraph">IFERRORは便利ですが、なんでも囲むとバグを隠すリスクがあります。まずはIFERRORなしで数式が正しく動くことを確認してから囲むようにしてみてください。</p>



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/spreadsheet-vlookup-function/">スプレッドシートのVLOOKUP関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-index-function/">スプレッドシートのINDEX関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-if-function/">スプレッドシートのIF関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-ifs-function/">スプレッドシートのIFS関数の使い方</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-iferror-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのCOLUMN関数の使い方｜列番号を取得する方法</title>
		<link>https://mashukabu.com/spreadsheet-column-function/</link>
					<comments>https://mashukabu.com/spreadsheet-column-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 19 Mar 2026 15:13:30 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[ADDRESS関数]]></category>
		<category><![CDATA[COLUMN関数]]></category>
		<category><![CDATA[INDEX関数]]></category>
		<category><![CDATA[MATCH関数]]></category>
		<category><![CDATA[ROW関数]]></category>
		<category><![CDATA[列番号]]></category>
		<category><![CDATA[横方向連番]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4666</guid>

					<description><![CDATA[スプレッドシートのCOLUMN関数で列番号を取得する方法を解説。横方向の連番作成やINDEX・ADDRESS関数との組み合わせ技、ROW関数との違いまで、実務で使えるテクニックを紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「スプレッドシートで列の番号を調べたいけど、A列が1でB列が2で&#8230;と数えるのは面倒」そんな経験はありませんか？</p>



<p class="wp-block-paragraph">列数が多い表だと、目的の列が何番目か数え間違えることもあります。手作業で数えていると時間もかかりますよね。</p>



<p class="wp-block-paragraph">スプレッドシートのCOLUMN関数を使えば、列番号を一発で取得できます。横方向の連番作成やINDEX関数との組み合わせにも活用できますよ。</p>



<p class="wp-block-paragraph">この記事では、COLUMN関数の基本から応用技まで紹介します。</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">スプレッドシートのCOLUMN関数とは？基本の仕組みを理解しよう</a><ol><li><a href="#toc2" tabindex="0">COLUMN関数の基本構文</a></li><li><a href="#toc3" tabindex="0">COLUMN()引数なしとCOLUMN(A1)の違い</a></li></ol></li><li><a href="#toc4" tabindex="0">COLUMN関数で横方向の連番を作る方法</a><ol><li><a href="#toc5" tabindex="0">月別・日別のヘッダーを自動で作る</a></li><li><a href="#toc6" tabindex="0">表の開始列がA列でない場合の対処法</a></li><li><a href="#toc7" tabindex="0">TEXT関数と組み合わせて月名を自動生成する</a></li></ol></li><li><a href="#toc8" tabindex="0">INDEX+COLUMNの組み合わせ技</a><ol><li><a href="#toc9" tabindex="0">INDEX関数と組み合わせて動的に列を切り替える</a></li></ol></li><li><a href="#toc10" tabindex="0">ADDRESS+COLUMNの組み合わせ技</a><ol><li><a href="#toc11" tabindex="0">ADDRESS関数と組み合わせてセル番地を自動生成する</a></li></ol></li><li><a href="#toc12" tabindex="0">COLUMN関数とROW関数の違い・使い分け</a><ol><li><a href="#toc13" tabindex="0">比較表</a></li></ol></li><li><a href="#toc14" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc15" tabindex="0">まとめ</a><ol><li><a href="#toc16" tabindex="0">この記事で紹介した関数・関連記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">スプレッドシートのCOLUMN関数とは？基本の仕組みを理解しよう</span></h2>



<p class="wp-block-paragraph">COLUMN関数（読み方: カラム関数）は、<strong>セルの列番号を数値で返す関数</strong>です。「COLUMN」は英語で「列」を意味します。</p>



<p class="wp-block-paragraph">たとえばセルC1にCOLUMN関数を入力すると、結果は「3」です。C列は左から3番目なので、その位置を数値で教えてくれます。</p>



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



<ul class="wp-block-list"><li>セルの列番号を数値で返す</li><li>引数を省略すると、数式が入っているセル自身の列番号を返す</li><li>横方向の連番作成に使える</li><li>他の関数と組み合わせて動的な参照を作れる</li></ul>



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



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/03/spreadsheet-sumif-function_01_data_sample-table.png" alt="01 data sample table" /></figure>



<pre class="wp-block-code"><code>=COLUMN([セル参照])</code></pre>



<p class="wp-block-paragraph">カッコの中に、列番号を知りたいセルを指定します。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>説明</th></tr></thead><tbody><tr><td>セル参照</td><td>任意</td><td>列番号を調べたいセル。省略すると数式のあるセル自身の列番号を返す</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">引数は1つだけで、しかも省略できます。ROW関数と同じく、とてもシンプルな構文ですね。</p>



<h3 class="wp-block-heading"><span id="toc3">COLUMN()引数なしとCOLUMN(A1)の違い</span></h3>



<p class="wp-block-paragraph">COLUMN関数の使い方は大きく2つあります。</p>



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



<p class="wp-block-paragraph">引数なしで使うと、<strong>数式が入っているセルの列番号</strong>を返します。セルD3に入力すれば結果は「4」です。D列は左から4番目ですね。</p>



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



<p class="wp-block-paragraph">セル参照を指定すると、<strong>そのセルの列番号</strong>を返します。どのセルに入力しても結果は「1」です。A列は常に1番目だからです。</p>



<p class="wp-block-paragraph">範囲を指定した場合は、先頭列の番号だけが返ります。</p>



<pre class="wp-block-code"><code>=COLUMN(C3:F10)</code></pre>



<p class="wp-block-paragraph">この結果は「3」です。C列からF列の範囲のうち、先頭のC列の列番号が返る仕組みです。</p>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/02_formula_column-basic.png" alt="02 formula column basic" /></figure>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/03_result_column-basic.png" alt="03 result column basic" /></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>COLUMN関数はGoogleスプレッドシートの全バージョンで使えます。Excelでもまったく同じ構文で動作しますよ。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc4">COLUMN関数で横方向の連番を作る方法</span></h2>



<p class="wp-block-paragraph">COLUMN関数の最も実用的な使い方が、<strong>横方向に並ぶ連番</strong>の作成です。</p>



<h3 class="wp-block-heading"><span id="toc5">月別・日別のヘッダーを自動で作る</span></h3>



<p class="wp-block-paragraph">たとえば、B1セルから右方向に「1, 2, 3&#8230;」と月番号を振りたい場合です。</p>



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



<p class="wp-block-paragraph">B1セルに入力すると <code>2-1=1</code>、C1セルなら <code>3-1=2</code> になります。数式を右にコピーするだけで連番が完成します。</p>



<p class="wp-block-paragraph">!<a href="https://mashukabu.com/_images/spreadsheet-column-function/04_formula_column-serial.png/">_images/spreadsheet-column-function/04_formula_column-serial.png</a></p>



<p class="wp-block-paragraph">列の挿入・削除にも自動で対応するので、手入力の番号より管理がラクです。</p>



<h3 class="wp-block-heading"><span id="toc6">表の開始列がA列でない場合の対処法</span></h3>



<p class="wp-block-paragraph">実務では、表の左側にラベル列があるケースが多いですよね。たとえばデータがD列から始まる場合を考えてみましょう。</p>



<p class="wp-block-paragraph"><code>=COLUMN()-1</code> だとD列のセルは「3」になってしまいます。こんなときは次の数式を使います。</p>



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



<p class="wp-block-paragraph"><code>$D$1</code> はデータ開始列のセルです。絶対参照にするのがポイントです。</p>



<figure class="wp-block-table"><table><thead><tr><th>セル位置</th><th>計算内容</th><th>結果</th></tr></thead><tbody><tr><td>D列</td><td>4 &#8211; 4 + 1</td><td>1</td></tr><tr><td>E列</td><td>5 &#8211; 4 + 1</td><td>2</td></tr><tr><td>F列</td><td>6 &#8211; 4 + 1</td><td>3</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">!<a href="https://mashukabu.com/_images/spreadsheet-column-function/05_result_column-offset-serial.png/">_images/spreadsheet-column-function/05_result_column-offset-serial.png</a></p>



<p class="wp-block-paragraph">この方法なら、表がどの列から始まっても正しい連番になります。列を挿入・削除しても自動で振り直されるので安心ですよ。</p>



<h3 class="wp-block-heading"><span id="toc7">TEXT関数と組み合わせて月名を自動生成する</span></h3>



<p class="wp-block-paragraph">COLUMN関数で作った連番を月名に変換するテクニックです。</p>



<pre class="wp-block-code"><code>=TEXT(DATE(2026,COLUMN()-1,1),&quot;M月&quot;)</code></pre>



<p class="wp-block-paragraph">B1セルに入力して右にコピーすると、「1月, 2月, 3月&#8230;」と月名ヘッダーが自動で並びます。</p>



<p class="wp-block-paragraph">DATE関数で各月の1日を作り、TEXT関数で月名に整形する流れです。COLUMN()-1 の部分が月番号になっています。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>縦方向の連番にはROW関数、横方向の連番にはCOLUMN関数と覚えておくと迷いません。ROW関数の詳しい使い方は「<a href="https://mashukabu.com/spreadsheet-row-function/">スプレッドシートのROW関数の使い方</a>」で解説しています。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc8">INDEX+COLUMNの組み合わせ技</span></h2>



<h3 class="wp-block-heading"><span id="toc9">INDEX関数と組み合わせて動的に列を切り替える</span></h3>



<p class="wp-block-paragraph">INDEX関数（指定した範囲から行番号・列番号で値を取り出す関数）と組み合わせると、<strong>列の位置に連動して参照先が自動的に変わる数式</strong>を作れます。</p>



<p class="wp-block-paragraph">たとえば、A1:E10に売上データが入っているとします。2行目以降のデータを、列番号に連動して取り出すケースです。</p>



<pre class="wp-block-code"><code>=INDEX($A$1:$E$10, 2, COLUMN())</code></pre>



<p class="wp-block-paragraph">A列に入力すると1列目、B列なら2列目の値が取り出されます。数式を右にコピーするだけで、各列のデータを横に並べられます。</p>



<p class="wp-block-paragraph">データの開始列がずれている場合は、オフセットを加えます。</p>



<pre class="wp-block-code"><code>=INDEX($A$1:$E$10, 2, COLUMN()-COLUMN($C$1)+1)</code></pre>



<p class="wp-block-paragraph">C1セルから数式を入力し始める場合の例です。COLUMN()-COLUMN($C$1)+1 で常に1から始まる連番を作り、INDEXの列番号に渡しています。</p>



<p class="wp-block-paragraph">この組み合わせが活きる場面は次のとおりです。</p>



<ul class="wp-block-list"><li>元データの列順を変えずに、別の場所で並び替えた表を作りたいとき</li><li>ダッシュボードで表示項目を切り替えたいとき</li><li>複数シートから同じ列位置のデータを集約したいとき</li></ul>



<p class="wp-block-paragraph">INDEX関数の詳しい使い方は「<a href="https://mashukabu.com/spreadsheet-index-function/">スプレッドシートのINDEX関数の使い方</a>」で解説しています。</p>



<h2 class="wp-block-heading"><span id="toc10">ADDRESS+COLUMNの組み合わせ技</span></h2>



<h3 class="wp-block-heading"><span id="toc11">ADDRESS関数と組み合わせてセル番地を自動生成する</span></h3>



<p class="wp-block-paragraph">ADDRESS関数（行番号と列番号からセル番地の文字列を作る関数）にCOLUMN関数の結果を渡すと、<strong>セル番地を動的に生成</strong>できます。</p>



<pre class="wp-block-code"><code>=ADDRESS(1, COLUMN())</code></pre>



<p class="wp-block-paragraph">A列に入力すると「$A$1」、B列なら「$B$1」が返ります。列の位置に応じてセル番地が自動で変わる仕組みです。</p>



<p class="wp-block-paragraph">INDIRECT関数と組み合わせれば、生成したセル番地をそのまま参照に変換できます。</p>



<pre class="wp-block-code"><code>=INDIRECT(ADDRESS(ROW(), COLUMN()-1))</code></pre>



<p class="wp-block-paragraph">この数式は「自分の1つ左のセルの値」を返します。ROW関数で行番号、COLUMN()-1 で1つ左の列番号を取得し、ADDRESS関数でセル番地を組み立てています。</p>



<p class="wp-block-paragraph">こうした動的参照は、次のような場面で便利です。</p>



<ul class="wp-block-list"><li>累計計算で「1つ前のセルの値を足す」パターン</li><li>条件によって参照先の列を切り替えたいとき</li><li>マクロを使わずに柔軟なセル参照を実現したいとき</li></ul>



<p class="wp-block-paragraph">ADDRESS関数の詳しい使い方は「<a href="https://mashukabu.com/spreadsheet-address-function/">スプレッドシートのADDRESS関数の使い方</a>」を参考にしてみてください。</p>



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



<p class="wp-block-paragraph">COLUMN関数とROW関数は、どちらもセルの位置を数値で返す関数です。取得する方向が異なります。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>COLUMN関数</th><th>ROW関数</th></tr></thead><tbody><tr><td>返す値</td><td>列番号（横方向の位置）</td><td>行番号（縦方向の位置）</td></tr><tr><td>構文</td><td><code>=COLUMN([セル参照])</code></td><td><code>=ROW([セル参照])</code></td></tr><tr><td>使用例</td><td><code>=COLUMN(C1)</code> → 3</td><td><code>=ROW(A3)</code> → 3</td></tr><tr><td>連番の方向</td><td>横方向（右にコピー）</td><td>縦方向（下にコピー）</td></tr><tr><td>よくある用途</td><td>横の連番、列ベースの動的参照</td><td>縦の連番、行ベースの動的参照</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">使い分けのポイントはシンプルです。</p>



<ul class="wp-block-list"><li><strong>横方向の連番やヘッダー</strong> → COLUMN関数</li><li><strong>縦方向の連番やナンバリング</strong> → ROW関数</li></ul>



<p class="wp-block-paragraph">また、COLUMNS関数（範囲の列数を数える関数）との混同に注意してください。COLUMN関数は「<strong>何列目か</strong>」、COLUMNS関数は「<strong>何列あるか</strong>」を返す別の関数です。</p>



<pre class="wp-block-code"><code>=COLUMN(C3:F10)    → 3（先頭列の列番号）
=COLUMNS(C3:F10)   → 4（範囲の列数）</code></pre>



<p class="wp-block-paragraph">ROW関数の詳しい使い方は「<a href="https://mashukabu.com/spreadsheet-row-function/">スプレッドシートのROW関数の使い方</a>」で解説しています。</p>



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



<p class="wp-block-paragraph">COLUMN関数自体は非常にシンプルなので、単独でエラーになることはほとんどありません。ただし、他の関数と組み合わせたときにエラーが出るケースがあります。</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>#VALUE!</code></td><td>COLUMN関数に文字列を渡した</td><td>引数にはセル参照のみ指定する。<code>"A1"</code> のような文字列は不可</td></tr><tr><td><code>#REF!</code>（INDIRECT併用時）</td><td>INDIRECT関数の参照先が存在しない</td><td>シート名やセルアドレスの文字列を確認する</td></tr><tr><td>連番がずれる</td><td>列の挿入・削除でオフセットが変わった</td><td><code>=COLUMN()-COLUMN($開始セル)+1</code> の形式で、開始セルを絶対参照にする</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">特に注意したいのが「連番がずれる」ケースです。単純な <code>=COLUMN()-1</code> だと、列を挿入したときにオフセット値が合わなくなります。</p>



<p class="wp-block-paragraph">安全に連番を作りたい場合は、<code>=COLUMN()-COLUMN($開始セル)+1</code> のパターンを使ってください。開始セルを絶対参照にしておけば、列の挿入・削除に強くなりますよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>COLUMN関数の引数にセルアドレスの文字列を渡すのはよくある間違いです。<code>=COLUMN("C1")</code> はエラーになります。文字列をセル参照に変換したい場合は、INDIRECT関数を使いましょう。<code>=COLUMN(INDIRECT("C1"))</code> のように書けばOKです。</p></blockquote>



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



<p class="wp-block-paragraph">COLUMN関数は、セルの列番号を返すシンプルな関数です。単体で使うだけでなく、横方向の連番や動的参照の土台として幅広く活用できます。</p>



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



<ul class="wp-block-list"><li>COLUMN関数は引数なしで自分のセルの列番号、セル参照指定でそのセルの列番号を返す</li><li><code>=COLUMN()-COLUMN($開始セル)+1</code> で、表がどの列から始まっても正しい横方向の連番を作れる</li><li>列の挿入・削除にも自動対応するので、手入力の番号より管理がラク</li><li>INDEX関数と組み合わせれば、列位置に連動する動的な値の取得ができる</li><li>ADDRESS関数と組み合わせれば、セル番地の動的生成もできる</li><li>COLUMN関数は「何列目か」、ROW関数は「何行目か」、COLUMNS関数は「何列あるか」</li></ul>



<p class="wp-block-paragraph">まずは <code>=COLUMN()-COLUMN($A$1)+1</code> の横方向連番パターンから試してみてください。月別ヘッダーや日別の集計表で、すぐに効果を実感できますよ。</p>



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



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/spreadsheet-row-function/">スプレッドシートのROW関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-index-function/">スプレッドシートのINDEX関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-match-function/">スプレッドシートのMATCH関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-address-function/">スプレッドシートのADDRESS関数の使い方</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-column-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのINDEX関数の使い方｜行列指定で値を取得する方法</title>
		<link>https://mashukabu.com/spreadsheet-index-function/</link>
					<comments>https://mashukabu.com/spreadsheet-index-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 19 Mar 2026 15:13:16 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[INDEX+MATCH]]></category>
		<category><![CDATA[INDEX関数]]></category>
		<category><![CDATA[MATCH関数]]></category>
		<category><![CDATA[VLOOKUP]]></category>
		<category><![CDATA[スプレッドシート]]></category>
		<category><![CDATA[検索関数]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4660</guid>

					<description><![CDATA[スプレッドシートのINDEX関数の引数と基本構文を解説。MATCH関数と組み合わせてVLOOKUPでは難しい左列検索を実現する方法や、VLOOKUPとの使い分け基準も紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「社員番号から名前を引っ張りたいけど、VLOOKUPだと左側の列は検索できない」。スプレッドシートでこんな壁にぶつかったことはありませんか。</p>



<p class="wp-block-paragraph">列の並びを変えれば対応できますが、元の表を崩すのは避けたいですよね。</p>



<p class="wp-block-paragraph">そんなときに頼りになるのがINDEX関数です。行番号と列番号を指定するだけで、表のどこからでも値を取得できます。この記事では、INDEX関数の基本から実践的な使い方まで解説します。MATCH関数との組み合わせやVLOOKUPとの使い分けもカバーします。</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">スプレッドシートのINDEX関数とは？</a></li><li><a href="#toc2" tabindex="0">INDEX関数の書き方（構文と引数）</a><ol><li><a href="#toc3" tabindex="0">基本構文</a></li><li><a href="#toc4" tabindex="0">引数の説明</a></li></ol></li><li><a href="#toc5" tabindex="0">INDEX関数の基本的な使い方</a><ol><li><a href="#toc6" tabindex="0">行番号と列番号を指定して値を取得する</a></li><li><a href="#toc7" tabindex="0">行番号・列番号に0を指定する</a></li></ol></li><li><a href="#toc8" tabindex="0">INDEX+MATCHの組み合わせ（実践パターン）</a><ol><li><a href="#toc9" tabindex="0">INDEX+MATCHの基本パターン</a></li><li><a href="#toc10" tabindex="0">左列への逆引き検索（VLOOKUPでは不可能）</a></li><li><a href="#toc11" tabindex="0">2次元検索（行と列の両方をMATCHで検索）</a></li></ol></li><li><a href="#toc12" tabindex="0">VLOOKUPとINDEX+MATCHの使い分け</a><ol><li><a href="#toc13" tabindex="0">どちらを選ぶべき？</a></li></ol></li><li><a href="#toc14" tabindex="0">INDEX関数でよくあるエラーと対処法</a><ol><li><a href="#toc15" tabindex="0">#REF! エラー</a></li><li><a href="#toc16" tabindex="0">#VALUE! エラー</a></li><li><a href="#toc17" tabindex="0">#N/A エラー（MATCH使用時）</a></li></ol></li><li><a href="#toc18" tabindex="0">INDEX関数のまとめ</a><ol><li><a href="#toc19" tabindex="0">関連記事</a></li></ol></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">INDEX関数（読み方: インデックス関数）は、範囲内の指定した行・列の位置にある値を返す関数です。名前はIndex（索引・見出し）が由来で、「表の中から座標を指定してピンポイントで値を取り出す」イメージです。</p>



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



<ul class="wp-block-list"><li>行番号と列番号を指定して、表から値を1つ取得する</li><li>行番号に0を指定して、列全体を配列として返す</li><li>MATCH関数（検索値の位置番号を返す関数）と組み合わせて柔軟な検索を行う</li><li>VLOOKUPでは不可能な左方向への検索を実現する</li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>Googleスプレッドシートではarea_num（区画番号）引数に対応していません。Excelから数式を移行する場合はご注意ください。</p></blockquote>



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



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



<p class="wp-block-paragraph">INDEX関数の構文はこちらです。</p>



<pre class="wp-block-code"><code>=INDEX(参照, [行], [列])</code></pre>



<p class="wp-block-paragraph">引数は3つあります。行と列はどちらも省略できます。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/省略可</th><th>意味</th><th>指定例</th></tr></thead><tbody><tr><td>参照</td><td>必須</td><td>値を取り出す対象の範囲</td><td>A2:D5</td></tr><tr><td>行</td><td>省略可</td><td>範囲内の行番号（1から数える）</td><td>2</td></tr><tr><td>列</td><td>省略可</td><td>範囲内の列番号（1から数える）</td><td>3</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">行と列にはそれぞれ特殊な指定方法があります。</p>



<ul class="wp-block-list"><li><strong>0を指定した場合</strong>: 行に0を指定すると列全体、列に0を指定すると行全体を配列として返します</li><li><strong>省略した場合</strong>: 省略すると1が指定されたものとして扱われます</li></ul>



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



<h3 class="wp-block-heading"><span id="toc6">行番号と列番号を指定して値を取得する</span></h3>



<p class="wp-block-paragraph">次の社員管理表を例に見てみましょう。A1:D5にデータが入っているとします。</p>



<figure class="wp-block-table"><table><thead><tr><th>社員番号</th><th>名前</th><th>部署</th><th>内線番号</th></tr></thead><tbody><tr><td>1001</td><td>田中</td><td>営業部</td><td>3001</td></tr><tr><td>1002</td><td>佐藤</td><td>経理部</td><td>3002</td></tr><tr><td>1003</td><td>鈴木</td><td>人事部</td><td>3003</td></tr><tr><td>1004</td><td>高橋</td><td>総務部</td><td>3004</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">!<a href="https://mashukabu.com/_images/spreadsheet-index-function/01_data_employee-table.png/">_images/spreadsheet-index-function/01_data_employee-table.png</a></p>



<p class="wp-block-paragraph">データ部分（A2:D5）から2行目・3列目の値を取得するにはこう書きます。</p>



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



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/02_formula_index-basic.png" alt="02 formula index basic" /></figure>



<p class="wp-block-paragraph">結果は「経理部」です。A2:D5の2行目は佐藤の行、3列目は部署の列なので、その交差する値が返ります。</p>



<p class="wp-block-paragraph">もう1つ試してみましょう。3行目・2列目を指定します。</p>



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



<p class="wp-block-paragraph">結果は「鈴木」です。行と列の番号は範囲の左上を起点にカウントする点がポイントです。</p>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/03_result_index-basic.png" alt="03 result index basic" /></figure>



<h3 class="wp-block-heading"><span id="toc7">行番号・列番号に0を指定する</span></h3>



<p class="wp-block-paragraph">行番号に0を指定すると、指定した列全体が配列として返ります。</p>



<pre class="wp-block-code"><code>=INDEX(A2:D5, 0, 2)</code></pre>



<p class="wp-block-paragraph">この数式は名前列（B列のデータ部分）を丸ごと返します。SUM関数やAVERAGE関数の引数として使うと便利です。</p>



<p class="wp-block-paragraph">同様に列番号に0を指定すると、指定した行全体が返ります。</p>



<pre class="wp-block-code"><code>=INDEX(A2:D5, 1, 0)</code></pre>



<p class="wp-block-paragraph">結果は田中の行全体（1001, 田中, 営業部, 3001）です。</p>



<h2 class="wp-block-heading"><span id="toc8">INDEX+MATCHの組み合わせ（実践パターン）</span></h2>



<p class="wp-block-paragraph">INDEX関数の真価は、MATCH関数と組み合わせたときに発揮されます。MATCH関数は検索値が範囲内の何番目にあるかを返す関数です。</p>



<h3 class="wp-block-heading"><span id="toc9">INDEX+MATCHの基本パターン</span></h3>



<p class="wp-block-paragraph">基本の構文はこちらです。</p>



<pre class="wp-block-code"><code>=INDEX(戻り値の範囲, MATCH(検索値, 検索範囲, 0))</code></pre>



<p class="wp-block-paragraph">MATCH関数の第3引数「0」は完全一致を意味します。</p>



<p class="wp-block-paragraph">先ほどの社員管理表で、社員番号1003の部署を取得してみましょう。</p>



<pre class="wp-block-code"><code>=INDEX(C2:C5, MATCH(1003, A2:A5, 0))</code></pre>



<p class="wp-block-paragraph">処理の流れを順に見ていきます。</p>



<ol class="wp-block-list"><li>MATCH(1003, A2:A5, 0) → A2:A5の中で1003は3番目 → 「3」を返す</li><li>INDEX(C2:C5, 3) → C2:C5の3番目 → 「人事部」を返す</li></ol>



<p class="wp-block-paragraph">VLOOKUPと似た動きですが、検索列と戻り値の列を別々に指定できるのが大きな違いです。</p>



<h3 class="wp-block-heading"><span id="toc10">左列への逆引き検索（VLOOKUPでは不可能）</span></h3>



<p class="wp-block-paragraph">INDEX+MATCHが最も活躍するのが、左方向への検索です。</p>



<p class="wp-block-paragraph">たとえば「経理部の社員番号を知りたい」とします。部署（C列）で検索して社員番号（A列）を返す、つまり右から左への検索です。<a href="https://mashukabu.com/spreadsheet-vlookup-function/">VLOOKUP関数</a>では左方向の検索ができないため、この場面ではINDEX+MATCHの出番です。</p>



<pre class="wp-block-code"><code>=INDEX(A2:A5, MATCH(&quot;経理部&quot;, C2:C5, 0))</code></pre>



<p class="wp-block-paragraph">処理の流れは次のとおりです。</p>



<ol class="wp-block-list"><li>MATCH(&#8220;経理部&#8221;, C2:C5, 0) → C2:C5の中で経理部は2番目 → 「2」を返す</li><li>INDEX(A2:A5, 2) → A2:A5の2番目 → 「1002」を返す</li></ol>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/04_result_index-match-leftlookup.png" alt="04 result index match leftlookup" /></figure>



<p class="wp-block-paragraph">検索範囲と戻り値の範囲を自由に設定できるため、列の位置に制約がありません。</p>



<h3 class="wp-block-heading"><span id="toc11">2次元検索（行と列の両方をMATCHで検索）</span></h3>



<p class="wp-block-paragraph">ちょっとむずかしく見えますが、行と列の両方をMATCHで動的に指定することもできます。</p>



<p class="wp-block-paragraph">「社員番号1002の内線番号を取得したい」とします。行の位置も列の位置もMATCHで自動判定する数式です。</p>



<pre class="wp-block-code"><code>=INDEX(A2:D5, MATCH(1002, A2:A5, 0), MATCH(&quot;内線番号&quot;, A1:D1, 0))</code></pre>



<p class="wp-block-paragraph">処理の流れを見てみましょう。</p>



<ol class="wp-block-list"><li>MATCH(1002, A2:A5, 0) → 「2」（2行目）</li><li>MATCH(&#8220;内線番号&#8221;, A1:D1, 0) → 「4」（4列目）</li><li>INDEX(A2:D5, 2, 4) → 「3002」を返す</li></ol>



<p class="wp-block-paragraph">列の見出し名で検索するため、途中に列が追加されても数式が壊れません。大きな表を扱うときに重宝するパターンです。</p>



<h2 class="wp-block-heading"><span id="toc12">VLOOKUPとINDEX+MATCHの使い分け</span></h2>



<p class="wp-block-paragraph">どちらを使うべきか迷う方も多いと思います。比較表で整理しましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>特徴</th><th>VLOOKUP</th><th>INDEX+MATCH</th></tr></thead><tbody><tr><td>左方向検索</td><td>不可</td><td>可能</td></tr><tr><td>列追加への耐性</td><td>弱い（番号がズレる）</td><td>強い（列名で検索）</td></tr><tr><td>数式の読みやすさ</td><td>シンプル</td><td>やや複雑</td></tr><tr><td>処理速度（大量データ）</td><td>やや遅い</td><td>速い</td></tr><tr><td>デフォルトの一致方式</td><td>近似一致（TRUE）</td><td>完全一致（0指定）</td></tr><tr><td>複数列を一括で返す</td><td>不可</td><td>不可</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc13">どちらを選ぶべき？</span></h3>



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



<ul class="wp-block-list"><li><strong>検索列が範囲の左端にある単純な表引き</strong> → VLOOKUPで十分</li><li><strong>左方向への検索が必要</strong> → INDEX+MATCHを使う</li><li><strong>列の追加・削除が頻繁にある表</strong> → INDEX+MATCHが安全</li><li><strong>大量データ（数万行以上）を扱う</strong> → INDEX+MATCHのほうが高速</li></ul>



<p class="wp-block-paragraph">なお、Googleスプレッドシートでは2022年以降、XLOOKUP関数（VLOOKUPより柔軟な検索関数）が使えます。左方向検索やエラー時の既定値指定など、INDEX+MATCHの利点の多くをカバーしています。新しく数式を作るならXLOOKUPも選択肢に入れてみてください。</p>



<p class="wp-block-paragraph">VLOOKUPの詳しい使い方は「<a href="https://mashukabu.com/spreadsheet-vlookup-function/">スプレッドシートのVLOOKUP関数の使い方</a>」で解説しています。横方向の検索が必要な場合は「<a href="https://mashukabu.com/spreadsheet-hlookup-function/">スプレッドシートのHLOOKUP関数の使い方</a>」も参考にしてください。</p>



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



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



<p class="wp-block-paragraph">行番号または列番号が範囲の大きさを超えているときに出ます。</p>



<p class="wp-block-paragraph">たとえばA2:D5は4行4列の範囲です。行番号に5以上、列番号に5以上を指定すると#REF!エラーになります。範囲のサイズと指定した番号を見直してください。</p>



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



<p class="wp-block-paragraph">行番号や列番号に負の数や文字列を指定すると発生します。</p>



<p class="wp-block-paragraph">MATCH関数の結果が正しく数値を返しているか確認しましょう。セル参照先が空白や文字列になっていないかもチェックポイントです。</p>



<h3 class="wp-block-heading"><span id="toc17">#N/A エラー（MATCH使用時）</span></h3>



<p class="wp-block-paragraph">INDEX+MATCHの組み合わせで起きやすいエラーです。MATCH関数が検索値を見つけられないときに発生します。</p>



<figure class="wp-block-table"><table><thead><tr><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>検索値がデータに存在しない</td><td>データを追加するか、IFERRORで対処</td></tr><tr><td>データ型の不一致（数値と文字列）</td><td>検索値と検索範囲のデータ型を揃える</td></tr><tr><td>余分なスペースが含まれている</td><td>TRIM関数で空白を除去する</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">IFERROR関数（エラー時に別の値を返す関数）で囲めば、エラー表示を防げます。</p>



<pre class="wp-block-code"><code>=IFERROR(INDEX(C2:C5, MATCH(1005, A2:A5, 0)), &quot;見つかりません&quot;)</code></pre>



<p class="wp-block-paragraph">社員番号1005はデータに存在しないため、「見つかりません」が表示されます。</p>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/05_error_na-iferror.png" alt="05 error na iferror" /></figure>



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



<p class="wp-block-paragraph">INDEX関数のポイントを振り返ります。</p>



<ul class="wp-block-list"><li>構文は =INDEX(参照, 行, 列) の3引数。行と列は省略可</li><li>行・列番号は範囲の左上を起点に1から数える</li><li>MATCH関数と組み合わせると、VLOOKUPでは不可能な左方向検索ができる</li><li>2次元検索なら行・列の両方をMATCHで指定する</li><li>エラー対策にはIFERROR関数を組み合わせるのが定番</li></ul>



<p class="wp-block-paragraph">まずはINDEX+MATCHの基本パターンから試してみてください。一度覚えれば、VLOOKUPの制約に悩まされることがなくなります。</p>



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/spreadsheet-vlookup-function/">スプレッドシートのVLOOKUP関数の使い方｜別シート参照・エラー対処まで解説</a></li><li><a href="https://mashukabu.com/spreadsheet-hlookup-function/">スプレッドシートのHLOOKUP関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-xlookup/">スプレッドシートのXLOOKUP関数の使い方｜VLOOKUPとの違いも解説</a></li><li><a href="https://mashukabu.com/spreadsheet-filter-function/">スプレッドシートのFILTER関数の使い方｜条件に合うデータを自動抽出</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-index-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのROW関数の使い方｜連番を自動作成</title>
		<link>https://mashukabu.com/spreadsheet-row-function/</link>
					<comments>https://mashukabu.com/spreadsheet-row-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 19 Mar 2026 15:12:58 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[COLUMN関数]]></category>
		<category><![CDATA[INDEX関数]]></category>
		<category><![CDATA[INDIRECT関数]]></category>
		<category><![CDATA[ROW関数]]></category>
		<category><![CDATA[行番号]]></category>
		<category><![CDATA[連番]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4652</guid>

					<description><![CDATA[スプレッドシートのROW関数を使って、行追加・削除しても崩れない連番を自動作成する方法を解説。ROW()-offsetの基本パターンからINDEX+ROW、INDIRECT+ROWの組み合わせ技まで、実務で使えるテクニックを丁寧に紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「スプレッドシートで連番を振ったのに、行を追加したらズレてしまった&#8230;」そんな経験はありませんか？</p>



<p class="wp-block-paragraph">手入力の連番は、行の追加や削除で簡単に崩れてしまいます。そのたびに振り直すのは面倒ですよね。</p>



<p class="wp-block-paragraph">スプレッドシートのROW関数を使えば、行番号をもとに連番を自動作成できます。行の追加・削除にも自動で対応するので、メンテナンスの手間がなくなりますよ。</p>



<p class="wp-block-paragraph">この記事では、ROW関数の基本から連番の作り方、INDEX・INDIRECTとの組み合わせ技まで紹介します。</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">スプレッドシートのROW関数とは？基本の仕組みを理解しよう</a><ol><li><a href="#toc2" tabindex="0">ROW関数の基本構文</a></li><li><a href="#toc3" tabindex="0">ROW()引数なしとROW(A1)の違い</a></li></ol></li><li><a href="#toc4" tabindex="0">ROW()-offsetで崩れない連番を作る</a><ol><li><a href="#toc5" tabindex="0">行を追加・削除しても連番が維持される仕組み</a></li><li><a href="#toc6" tabindex="0">表の開始行が1行目でない場合の対処法</a></li></ol></li><li><a href="#toc7" tabindex="0">INDEX+ROWの組み合わせ技</a><ol><li><a href="#toc8" tabindex="0">INDEX関数と組み合わせて動的参照を作る</a></li></ol></li><li><a href="#toc9" tabindex="0">INDIRECT+ROWの組み合わせ技</a><ol><li><a href="#toc10" tabindex="0">文字列参照でシートをまたいだ動的参照</a></li></ol></li><li><a href="#toc11" tabindex="0">ROWとCOLUMNの違いと使い分け</a><ol><li><a href="#toc12" tabindex="0">比較表</a></li></ol></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">スプレッドシートのROW関数とは？基本の仕組みを理解しよう</span></h2>



<p class="wp-block-paragraph">ROW関数（読み方: ロウ関数）は、<strong>セルの行番号を返す関数</strong>です。「ROW」は英語の「Row（行）」がそのまま名前になっています。</p>



<p class="wp-block-paragraph">たとえばセルA3にROW関数を入力すると、結果は「3」です。そのセルが何行目にあるかを教えてくれるシンプルな関数です。</p>



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



<ul class="wp-block-list"><li>セルの行番号を数値で返す</li><li>引数を省略すると、数式が入っているセル自身の行番号を返す</li><li>連番の自動作成に使える</li><li>他の関数と組み合わせて動的な参照を作れる</li></ul>



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



<pre class="wp-block-code"><code>=ROW([セル参照])</code></pre>



<p class="wp-block-paragraph">カッコの中に、行番号を知りたいセルを指定します。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>説明</th></tr></thead><tbody><tr><td>セル参照</td><td>任意</td><td>行番号を調べたいセル。省略すると数式のあるセル自身の行番号を返す</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">引数は1つだけで、しかも省略可能です。スプレッドシートの関数の中でもトップクラスにシンプルな構文ですね。</p>



<h3 class="wp-block-heading"><span id="toc3">ROW()引数なしとROW(A1)の違い</span></h3>



<p class="wp-block-paragraph">ROW関数の使い方は大きく2つあります。</p>



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



<p class="wp-block-paragraph">引数なしで使うと、<strong>数式が入っているセルの行番号</strong>を返します。セルB5に入力すれば結果は「5」です。</p>



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



<p class="wp-block-paragraph">セル参照を指定すると、<strong>そのセルの行番号</strong>を返します。どのセルに入力しても結果は「1」です。</p>



<p class="wp-block-paragraph">範囲を指定した場合は、先頭行の番号だけが返ります。</p>



<pre class="wp-block-code"><code>=ROW(B3:B10)</code></pre>



<p class="wp-block-paragraph">この結果は「3」です。B3からB10の範囲のうち、先頭のB3の行番号が返る仕組みです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>ROW関数はGoogleスプレッドシートの全バージョンで使えます。Excelでもまったく同じ構文で動作しますよ。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc4">ROW()-offsetで崩れない連番を作る</span></h2>



<p class="wp-block-paragraph">ROW関数の最も実用的な使い方が、<strong>行の追加・削除に強い連番</strong>の作成です。</p>



<h3 class="wp-block-heading"><span id="toc5">行を追加・削除しても連番が維持される仕組み</span></h3>



<p class="wp-block-paragraph">手入力で「1, 2, 3&#8230;」と連番を振ると、途中に行を挿入したときに番号がズレます。ROW関数なら行番号をもとに計算するので、自動的に振り直されます。</p>



<p class="wp-block-paragraph">たとえば、A2セルからデータが始まる表で連番を振る場合です。</p>



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



<p class="wp-block-paragraph">A2セルに入力すると <code>2-1=1</code>、A3セルなら <code>3-1=2</code> になります。数式を下にコピーするだけで連番が完成します。</p>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/03_formula_row-renumber.png" alt="03 formula row renumber" /></figure>



<p class="wp-block-paragraph">途中に行を挿入しても、各セルのROW()の値が自動で変わるため、連番が崩れません。これが手入力との大きな違いです。</p>



<h3 class="wp-block-heading"><span id="toc6">表の開始行が1行目でない場合の対処法</span></h3>



<p class="wp-block-paragraph">実務では、表の上にタイトルやヘッダーが複数行あるケースが多いですよね。たとえばデータが5行目から始まる場合を考えてみましょう。</p>



<p class="wp-block-paragraph"><code>=ROW()-1</code> だと5行目のセルは「4」になってしまいます。こんなときは次の数式を使います。</p>



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



<p class="wp-block-paragraph"><code>$A$5</code> はデータ開始行のセルです。絶対参照にするのがポイントです。</p>



<figure class="wp-block-table"><table><thead><tr><th>セル位置</th><th>計算内容</th><th>結果</th></tr></thead><tbody><tr><td>5行目</td><td>5 &#8211; 5 + 1</td><td>1</td></tr><tr><td>6行目</td><td>6 &#8211; 5 + 1</td><td>2</td></tr><tr><td>7行目</td><td>7 &#8211; 5 + 1</td><td>3</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">この方法なら、表がどの行から始まっても正しい連番になります。行を挿入・削除しても自動で振り直されるので、メンテナンスフリーですよ。</p>



<p class="wp-block-paragraph">!<a href="https://mashukabu.com/_images/spreadsheet-row-function/04_result_row-renumber-offset.png/">_images/spreadsheet-row-function/04_result_row-renumber-offset.png</a></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>もうひとつの連番作成方法としてSEQUENCE関数があります。<code>=SEQUENCE(10)</code> で1から10までの連番を一括生成できます。ただし、ROW関数のほうが数式コピーで直感的に使えるので、まずはROW関数から覚えるのがおすすめです。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc7">INDEX+ROWの組み合わせ技</span></h2>



<h3 class="wp-block-heading"><span id="toc8">INDEX関数と組み合わせて動的参照を作る</span></h3>



<p class="wp-block-paragraph">INDEX関数は、指定した範囲から行番号・列番号で値を取り出す関数です。ROW関数と組み合わせると、<strong>行の位置に連動して参照先が自動的に変わる数式</strong>を作れます。</p>



<p class="wp-block-paragraph">たとえば、A1からA10に商品名が入っているとします。別の場所にこのリストを動的に参照したいケースを考えましょう。</p>



<pre class="wp-block-code"><code>=INDEX($A$1:$A$10, ROW())</code></pre>



<p class="wp-block-paragraph">この数式を1行目に入力すると、ROW()は「1」を返すのでA1の値が表示されます。2行目なら「2」でA2の値です。</p>



<p class="wp-block-paragraph">データの開始行がずれている場合は、オフセットを加えます。</p>



<pre class="wp-block-code"><code>=INDEX($A$1:$A$10, ROW()-ROW($D$1)+1)</code></pre>



<p class="wp-block-paragraph">D1セルから数式を入力し始める場合の例です。ROW()-ROW($D$1)+1 で常に1から始まる連番を作り、INDEXの行番号に渡しています。</p>



<p class="wp-block-paragraph">この組み合わせが活きる場面は次のとおりです。</p>



<ul class="wp-block-list"><li>元データの並び順を変えずに、別の場所で独自の一覧を作りたいとき</li><li>フィルタ条件に応じて表示するデータを切り替えたいとき</li><li>複数のシートから特定の行を動的に引っ張りたいとき</li></ul>



<p class="wp-block-paragraph">INDEX関数の詳しい使い方は「<a href="https://mashukabu.com/spreadsheet-index-function/">スプレッドシートのINDEX関数の使い方</a>」で解説しています。</p>



<h2 class="wp-block-heading"><span id="toc9">INDIRECT+ROWの組み合わせ技</span></h2>



<h3 class="wp-block-heading"><span id="toc10">文字列参照でシートをまたいだ動的参照</span></h3>



<p class="wp-block-paragraph">INDIRECT関数は、文字列をセル参照として解釈する関数です。ROW関数と組み合わせると、<strong>セルアドレスを文字列で動的に組み立てる</strong>ことができます。</p>



<p class="wp-block-paragraph">もっとも基本的なパターンはこちらです。</p>



<pre class="wp-block-code"><code>=INDIRECT(&quot;A&quot; &amp; ROW())</code></pre>



<p class="wp-block-paragraph">この数式をB3セルに入力すると、ROW()が「3」を返します。そのため <code>INDIRECT("A3")</code> となり、A3セルの値が表示されます。</p>



<p class="wp-block-paragraph">これだけだとあまりメリットを感じないかもしれませんが、シートをまたぐ参照で真価を発揮します。</p>



<pre class="wp-block-code"><code>=INDIRECT(&quot;'売上データ'!B&quot; &amp; ROW())</code></pre>



<p class="wp-block-paragraph">「売上データ」シートのB列から、現在の行番号に対応するセルの値を取得できます。</p>



<p class="wp-block-paragraph">さらに応用すると、シート名自体をセルから動的に取得することもできます。</p>



<pre class="wp-block-code"><code>=INDIRECT(&quot;'&quot; &amp; C1 &amp; &quot;'!B&quot; &amp; ROW())</code></pre>



<p class="wp-block-paragraph">C1セルに「4月売上」と入力されていれば、「4月売上」シートのB列を参照します。C1の値を変えるだけで参照先のシートが切り替わるので、月次レポートの作成に便利です。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>INDIRECT関数は文字列を参照に変換するため、参照先のシートが存在しないと <code>#REF!</code> エラーになります。シート名のスペルに注意してください。</p></blockquote>



<p class="wp-block-paragraph">INDIRECT関数の詳しい使い方は「<a href="https://mashukabu.com/spreadsheet-indirect-function/">スプレッドシートのINDIRECT関数の使い方</a>」を参考にしてみてください。</p>



<h2 class="wp-block-heading"><span id="toc11">ROWとCOLUMNの違いと使い分け</span></h2>



<p class="wp-block-paragraph">ROW関数と似た関数にCOLUMN関数があります。どちらもセルの位置を数値で返しますが、方向が異なります。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>ROW関数</th><th>COLUMN関数</th></tr></thead><tbody><tr><td>返す値</td><td>行番号（縦方向の位置）</td><td>列番号（横方向の位置）</td></tr><tr><td>構文</td><td><code>=ROW([セル参照])</code></td><td><code>=COLUMN([セル参照])</code></td></tr><tr><td>使用例</td><td><code>=ROW(A3)</code> → 3</td><td><code>=COLUMN(C1)</code> → 3</td></tr><tr><td>連番の方向</td><td>縦方向（下にコピー）</td><td>横方向（右にコピー）</td></tr><tr><td>よくある用途</td><td>縦の連番、行ベースの動的参照</td><td>横の連番、列ベースの動的参照</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">使い分けのポイントはシンプルです。</p>



<ul class="wp-block-list"><li><strong>縦方向の連番</strong> → ROW関数</li><li><strong>横方向の連番</strong> → COLUMN関数</li></ul>



<p class="wp-block-paragraph">たとえば、月ごとの列ヘッダー（1月、2月&#8230;）を自動で作るならCOLUMN関数が向いています。</p>



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



<p class="wp-block-paragraph">B1セルに入力して右にコピーすれば「1, 2, 3&#8230;」の連番になります。</p>



<p class="wp-block-paragraph">また、ROWS関数（範囲の行数を数える関数）との混同に注意してください。ROW関数は「<strong>何行目か</strong>」、ROWS関数は「<strong>何行あるか</strong>」を返す、まったく別の関数です。</p>



<pre class="wp-block-code"><code>=ROW(A3:A10)    → 3（先頭行の行番号）
=ROWS(A3:A10)   → 8（範囲の行数）</code></pre>



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



<p class="wp-block-paragraph">ROW関数自体は非常にシンプルなので、単独でエラーになることはほとんどありません。ただし、他の関数と組み合わせたときにエラーが出るケースがあります。</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>#VALUE!</code></td><td>ROW関数に不正な文字列を渡した</td><td>引数にはセル参照のみ指定する。文字列（<code>"A1"</code>など）は不可</td></tr><tr><td><code>#REF!</code>（INDIRECT併用時）</td><td>INDIRECT関数の参照先が存在しない</td><td>シート名やセルアドレスの文字列を確認する</td></tr><tr><td>連番が飛ぶ</td><td>非表示の行がある</td><td>フィルタで非表示にした行もROW関数は元の行番号を返す。SUBTOTAL関数と組み合わせて対処</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">特に注意したいのが「連番が飛ぶ」ケースです。フィルタで行を非表示にしても、ROW関数は元の行番号をそのまま返します。フィルタ後の見た目と連番が一致しないのは仕様です。</p>



<p class="wp-block-paragraph">フィルタ後に1から始まる連番が必要な場合は、SUBTOTAL関数との組み合わせを検討してみてください。ARRAYFORMULA関数を使う方法もありますよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>ROW関数の引数にセルアドレスの文字列を渡すのはよくある間違いです。<code>=ROW("A1")</code> はエラーになります。文字列をセル参照に変換したい場合は、INDIRECT関数を使いましょう。<code>=ROW(INDIRECT("A1"))</code> のように書けばOKです。</p></blockquote>



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



<p class="wp-block-paragraph">ROW関数は、セルの行番号を返すシンプルな関数です。単体で使うだけでなく、連番や動的参照の土台として幅広く活用できます。</p>



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



<ul class="wp-block-list"><li>ROW関数は引数なしで自分のセルの行番号、セル参照指定でそのセルの行番号を返す</li><li><code>=ROW()-ROW($開始セル)+1</code> で、表がどの行から始まっても正しい連番を作れる</li><li>行の追加・削除にも自動対応するので、手入力の連番より圧倒的にラク</li><li>INDEX関数と組み合わせれば、行位置に連動する動的な値の取得ができる</li><li>INDIRECT関数と組み合わせれば、シートをまたいだ動的参照も可能</li><li>ROW関数は「何行目か」、COLUMN関数は「何列目か」、ROWS関数は「何行あるか」</li></ul>



<p class="wp-block-paragraph">まずは <code>=ROW()-ROW($A$1)</code> の連番パターンから試してみてください。行の追加・削除のたびに番号を振り直す手間がなくなりますよ。</p>



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



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/spreadsheet-index-function/">スプレッドシートのINDEX関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-indirect-function/">スプレッドシートのINDIRECT関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-match-function/">スプレッドシートのMATCH関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-address-function/">スプレッドシートのADDRESS関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-offset-function/">スプレッドシートのOFFSET関数の使い方</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-row-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>VLOOKUP・XLOOKUP・INDEX MATCH使い分け完全ガイド｜もう迷わない選び方フロー付き</title>
		<link>https://mashukabu.com/excel-vlookup-xlookup-index-match-comparison/</link>
					<comments>https://mashukabu.com/excel-vlookup-xlookup-index-match-comparison/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Wed, 18 Mar 2026 12:29:57 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[INDEX関数]]></category>
		<category><![CDATA[MATCH関数]]></category>
		<category><![CDATA[VLOOKUP関数]]></category>
		<category><![CDATA[XLOOKUP関数]]></category>
		<category><![CDATA[検索関数]]></category>
		<category><![CDATA[関数比較]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4029</guid>

					<description><![CDATA[VLOOKUP・XLOOKUP・INDEX/MATCHの違いをバージョン互換性・検索方向・エラー処理・処理速度の4軸で比較。あなたのExcel環境に合った関数が一目でわかる選び方フローチャート付き。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「VLOOKUPとXLOOKUPって何が違うの？」と迷ったことはありませんか。「INDEX+MATCHのほうがいい」なんて声も聞きますよね。</p>



<p class="wp-block-paragraph">Excelの検索関数は選択肢が多いぶん、どれを覚えるべきか迷いますよね。間違った関数を選ぶと、あとから数式を全部書き直すハメになることも。</p>



<p class="wp-block-paragraph">この記事では、3つの検索関数の違いを4つの比較軸で整理します。記事の最後には「あなたが今日から使うべき関数」がわかる選び方フローも用意しました。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>この記事は次のような人におすすめ</strong><br>&#8211; VLOOKUPしか使ったことがない人<br>&#8211; XLOOKUPに乗り換えるべきか迷っている人<br>&#8211; INDEX+MATCHの実力を知りたい人</p></blockquote>




  <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">VLOOKUP・XLOOKUP・INDEX/MATCHの違い【結論から】</a><ol><li><a href="#toc2" tabindex="0">3関数の機能比較表</a></li><li><a href="#toc3" tabindex="0">今日から使うべき検索関数がわかる選び方フロー</a></li></ol></li><li><a href="#toc4" tabindex="0">VLOOKUP関数の特徴とメリット・デメリット</a><ol><li><a href="#toc5" tabindex="0">VLOOKUPの基本構文</a></li><li><a href="#toc6" tabindex="0">VLOOKUPのメリット</a></li><li><a href="#toc7" tabindex="0">VLOOKUPのデメリット</a></li></ol></li><li><a href="#toc8" tabindex="0">XLOOKUP関数の特徴とメリット・デメリット</a><ol><li><a href="#toc9" tabindex="0">XLOOKUPの基本構文</a></li><li><a href="#toc10" tabindex="0">XLOOKUPのメリット</a></li><li><a href="#toc11" tabindex="0">XLOOKUPのデメリット</a></li></ol></li><li><a href="#toc12" tabindex="0">INDEX/MATCH関数の特徴とメリット・デメリット</a><ol><li><a href="#toc13" tabindex="0">INDEX/MATCHの基本構文</a></li><li><a href="#toc14" tabindex="0">INDEX/MATCHのメリット</a></li><li><a href="#toc15" tabindex="0">INDEX/MATCHのデメリット</a></li></ol></li><li><a href="#toc16" tabindex="0">4つの比較軸で徹底比較</a><ol><li><a href="#toc17" tabindex="0">比較1: バージョン互換性</a></li><li><a href="#toc18" tabindex="0">比較2: 検索方向（左方向検索への対応）</a></li><li><a href="#toc19" tabindex="0">比較3: エラー処理の手間</a></li><li><a href="#toc20" tabindex="0">比較4: 処理速度（大量データ時の違い）</a></li></ol></li><li><a href="#toc21" tabindex="0">よくある失敗パターンと対処法</a><ol><li><a href="#toc22" tabindex="0">パターン1: #N/Aエラーが出る</a></li><li><a href="#toc23" tabindex="0">パターン2: VLOOKUPの列番号ずれを防ぐ方法</a></li><li><a href="#toc24" tabindex="0">パターン3: XLOOKUPが使えないときの代替策</a></li></ol></li><li><a href="#toc25" tabindex="0">まとめ</a><ol><li><a href="#toc26" tabindex="0">関連記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">VLOOKUP・XLOOKUP・INDEX/MATCHの違い【結論から】</span></h2>



<p class="wp-block-paragraph">最初に結論をお伝えします。3つの関数の使い分けは次のとおりです。</p>



<ul class="wp-block-list"><li><strong>Microsoft 365 または Excel 2021 を使っている</strong> → XLOOKUPが最適</li><li><strong>Excel 2019以前、または古いバージョンとファイルを共有する</strong> → INDEX+MATCH が安心</li><li><strong>シンプルな右方向の検索だけ</strong> → VLOOKUPでも十分</li></ul>



<h3 class="wp-block-heading"><span id="toc2">3関数の機能比較表</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>VLOOKUP</th><th>XLOOKUP</th><th>INDEX+MATCH</th></tr></thead><tbody><tr><td>対応バージョン</td><td>全バージョン</td><td>Excel 2021 / 365</td><td>全バージョン</td></tr><tr><td>検索方向</td><td>右方向のみ</td><td>左右どちらも</td><td>左右どちらも</td></tr><tr><td>エラー処理</td><td>IFERRORが必要</td><td>第4引数で指定可</td><td>IFERRORが必要</td></tr><tr><td>列挿入への耐性</td><td>弱い（列番号ずれ）</td><td>強い</td><td>強い</td></tr><tr><td>構文の長さ</td><td>短い（4引数）</td><td>短い（実質3引数）</td><td>長い（2関数ネスト）</td></tr><tr><td>学習コスト</td><td>低い</td><td>低い</td><td>やや高い</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc3">今日から使うべき検索関数がわかる選び方フロー</span></h3>



<p class="wp-block-paragraph">自分の環境に合った関数を判定してみてください。</p>



<p class="wp-block-paragraph"><strong>ステップ1: Excelのバージョンを確認</strong></p>



<p class="wp-block-paragraph">お使いのExcelはMicrosoft 365またはExcel 2021ですか？</p>



<ul class="wp-block-list"><li><strong>はい</strong> → ステップ2へ</li><li><strong>いいえ（Excel 2019以前）</strong> → ステップ3へ</li><li><strong>わからない</strong> → 「ファイル」→「アカウント」で確認できます</li></ul>



<p class="wp-block-paragraph"><strong>ステップ2: ファイルを共有する相手のバージョン</strong></p>



<p class="wp-block-paragraph">古いバージョンのExcelを使う人とファイルを共有しますか？</p>



<ul class="wp-block-list"><li><strong>共有しない、または相手もMicrosoft 365</strong> → <strong>XLOOKUPを使いましょう</strong></li><li><strong>共有する（相手がExcel 2019以前）</strong> → ステップ3へ</li></ul>



<p class="wp-block-paragraph"><strong>ステップ3: 検索方向の確認</strong></p>



<p class="wp-block-paragraph">検索値より左側の列から値を取得する必要がありますか？</p>



<ul class="wp-block-list"><li><strong>はい（左方向の検索が必要）</strong> → <strong>INDEX+MATCHを使いましょう</strong></li><li><strong>いいえ（右方向だけでOK）</strong> → <strong>VLOOKUPでも対応できます</strong></li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>「今からExcelを本気で学ぶなら、まずどれ？」と聞かれたら、答えはXLOOKUPです。Microsoft 365の普及率は年々上がっています。ただし社内の環境がExcel 2019以前の場合は、INDEX+MATCHを覚えておくと安心です。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc4">VLOOKUP関数の特徴とメリット・デメリット</span></h2>



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



<pre class="wp-block-code"><code>=VLOOKUP(検索値, 範囲, 列番号, [検索の型])</code></pre>



<p class="wp-block-paragraph">たとえば、社員番号「A003」の名前を取得したい場合です。</p>



<pre class="wp-block-code"><code>=VLOOKUP(&quot;A003&quot;, A1:C10, 3, FALSE)</code></pre>



<p class="wp-block-paragraph">A1:C10の範囲でA列から「A003」を探します。見つかったら同じ行の3列目の値を返します。</p>



<h3 class="wp-block-heading"><span id="toc6">VLOOKUPのメリット</span></h3>



<ul class="wp-block-list"><li><strong>知名度が圧倒的</strong>: Excel入門書やネット記事で最も情報が多い</li><li><strong>全バージョンで動く</strong>: Excel 2007以降ならどの環境でも使える</li><li><strong>構文がシンプル</strong>: 引数4つで覚えやすい</li></ul>



<h3 class="wp-block-heading"><span id="toc7">VLOOKUPのデメリット</span></h3>



<p class="wp-block-paragraph">VLOOKUPには2つの弱点があります。</p>



<p class="wp-block-paragraph"><strong>1. 左方向に検索できない</strong></p>



<p class="wp-block-paragraph">VLOOKUPは範囲の一番左の列で検索します。検索列より左の値は取得できません。</p>



<p class="wp-block-paragraph">たとえばB列の商品コードで検索してA列の商品名を取得する、ということができません。この場合は列の並びを変えるか、別の関数を使う必要があります。</p>



<p class="wp-block-paragraph"><strong>2. 列番号がハードコードでずれやすい</strong></p>



<p class="wp-block-paragraph">第3引数の列番号は「何列目を返すか」を数値で指定します。あとから列を挿入すると番号がずれてしまいます。</p>



<p class="wp-block-paragraph">数式を100個コピーしたあとに列を追加すると、100個すべて修正が必要です。大きな表ほどリスクが高くなります。</p>



<p class="wp-block-paragraph">詳しくは「<a href="https://mashukabu.com/excel-function-howto-use-vlookup/">VLOOKUP関数の使い方</a>」をご覧ください。</p>



<h2 class="wp-block-heading"><span id="toc8">XLOOKUP関数の特徴とメリット・デメリット</span></h2>



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



<pre class="wp-block-code"><code>=XLOOKUP(検索値, 検索範囲, 戻り範囲, [見つからない場合], [一致モード], [検索モード])</code></pre>



<p class="wp-block-paragraph">同じく社員番号「A003」の名前を取得する場合です。</p>



<pre class="wp-block-code"><code>=XLOOKUP(&quot;A003&quot;, A1:A10, C1:C10)</code></pre>



<p class="wp-block-paragraph">VLOOKUPとの違いが一目でわかりますよね。列番号ではなく「どの列を返すか」を直接指定しています。</p>



<h3 class="wp-block-heading"><span id="toc10">XLOOKUPのメリット</span></h3>



<ul class="wp-block-list"><li><strong>左方向の検索ができる</strong>: 検索範囲と戻り範囲を自由に指定可</li><li><strong>エラー処理が組み込み</strong>: 第4引数に「見つからないときの値」を直接指定可</li><li><strong>列番号がないのでずれない</strong>: 列の挿入・削除に強い</li></ul>



<p class="wp-block-paragraph">XLOOKUPでエラー処理を組み込む例です。</p>



<pre class="wp-block-code"><code>=XLOOKUP(&quot;A003&quot;, A1:A10, C1:C10, &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">見つからない場合は「該当なし」と表示されます。VLOOKUPのようにIFERROR関数で囲む必要がありません。</p>



<h3 class="wp-block-heading"><span id="toc11">XLOOKUPのデメリット</span></h3>



<p class="wp-block-paragraph"><strong>1. 対応バージョンが限られる</strong></p>



<p class="wp-block-paragraph">XLOOKUPはExcel 2021およびMicrosoft 365専用です。Excel 2019以前では <code>#NAME?</code> エラーになります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>社内でExcelのバージョンが混在している場合は要注意です。XLOOKUPで作ったファイルを古いバージョンで開くと、数式がすべてエラーになります。</p></blockquote>



<p class="wp-block-paragraph"><strong>2. ネット上の情報がまだ少ない</strong></p>



<p class="wp-block-paragraph">VLOOKUPと比べると解説記事や質問サイトの情報量が少なめです。困ったときに検索で解決しにくい場面があります。</p>



<p class="wp-block-paragraph">詳しくは「<a href="https://mashukabu.com/excel-function-howto-use-xlookup/">XLOOKUP関数の使い方</a>」をご覧ください。</p>



<h2 class="wp-block-heading"><span id="toc12">INDEX/MATCH関数の特徴とメリット・デメリット</span></h2>



<h3 class="wp-block-heading"><span id="toc13">INDEX/MATCHの基本構文</span></h3>



<p class="wp-block-paragraph">INDEX関数とMATCH関数を組み合わせて使います。</p>



<pre class="wp-block-code"><code>=INDEX(戻り範囲, MATCH(検索値, 検索範囲, 0))</code></pre>



<p class="wp-block-paragraph">社員番号「A003」の名前を取得する場合です。</p>



<pre class="wp-block-code"><code>=INDEX(C1:C10, MATCH(&quot;A003&quot;, A1:A10, 0))</code></pre>



<p class="wp-block-paragraph">MATCH関数がA列から「A003」の行位置を取得します。INDEX関数がC列の同じ行の値を返します。</p>



<h3 class="wp-block-heading"><span id="toc14">INDEX/MATCHのメリット</span></h3>



<ul class="wp-block-list"><li><strong>全バージョン対応</strong>: Excel 2007以降ならどこでも動く</li><li><strong>左方向の検索ができる</strong>: 検索範囲と戻り範囲が独立</li><li><strong>列の挿入・削除に強い</strong>: 列番号を使わないのでずれない</li><li><strong>処理速度が速い</strong>: 大量データではVLOOKUPより高速</li></ul>



<h3 class="wp-block-heading"><span id="toc15">INDEX/MATCHのデメリット</span></h3>



<p class="wp-block-paragraph"><strong>1. 数式が長くなる</strong></p>



<p class="wp-block-paragraph">2つの関数をネストするので、数式が長くなります。慣れるまでは書き方に戸惑うかもしれません。</p>



<p class="wp-block-paragraph"><strong>2. 学習コストがやや高い</strong></p>



<p class="wp-block-paragraph">INDEX関数とMATCH関数の2つを理解する必要があります。VLOOKUPやXLOOKUPが1つの関数で完結するのに対し、少しハードルが上がります。</p>



<p class="wp-block-paragraph">それぞれの詳しい使い方は以下の記事で解説しています。</p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-index/">INDEX関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-match/">MATCH関数の使い方</a></li></ul>



<h2 class="wp-block-heading"><span id="toc16">4つの比較軸で徹底比較</span></h2>



<p class="wp-block-paragraph">ここからは、3つの関数を4つの軸で詳しく比較していきます。</p>



<h3 class="wp-block-heading"><span id="toc17">比較1: バージョン互換性</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>Excel 2016</th><th>Excel 2019</th><th>Excel 2021</th><th>Microsoft 365</th></tr></thead><tbody><tr><td>VLOOKUP</td><td>使える</td><td>使える</td><td>使える</td><td>使える</td></tr><tr><td>XLOOKUP</td><td>使えない</td><td>使えない</td><td>使える</td><td>使える</td></tr><tr><td>INDEX+MATCH</td><td>使える</td><td>使える</td><td>使える</td><td>使える</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">XLOOKUPだけがExcel 2021以降に限定されています。社内でバージョンが統一されていない場合は、VLOOKUPかINDEX+MATCHを選んでください。</p>



<h3 class="wp-block-heading"><span id="toc18">比較2: 検索方向（左方向検索への対応）</span></h3>



<p class="wp-block-paragraph">VLOOKUPは範囲の最左列で検索し、右方向にしか値を返せません。</p>



<p class="wp-block-paragraph">たとえば次のような表があるとします。</p>



<figure class="wp-block-table"><table><thead><tr><th>A列（商品名）</th><th>B列（商品コード）</th><th>C列（価格）</th></tr></thead><tbody><tr><td>りんご</td><td>F001</td><td>150</td></tr><tr><td>バナナ</td><td>F002</td><td>100</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">「商品コード F001 の商品名を知りたい」場合です。VLOOKUPではB列で検索してA列（左側）を返せません。</p>



<ul class="wp-block-list"><li><strong>VLOOKUP</strong>: 不可（補助列の追加が必要）</li><li><strong>XLOOKUP</strong>: <code>=XLOOKUP("F001", B:B, A:A)</code> で簡単にできる</li><li><strong>INDEX+MATCH</strong>: <code>=INDEX(A:A, MATCH("F001", B:B, 0))</code> でできる</li></ul>



<h3 class="wp-block-heading"><span id="toc19">比較3: エラー処理の手間</span></h3>



<p class="wp-block-paragraph">検索値が見つからない場合の動作を比較します。</p>



<p class="wp-block-paragraph"><strong>VLOOKUPの場合（IFERROR関数が必要）</strong></p>



<pre class="wp-block-code"><code>=IFERROR(VLOOKUP(&quot;A999&quot;, A1:C10, 3, FALSE), &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph"><strong>XLOOKUPの場合（第4引数で指定）</strong></p>



<pre class="wp-block-code"><code>=XLOOKUP(&quot;A999&quot;, A1:A10, C1:C10, &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph"><strong>INDEX+MATCHの場合（IFERROR関数が必要）</strong></p>



<pre class="wp-block-code"><code>=IFERROR(INDEX(C1:C10, MATCH(&quot;A999&quot;, A1:A10, 0)), &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">XLOOKUPが最もシンプルです。エラー処理を関数内で完結できるのは大きなメリットです。</p>



<h3 class="wp-block-heading"><span id="toc20">比較4: 処理速度（大量データ時の違い）</span></h3>



<p class="wp-block-paragraph">数万行を超えるデータで検索する場合、処理速度に差が出ます。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>速度の傾向</th><th>理由</th></tr></thead><tbody><tr><td>VLOOKUP</td><td>やや遅い</td><td>範囲全体を保持するためメモリ効率が低い</td></tr><tr><td>XLOOKUP</td><td>速い</td><td>検索範囲と戻り範囲が分離しており効率的</td></tr><tr><td>INDEX+MATCH</td><td>速い</td><td>MATCHが行位置だけを返すため軽量</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">体感できるほどの差が出るのは、数万行以上の表で大量に数式を使う場合です。数百行程度なら速度差はほぼ気になりません。</p>



<h2 class="wp-block-heading"><span id="toc21">よくある失敗パターンと対処法</span></h2>



<p class="wp-block-paragraph">3つの関数で起きやすいトラブルをまとめました。</p>



<h3 class="wp-block-heading"><span id="toc22">パターン1: #N/Aエラーが出る</span></h3>



<p class="wp-block-paragraph">3つの関数に共通する、最も多いエラーです。</p>



<figure class="wp-block-table"><table><thead><tr><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>検索値のスペルミス</td><td>検索値と表の値を目視で確認する</td></tr><tr><td>余分なスペースが入っている</td><td><a href="https://mashukabu.com/excel-function-howto-use-trim/">TRIM関数</a>で空白を除去する</td></tr><tr><td>全角・半角の不一致</td><td>ASC関数で半角に統一する</td></tr><tr><td>検索の型がTRUE（近似一致）</td><td>FALSEまたは0を指定して完全一致にする</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">エラー処理には<a href="https://mashukabu.com/excel-function-howto-use-iferror/">IFERROR関数</a>が便利です。#N/Aだけ処理したい場合は<a href="https://mashukabu.com/excel-function-howto-use-ifna/">IFNA関数</a>もおすすめです。</p>



<h3 class="wp-block-heading"><span id="toc23">パターン2: VLOOKUPの列番号ずれを防ぐ方法</span></h3>



<p class="wp-block-paragraph">VLOOKUPの第3引数に数値を直接書くと、列の追加でずれます。MATCH関数を使って列番号を自動取得する方法があります。</p>



<pre class="wp-block-code"><code>=VLOOKUP(&quot;A003&quot;, A1:E10, MATCH(&quot;価格&quot;, A1:E1, 0), FALSE)</code></pre>



<p class="wp-block-paragraph">ヘッダー行から「価格」列の位置を自動で取得しています。列を挿入しても数式がずれません。</p>



<p class="wp-block-paragraph">ただしここまでするなら、INDEX+MATCHに切り替えるほうが合理的です。</p>



<h3 class="wp-block-heading"><span id="toc24">パターン3: XLOOKUPが使えないときの代替策</span></h3>



<p class="wp-block-paragraph">Excel 2019以前で <code>#NAME?</code> エラーが出る場合です。XLOOKUPの代わりにINDEX+MATCHを使いましょう。</p>



<p class="wp-block-paragraph">XLOOKUP → INDEX+MATCHの書き換え例です。</p>



<pre class="wp-block-code"><code>=XLOOKUP(&quot;A003&quot;, A1:A10, C1:C10, &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">上の数式はINDEX+MATCHで書くとこうなります。</p>



<pre class="wp-block-code"><code>=IFERROR(INDEX(C1:C10, MATCH(&quot;A003&quot;, A1:A10, 0)), &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">機能は同じです。XLOOKUPのほうが短いですが、INDEX+MATCHなら全バージョンで動きます。</p>



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



<p class="wp-block-paragraph">VLOOKUP・XLOOKUP・INDEX/MATCHの違いを振り返ります。</p>



<figure class="wp-block-table"><table><thead><tr><th>選ぶ基準</th><th>おすすめの関数</th></tr></thead><tbody><tr><td>Excel 2021 / 365 でシンプルに使いたい</td><td>XLOOKUP</td></tr><tr><td>全バージョン対応 + 左方向検索が必要</td><td>INDEX+MATCH</td></tr><tr><td>シンプルな右方向検索だけ</td><td>VLOOKUP</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">迷ったらまずXLOOKUPを試してみてください。もしバージョンの制約がある場合は、INDEX+MATCHを覚えておけば困ることはありません。VLOOKUPは既存の数式を読み解くためにも知っておくと安心です。</p>



<p class="wp-block-paragraph">3つとも「表からデータを探す」という目的は同じです。環境と用途に合った関数を選んでいきましょう。</p>



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-vlookup/">ExcelのVLOOKUP関数の使い方｜引数・エラー対処・INDEX+MATCHとの使い分けまで</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-xlookup/">ExcelのXLOOKUP関数の使い方｜VLOOKUPとの違い・エラー対処まで解説</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-index/">INDEX関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-match/">ExcelのMATCH関数の使い方｜検索値の位置を取得する方法</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-xmatch/">XMATCH関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-iferror/">IFERROR関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-ifna/">IFNA関数の使い方</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-vlookup-xlookup-index-match-comparison/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
