<?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>VLOOKUP関数 &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/vlookup%E9%96%A2%E6%95%B0/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Thu, 23 Apr 2026 11:33:19 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://mashukabu.com/wp-content/uploads/2022/04/cropped-site-icon-32x32.png</url>
	<title>VLOOKUP関数 &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>ExcelのFALSE関数の使い方｜偽の値を返す・TRUEとの使い分け</title>
		<link>https://mashukabu.com/excel-function-howto-use-false/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-false/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sun, 12 Apr 2026 12:10:36 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[FALSE関数]]></category>
		<category><![CDATA[IF関数]]></category>
		<category><![CDATA[TRUE関数]]></category>
		<category><![CDATA[VLOOKUP関数]]></category>
		<category><![CDATA[論理値]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=5905</guid>

					<description><![CDATA[ExcelのFALSE関数の使い方を基本から実践まで解説します。構文と引数、VLOOKUP関数の第4引数での完全一致指定、IF関数の第3引数、条件付き書式での活用法、TRUE関数との使い分け、FALSE()と直接入力FALSEの違いまで、実例付きで紹介します。]]></description>
										<content:encoded><![CDATA[
<p>「ExcelのFALSE関数って、何のためにあるの?」と不思議に思ったことはありませんか。セルに直接「FALSE」と入力すれば済むのに、わざわざ関数が用意されているのは謎ですよね。</p>



<p>確かにFALSE関数そのものを単独で使う機会は少ないです。でも、論理値FALSEの仕組みを理解しておくと、VLOOKUP関数の完全一致指定やIF関数の条件分岐、条件付き書式など、実務で頻出する場面でスッと使いこなせるようになりますよ。</p>



<p>この記事では、ExcelのFALSE関数の基本構文から実務での活用シーン、TRUE関数との使い分けまで、実例付きでわかりやすく解説します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-1" checked><label class="toc-title" for="toc-checkbox-1">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ExcelのFALSE関数とは?</a></li><li><a href="#toc2" tabindex="0">FALSE関数の書き方（構文と引数）</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">FALSE関数の基本的な使い方</a></li><li><a href="#toc6" tabindex="0">FALSE関数が実務で活躍するシーン</a><ol><li><a href="#toc7" tabindex="0">VLOOKUP関数の第4引数（完全一致）</a></li><li><a href="#toc8" tabindex="0">MATCH関数の第3引数（完全一致）</a></li><li><a href="#toc9" tabindex="0">IF関数の第3引数（偽の場合）</a></li><li><a href="#toc10" tabindex="0">条件付き書式の数式</a></li><li><a href="#toc11" tabindex="0">データ入力規則での活用</a></li><li><a href="#toc12" tabindex="0">論理値の数値変換</a></li></ol></li><li><a href="#toc13" tabindex="0">FALSE()とFALSEの違い・TRUE関数との使い分け</a><ol><li><a href="#toc14" tabindex="0">FALSE()とFALSEは同じ結果になる</a></li><li><a href="#toc15" tabindex="0">どちらを使うべきか</a></li><li><a href="#toc16" tabindex="0">TRUE関数との対称性</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">VLOOKUP第4引数の省略ミス</a></li></ol></li><li><a href="#toc20" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

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



<p>ExcelのFALSE関数は、論理値の「FALSE」を返す関数です。読み方は「フォールス関数」で、英語の false（偽）がそのまま関数名になっています。</p>



<p>やることは本当にシンプルで、呼び出すと論理値のFALSEを返します。それだけの関数です。</p>



<p>では、なぜこんなシンプルな関数がExcelに用意されているのでしょうか。理由は歴史的な互換性にあります。Excelの前身にあたる表計算ソフト「Lotus 1-2-3」では、論理値を関数として記述する必要がありました。ExcelはLotus 1-2-3との互換性を維持するために、FALSE関数とTRUE関数を用意したのです。</p>



<p>現在のExcelではセルに直接「FALSE」と入力すれば論理値として認識されます。そのためFALSE関数を単独で使う機会は少ないのですが、論理値FALSEそのものはExcelの様々な機能で重要な役割を担っていますよ。</p>



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



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



<p>FALSE関数の構文はとてもシンプルです。</p>



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



<p>カッコの中には何も入れません。これだけでセルに「FALSE」と表示されます。</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>&#8211;</td><td>この関数に引数はありません</td></tr></tbody></table></figure>



<p>引数がない関数は珍しいですが、FALSE関数はまさにそのひとつです。カッコの中を空にしたまま使います。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>対応環境: Excel 2007以降の全バージョン、Microsoft 365、Googleスプレッドシートで使用できます。</p></blockquote>



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



<p>まずは一番シンプルな使い方から見てみましょう。</p>



<p>任意のセル（たとえばA1）に次の数式を入力します。</p>



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



<p>Enterキーを押すと、セルに「FALSE」と表示されます。</p>



<p>ここで大事なポイントがあります。この「FALSE」は文字列ではなく論理値だということです。見た目は同じでも、文字列の &#8220;FALSE&#8221; と論理値の FALSE は別物なので、覚えておいてくださいね。</p>



<p>論理値かどうかを確認したいときは、B1セルに次の数式を入力してみてください。</p>



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



<p>結果がTRUEと表示されれば、A1の値は論理値です。詳しくは<a href="https://mashukabu.com/excel-function-howto-use-islogical/">ExcelのISLOGICAL関数の使い方｜TRUE/FALSEの論理値を判定する方法</a>で解説しています。</p>



<h2 class="wp-block-heading"><span id="toc6">FALSE関数が実務で活躍するシーン</span></h2>



<p>論理値FALSEが実際に役立つ場面を見ていきましょう。ここがこの記事の本題です。</p>



<h3 class="wp-block-heading"><span id="toc7">VLOOKUP関数の第4引数（完全一致）</span></h3>



<p>FALSE関数の使いどころとして、もっとも有名なのがVLOOKUP関数の第4引数です。</p>



<p>VLOOKUP関数は第4引数に検索の型を指定しますが、ここにFALSEを指定すると「完全一致」で検索できます。</p>



<pre class="wp-block-code"><code>=VLOOKUP(A2, 商品マスタ!A:C, 3, FALSE)</code></pre>



<p>この数式は、A2の値と完全に一致するものを商品マスタから探して、3列目の値を返します。ここをTRUE（または省略）にすると「近似一致」になってしまい、意図しない値が返ることがあるので要注意です。</p>



<p>実務でVLOOKUP関数を使うときは、ほぼ100%この「完全一致」を指定します。ここが曖昧だと集計ミスにつながるので、明示的にFALSEと書く習慣をつけておくと安心ですよ。</p>



<p>VLOOKUP関数の詳しい使い方は、<a href="https://mashukabu.com/excel-function-howto-use-vlookup/">ExcelのVLOOKUP関数の使い方｜基本から応用まで実例で解説</a>で解説しています。</p>



<h3 class="wp-block-heading"><span id="toc8">MATCH関数の第3引数（完全一致）</span></h3>



<p>MATCH関数にも似た仕組みがあります。第3引数に0（またはFALSE相当）を指定すると完全一致検索になります。</p>



<pre class="wp-block-code"><code>=MATCH(&quot;りんご&quot;, A1:A10, 0)</code></pre>



<p>MATCH関数の第3引数は数値で指定するのが一般的ですが、論理値の考え方（完全一致=厳密な判定）はVLOOKUP関数と共通しています。</p>



<h3 class="wp-block-heading"><span id="toc9">IF関数の第3引数（偽の場合）</span></h3>



<p>IF関数の第3引数は「条件を満たさない場合に返す値」を指定する引数です。ここにFALSEを返したいケースがあります。</p>



<pre class="wp-block-code"><code>=IF(A1&gt;=100000, TRUE(), FALSE())</code></pre>



<p>この数式はA1が100,000以上なら「TRUE」、未満なら「FALSE」を返します。</p>



<p>ただし、実はこの書き方はもっとシンプルにできます。</p>



<pre class="wp-block-code"><code>=A1&gt;=100000</code></pre>



<p>比較演算子だけで、結果は自動的に論理値TRUE/FALSEになります。IF関数で明示的にFALSE()を返す必要はないんですね。</p>



<p>それでもIF関数の中で <code>FALSE()</code> や <code>FALSE</code> を使いたくなるのは、「条件を満たさなかったら何もしない」という意図を明示したいときです。可読性を優先する場合の書き方として覚えておきましょう。</p>



<h3 class="wp-block-heading"><span id="toc10">条件付き書式の数式</span></h3>



<p>条件付き書式のルールをカスタム数式で設定するとき、「常にFALSEを返す数式」を使って一時的にルールを無効化するテクニックがあります。</p>



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



<p>この数式を条件付き書式のルールに設定すると、どのセルにも書式が適用されません。ルールを削除せずに一時的にオフにしたいときに便利です。</p>



<p>逆に「常にTRUE」を返したい場合は、<a href="https://mashukabu.com/excel-function-howto-use-true/">ExcelのTRUE関数の使い方｜論理値TRUEの基本と活用法</a>の記事も参考にしてみてくださいね。</p>



<h3 class="wp-block-heading"><span id="toc11">データ入力規則での活用</span></h3>



<p>データ入力規則のカスタム数式でも、論理値FALSEが登場します。</p>



<p>データの入力規則ではカスタム数式がTRUEを返すと入力が許可され、FALSEを返すと入力が拒否される仕組みです。たとえば「A列には入力できないようにしたい」場合、次のように設定します。</p>



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



<p>これでA列のセルに値を入力しようとするとエラーになります。シートの一部を「読み取り専用」にしたいときの簡易的な手段として使えますよ。</p>



<h3 class="wp-block-heading"><span id="toc12">論理値の数値変換</span></h3>



<p>Excelでは、TRUEは数値の1、FALSEは数値の0として計算に使えます。この特性は集計で役立ちます。</p>



<figure class="wp-block-table"><table><thead><tr><th>数式</th><th>結果</th><th>説明</th></tr></thead><tbody><tr><td><code>=FALSE()*1</code></td><td>0</td><td>掛け算で数値に変換</td></tr><tr><td><code>=FALSE()+0</code></td><td>0</td><td>足し算でも変換できる</td></tr><tr><td><code>=--FALSE()</code></td><td>0</td><td>ダブルマイナスでも変換できる</td></tr><tr><td><code>=TRUE()+FALSE()</code></td><td>1</td><td>論理値同士の足し算も可能</td></tr></tbody></table></figure>



<p>ダブルマイナス（<code>--</code>）は短くて便利な書き方です。マイナスを2回かけることで、論理値をいったん数値に変換する仕組みになっています。</p>



<p>たとえばSUMPRODUCT関数でFALSEを含む条件式を使うと、条件に合わない行は自動的に0として扱われます。</p>



<pre class="wp-block-code"><code>=SUMPRODUCT((A1:A10=&quot;完了&quot;)*1, B1:B10)</code></pre>



<p>この数式は、A列が「完了」でない行（FALSEの行）が0として扱われるため、条件に合う行だけの合計が求められます。</p>



<h2 class="wp-block-heading"><span id="toc13">FALSE()とFALSEの違い・TRUE関数との使い分け</span></h2>



<p>ここはよく聞かれるポイントです。</p>



<h3 class="wp-block-heading"><span id="toc14">FALSE()とFALSEは同じ結果になる</span></h3>



<p>結論から言うと、<strong>=FALSE() と FALSE は同じ結果になります</strong>。どちらもセルに論理値のFALSEが入ります。</p>



<figure class="wp-block-table"><table><thead><tr><th>入力方法</th><th>セルの表示</th><th>値の種類</th><th>備考</th></tr></thead><tbody><tr><td><code>=FALSE()</code></td><td>FALSE</td><td>論理値</td><td>関数として入力</td></tr><tr><td>FALSE（直接入力）</td><td>FALSE</td><td>論理値</td><td>Excelが自動認識</td></tr><tr><td>&#8220;FALSE&#8221;（ダブルクォーテーション付き）</td><td>FALSE</td><td>文字列</td><td>見た目は同じだが別物</td></tr></tbody></table></figure>



<p>注意したいのは3つ目のパターンです。ダブルクォーテーションで囲むと文字列になってしまいます。見た目は同じ「FALSE」でも、論理値と文字列では他の関数と組み合わせたときの動作が変わるので気をつけてくださいね。</p>



<h3 class="wp-block-heading"><span id="toc15">どちらを使うべきか</span></h3>



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



<ul class="wp-block-list"><li><strong>通常の数式の中</strong>: <code>FALSE</code> でOK（短くて読みやすい）</li><li><strong>他の表計算ソフトとの互換性を意識する場合</strong>: <code>FALSE()</code> と書いておくと安心</li><li><strong>VLOOKUPの第4引数</strong>: どちらでも動くが、<code>FALSE</code> が一般的</li></ul>



<p>普段の業務では <code>FALSE</code> の直接入力で問題ありません。ただ、古いワークシートを扱うときや関数として明示したいときは <code>FALSE()</code> を選ぶとよいでしょう。</p>



<h3 class="wp-block-heading"><span id="toc16">TRUE関数との対称性</span></h3>



<p>FALSE関数にはTRUE関数という「対」の関数があります。両者は完全に対称で、役割も構文もそっくりです。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>TRUE関数</th><th>FALSE関数</th></tr></thead><tbody><tr><td>戻り値</td><td>論理値TRUE（1）</td><td>論理値FALSE（0）</td></tr><tr><td>引数</td><td>なし</td><td>なし</td></tr><tr><td>VLOOKUP第4引数</td><td>近似一致</td><td>完全一致</td></tr><tr><td>条件付き書式</td><td>常に適用</td><td>常に非適用</td></tr></tbody></table></figure>



<p>特にVLOOKUP関数の第4引数では、TRUEとFALSEで動作が大きく変わります。完全一致したいのにうっかりTRUEを指定すると、近いけど違うデータが返ってきて集計ミスにつながるので要注意です。</p>



<p>TRUE関数の詳しい使い方は、<a href="https://mashukabu.com/excel-function-howto-use-true/">ExcelのTRUE関数の使い方｜論理値TRUEの基本と活用法</a>で解説しています。</p>



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



<h3 class="wp-block-heading"><span id="toc18">文字列と論理値の混同</span></h3>



<p>セルに文字列の &#8220;FALSE&#8221; が入っているのに論理値として扱おうとするケースはよくあるミスです。</p>



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



<p>この数式は論理値FALSEだけをカウントします。文字列の&#8221;FALSE&#8221;はカウントされません。もし文字列も含めて数えたい場合は、次のように書きます。</p>



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



<p>論理値か文字列かの判別に迷ったときは、ISLOGICAL関数で確認するとミスを防げますよ。</p>



<h3 class="wp-block-heading"><span id="toc19">VLOOKUP第4引数の省略ミス</span></h3>



<p>VLOOKUP関数の第4引数は省略可能ですが、省略するとTRUE（近似一致）として扱われます。</p>



<pre class="wp-block-code"><code>=VLOOKUP(A2, マスタ!A:C, 3)</code></pre>



<p>この数式は、見た目は問題なさそうですが近似一致で検索されるため、意図しない結果になることがあります。完全一致させたい場合は、必ずFALSEを明示的に指定してくださいね。</p>



<p>エラーが出てしまったときの対処には、<a href="https://mashukabu.com/excel-function-howto-use-iferror/">ExcelのIFERROR関数の使い方｜エラーを非表示にする基本から応用まで</a>も参考になりますよ。</p>



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



<p>ExcelのFALSE関数は、論理値FALSEを返すだけのシンプルな関数です。Lotus 1-2-3との互換性のために存在しており、現在のExcelでは「FALSE」と直接入力すれば同じ結果が得られます。</p>



<p>それでも、論理値FALSEそのものはExcelの様々な機能で重要な役割を果たしていますよ。</p>



<ul class="wp-block-list"><li><strong>VLOOKUP関数の第4引数</strong>: 完全一致検索の指定に必須。実務で最も重要な使い方</li><li><strong>IF関数の第3引数</strong>: 条件を満たさないときの戻り値として明示できる</li><li><strong>条件付き書式</strong>: ルールを一時的に無効化したいときに使える</li><li><strong>データ入力規則</strong>: 入力を拒否するカスタム数式として活用できる</li><li><strong>数値変換</strong>: FALSE=0として計算やSUMPRODUCT関数での集計に活用</li></ul>



<p>FALSE関数自体を単独で使う機会は少なくても、「論理値FALSEがどこで使われているか」を理解しておくと、VLOOKUP関数やIF関数を書くときの迷いがなくなりますよ。ぜひ今回の内容を、普段のExcel作業に活かしてみてくださいね。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-false/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<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>スプレッドシートでVLOOKUPやMATCHを使ったら「#N/A」が表示された。こんな経験、ありませんか？</p>



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



<p>この記事では基本の書き方から実務パターンまで解説します。<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-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">スプレッドシートの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>IFNA関数（読み方: イフエヌエー関数）は、<strong>数式の結果が#N/Aエラーのときだけ代わりの値を返す関数</strong>です。</p>



<p>「IF」は「もし」、「N/A」は「Not Available（該当なし）」の略です。</p>



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



<p>それ以外のエラーはそのまま残せますよ。</p>



<p>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>IFNA関数の構文はとてもシンプルです。</p>



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



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



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



<p>それぞれの引数の意味を表で整理しておきましょう。</p>



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



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



<p>実務では表示したい値を明示するのがおすすめですよ。</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>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>検索値が見つかれば結果がそのまま返ります。見つからなければ「該当なし」と表示されます。</p>



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



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



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



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



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



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



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



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



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



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



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



<p>数値を返すパターンも実務でよく使います。</p>



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



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



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



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



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



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



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



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



<p><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>「検索列より左側の値を取得する」パターンです。見つからないときだけ「該当なし」を返します。</p>



<p>VLOOKUPでは対応できない検索が必要な場面で使ってみてください。</p>



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



<p>第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>まずシート1で検索します。#N/Aならシート2を検索します。どちらにもなければ「どちらにもなし」を表示する仕組みです。</p>



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



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



<p><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>A2が空白ならそもそも検索しません。値が入っているときだけVLOOKUPを実行します。</p>



<p>入力途中のデータを扱うときに便利なパターンですよ。</p>



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



<p>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>具体的に、同じ数式にミスがあった場合の動作を比較してみましょう。</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>IFERRORだと#REF!や#NAME?も代替値に置き換わります。数式のスペルミスに気づけないリスクがありますよね。</p>



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



<p>使い分けの基準はシンプルです。</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>迷ったらIFNA関数を選んでおくのが安全です。想定外のエラーはそのまま残せるので、デバッグしやすくなりますよ。</p>



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



<p>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>スプレッドシートの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>まずは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>スプレッドシートの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>「スプレッドシートで数式を入れたら#N/Aや#DIV/0!が表示されてしまった」。こんな経験、ありませんか？</p>



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



<p>そんなときに使えるのが、スプレッドシートの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-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">スプレッドシートの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>IFERROR関数（読み方: イフエラー関数）は、<strong>数式がエラーを返したときに代わりの値を表示する関数</strong>です。「IF」は「もし」、「ERROR」は「エラーなら」という意味に由来しています。</p>



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



<p>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>「エラーが出たら別の値を返す関数」と覚えておくとわかりやすいですよ。</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>カッコの中に「エラーを確認したい数式」と「エラーのときに返す値」を指定します。</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>第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>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>C2が0でなければ割り算の結果が返ります。C2が0のときは#DIV/0!の代わりに0が表示されます。</p>



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



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



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



<p>商品コードをもとに商品名を検索するとします。<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>A2の値がE列に存在すれば商品名が返ります。存在しなければ「該当なし」と表示されます。検索系の関数でもっとも使われるパターンですよ。</p>



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



<p>達成率を計算するとき、目標が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>売上報告書やKPI管理表でよく使うパターンです。0を返すと「達成率0%」と誤解されるため、「-」や「N/A」を返すほうが親切ですよ。</p>



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



<p><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>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>エラーを完全に非表示にしたい場合は、第2引数に空文字列を指定します。</p>



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



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



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



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



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



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



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



<p>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>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>使い分けの基準はシンプルです。</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>IFNA関数は#N/A以外のエラーをそのまま表示します。そのため、数式に問題があればすぐに気づけます。「なんでもIFERRORで囲む」のはやめて、用途に応じて使い分けてみてください。</p>



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



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



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



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



<p>NGの例: IFERRORの外で割り算している</p>



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



<p>OKの例: エラーが出る数式全体をIFERRORで囲む</p>



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



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



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



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



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



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



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



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



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



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



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



<p>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>スプレッドシートの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>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>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>「VLOOKUPとXLOOKUPって何が違うの？」と迷ったことはありませんか。「INDEX+MATCHのほうがいい」なんて声も聞きますよね。</p>



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



<p>この記事では、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-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">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>最初に結論をお伝えします。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>自分の環境に合った関数を判定してみてください。</p>



<p><strong>ステップ1: Excelのバージョンを確認</strong></p>



<p>お使いの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><strong>ステップ2: ファイルを共有する相手のバージョン</strong></p>



<p>古いバージョンの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><strong>ステップ3: 検索方向の確認</strong></p>



<p>検索値より左側の列から値を取得する必要がありますか？</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>たとえば、社員番号「A003」の名前を取得したい場合です。</p>



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



<p>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>VLOOKUPには2つの弱点があります。</p>



<p><strong>1. 左方向に検索できない</strong></p>



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



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



<p><strong>2. 列番号がハードコードでずれやすい</strong></p>



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



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



<p>詳しくは「<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>同じく社員番号「A003」の名前を取得する場合です。</p>



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



<p>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>XLOOKUPでエラー処理を組み込む例です。</p>



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



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



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



<p><strong>1. 対応バージョンが限られる</strong></p>



<p>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><strong>2. ネット上の情報がまだ少ない</strong></p>



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



<p>詳しくは「<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>INDEX関数とMATCH関数を組み合わせて使います。</p>



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



<p>社員番号「A003」の名前を取得する場合です。</p>



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



<p>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><strong>1. 数式が長くなる</strong></p>



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



<p><strong>2. 学習コストがやや高い</strong></p>



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



<p>それぞれの詳しい使い方は以下の記事で解説しています。</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>ここからは、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>XLOOKUPだけがExcel 2021以降に限定されています。社内でバージョンが統一されていない場合は、VLOOKUPかINDEX+MATCHを選んでください。</p>



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



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



<p>たとえば次のような表があるとします。</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>「商品コード 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>検索値が見つからない場合の動作を比較します。</p>



<p><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><strong>XLOOKUPの場合（第4引数で指定）</strong></p>



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



<p><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>XLOOKUPが最もシンプルです。エラー処理を関数内で完結できるのは大きなメリットです。</p>



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



<p>数万行を超えるデータで検索する場合、処理速度に差が出ます。</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>体感できるほどの差が出るのは、数万行以上の表で大量に数式を使う場合です。数百行程度なら速度差はほぼ気になりません。</p>



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



<p>3つの関数で起きやすいトラブルをまとめました。</p>



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



<p>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>エラー処理には<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>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>ヘッダー行から「価格」列の位置を自動で取得しています。列を挿入しても数式がずれません。</p>



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



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



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



<p>XLOOKUP → INDEX+MATCHの書き換え例です。</p>



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



<p>上の数式は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>機能は同じです。XLOOKUPのほうが短いですが、INDEX+MATCHなら全バージョンで動きます。</p>



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



<p>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>迷ったらまずXLOOKUPを試してみてください。もしバージョンの制約がある場合は、INDEX+MATCHを覚えておけば困ることはありません。VLOOKUPは既存の数式を読み解くためにも知っておくと安心です。</p>



<p>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>
		<item>
		<title>ExcelのSWITCH関数の使い方｜IFネスト不要で条件分岐をすっきり書く</title>
		<link>https://mashukabu.com/excel-function-howto-use-switch/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-switch/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Mon, 27 Jun 2022 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[CHOOSE関数]]></category>
		<category><![CDATA[IFS関数]]></category>
		<category><![CDATA[IF関数]]></category>
		<category><![CDATA[SWITCH関数]]></category>
		<category><![CDATA[VLOOKUP関数]]></category>
		<category><![CDATA[条件分岐]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=2109</guid>

					<description><![CDATA[ExcelのSWITCH関数の使い方を実例つきで解説。IFネストが複数段に増えたとき、値と結果をペアで並べるだけでスッキリ書けるSWITCH関数が役立ちます。IF・IFS・CHOOSEとの使い分け、バージョン制約、エラー対処法まで網羅しています。]]></description>
										<content:encoded><![CDATA[
<p>「部署コードを部署名に変換したい」「ランクごとにコメントを振り分けたい」――こんなとき、<a href="https://mashukabu.com/excel-function-howto-use-if/">IF関数</a>をネストして書いていませんか？ 条件が3つ、5つと増えるたびにカッコが深くなり、どこが何の条件か追いかけるだけで疲れてしまいますよね。</p>



<p>ExcelのSWITCH関数を使えば、IFのネストは不要です。値と結果のペアを並べるだけで、条件分岐がすっきり1行で書けます。この記事では、SWITCH関数の構文と基本の使い方から、IF・IFS・CHOOSEとの使い分けまでまとめて解説します。エラー対処法や応用テクニックも紹介しますよ。</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">ExcelのSWITCH関数とは？（完全一致で値を振り分ける関数）</a><ol><li><a href="#toc2" tabindex="0">SWITCH関数が使えるExcelバージョン</a></li></ol></li><li><a href="#toc3" tabindex="0">SWITCH関数の構文と引数</a><ol><li><a href="#toc4" tabindex="0">基本構文</a></li><li><a href="#toc5" tabindex="0">引数の説明</a></li><li><a href="#toc6" tabindex="0">引数の数え方（ペア数の見分け方）</a></li></ol></li><li><a href="#toc7" tabindex="0">SWITCH関数の基本的な使い方（コード変換の例）</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">IFネストとSWITCH関数の書き換え比較</a><ol><li><a href="#toc12" tabindex="0">IF関数のネストが3段を超えたらSWITCHに切り替えるサイン</a></li><li><a href="#toc13" tabindex="0">書き換え例：5段IFネスト → SWITCH関数1行</a></li><li><a href="#toc14" tabindex="0">読み手の負担が減る3つの理由</a></li></ol></li><li><a href="#toc15" tabindex="0">SWITCH・IFS・IF・CHOOSEの使い分け</a><ol><li><a href="#toc16" tabindex="0">完全一致ならSWITCH、不等号条件ならIFS</a></li><li><a href="#toc17" tabindex="0">連番・インデックスで選ぶならCHOOSE</a></li><li><a href="#toc18" tabindex="0">使い分けフロー（判断チャート）</a></li><li><a href="#toc19" tabindex="0">ひと目でわかる4関数の比較表</a></li></ol></li><li><a href="#toc20" tabindex="0">SWITCH関数のエラーと対処法</a><ol><li><a href="#toc21" tabindex="0">#N/A：既定値を忘れると一致しない値でエラーに</a></li><li><a href="#toc22" tabindex="0">#NAME?：Excel 2016以前では使えない</a></li><li><a href="#toc23" tabindex="0">#VALUE!：引数の型が合っていない</a></li><li><a href="#toc24" tabindex="0">よくある誤解：「SWITCHで範囲比較」はできない</a></li></ol></li><li><a href="#toc25" tabindex="0">SWITCH関数の応用テクニック</a><ol><li><a href="#toc26" tabindex="0">WEEKDAY関数と組み合わせて曜日名を表示する</a></li><li><a href="#toc27" tabindex="0">MONTH関数で月別の区分を作る</a></li><li><a href="#toc28" tabindex="0">SWITCH(TRUE,&#8230;)で範囲条件を処理する裏ワザ</a></li><li><a href="#toc29" tabindex="0">SWITCHとVLOOKUPの使い分け基準</a></li><li><a href="#toc30" tabindex="0">データの入力規則とセットで使う</a></li></ol></li><li><a href="#toc31" tabindex="0">SWITCH関数の実務でよく使うパターン集</a><ol><li><a href="#toc32" tabindex="0">パターン1：ステータスコードの日本語化</a></li><li><a href="#toc33" tabindex="0">パターン2：優先度ランクのアイコン表示</a></li><li><a href="#toc34" tabindex="0">パターン3：エラー判定の分類</a></li><li><a href="#toc35" tabindex="0">パターン4：アンケート選択肢の集計用変換</a></li></ol></li><li><a href="#toc36" tabindex="0">よくある質問（FAQ）</a><ol><li><a href="#toc37" tabindex="0">SWITCH関数は大文字小文字を区別しますか？</a></li><li><a href="#toc38" tabindex="0">ワイルドカード（*や?）は使えますか？</a></li><li><a href="#toc39" tabindex="0">配列を返すことはできますか？</a></li><li><a href="#toc40" tabindex="0">最大何個のペアを書けますか？</a></li><li><a href="#toc41" tabindex="0">Googleスプレッドシートでも同じ構文で使えますか？</a></li></ol></li><li><a href="#toc42" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ExcelのSWITCH関数とは？（完全一致で値を振り分ける関数）</span></h2>



<p>SWITCH関数は、1つの値を複数の候補と照合する関数です。一致した候補に対応する結果を返します。読み方は「スイッチ関数」で、英語の「switch（切り替える）」から来ています。プログラミング言語の switch 文と同じ発想ですね。</p>



<p>たとえば「コードがS01なら営業部、A01なら総務部」のように、<strong>完全一致で値を振り分ける</strong>のが得意です。</p>



<p>特徴をまとめると、次のとおりです。</p>



<ul class="wp-block-list"><li>1つの式（セル）を複数の値と比較できる</li><li>値と結果をペアで並べるので、IFネストより読みやすい</li><li>最大126ペアまで指定できる</li><li>既定値（デフォルト）を最後の引数で指定できる</li></ul>



<h3 class="wp-block-heading"><span id="toc2">SWITCH関数が使えるExcelバージョン</span></h3>



<p>SWITCH関数は比較的新しい関数です。Microsoft公式ドキュメントによると、使えるバージョンは以下のとおりです。</p>



<figure class="wp-block-table"><table><thead><tr><th>バージョン</th><th>対応状況</th></tr></thead><tbody><tr><td>Microsoft 365</td><td>使える</td></tr><tr><td>Excel 2024</td><td>使える</td></tr><tr><td>Excel 2021</td><td>使える</td></tr><tr><td>Excel 2019</td><td>使える</td></tr><tr><td>Excel 2016以前</td><td>使えない</td></tr><tr><td>Excel for the web</td><td>使える</td></tr><tr><td>Excel for Mac（2019以降）</td><td>使える</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>Excel 2016以前をお使いの場合は、IFのネストや<a href="https://mashukabu.com/excel-function-howto-use-choose/">CHOOSE関数</a>で代替できます。この記事の「使い分け」セクションで詳しく紹介しています。</p></blockquote>



<p>SWITCH関数はGoogleスプレッドシートでも使えます。スプレッドシートでは最大38ペアという違いはありますが、構文と動作はExcelと同じです。</p>



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



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



<pre class="wp-block-code"><code>=SWITCH(式, 値1, 結果1, [値2, 結果2], …, [既定値])</code></pre>



<h3 class="wp-block-heading"><span id="toc5">引数の説明</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>値1</td><td>必須</td><td>式と照合する最初の値</td></tr><tr><td>結果1</td><td>必須</td><td>値1と一致したときに返す値</td></tr><tr><td>値2〜値126</td><td>任意</td><td>追加の比較値（最大126ペアまで）</td></tr><tr><td>結果2〜結果126</td><td>任意</td><td>対応する結果</td></tr><tr><td>既定値</td><td>任意</td><td>どの値にも一致しなかったときの戻り値</td></tr></tbody></table></figure>



<p>値と結果は必ずセットで指定します。最大126ペアまで設定できますよ。</p>



<p>既定値は「ペアにならず余った最後の引数」です。省略すると、一致しなかったときに<code>#N/A</code>エラーになります。「該当なし」などの既定値を入れておくのがおすすめです。</p>



<h3 class="wp-block-heading"><span id="toc6">引数の数え方（ペア数の見分け方）</span></h3>



<p>「引数が奇数個か偶数個か」で既定値の有無がわかります。</p>



<ul class="wp-block-list"><li>奇数個（例: 式 + 3ペア = 7個）: 最後が既定値</li><li>偶数個（例: 式 + 3ペア = 6個 ではなく、式 + 3ペア × 2 = 7個）: 既定値なし</li></ul>



<p>細かい話ですが、引数の数を数えると既定値の漏れをチェックできます。数式を見直すときに使ってみてください。</p>



<h2 class="wp-block-heading"><span id="toc7">SWITCH関数の基本的な使い方（コード変換の例）</span></h2>



<h3 class="wp-block-heading"><span id="toc8">部署コードを部署名に変換する</span></h3>



<p>部署コードから部署名を表示する例で、基本の流れを見ていきましょう。</p>



<p><strong>サンプルデータ</strong></p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A列（部署コード）</th><th>B列（部署名）</th></tr></thead><tbody><tr><td>2行目</td><td>S01</td><td>←ここに数式を入れる</td></tr><tr><td>3行目</td><td>A01</td><td>&nbsp;</td></tr><tr><td>4行目</td><td>F01</td><td>&nbsp;</td></tr><tr><td>5行目</td><td>X99</td><td>&nbsp;</td></tr></tbody></table></figure>



<p>B2セルに次の数式を入力します。</p>



<pre class="wp-block-code"><code>=SWITCH(A2, &quot;S01&quot;,&quot;営業部&quot;, &quot;A01&quot;,&quot;総務部&quot;, &quot;F01&quot;,&quot;経理部&quot;, &quot;該当なし&quot;)</code></pre>



<p><strong>結果</strong></p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A列</th><th>B列（結果）</th></tr></thead><tbody><tr><td>2行目</td><td>S01</td><td>営業部</td></tr><tr><td>3行目</td><td>A01</td><td>総務部</td></tr><tr><td>4行目</td><td>F01</td><td>経理部</td></tr><tr><td>5行目</td><td>X99</td><td>該当なし</td></tr></tbody></table></figure>



<p>A2の値「S01」が最初のペア「S01→営業部」に一致するので、「営業部」が返ります。X99はどのペアにも一致しないので、既定値の「該当なし」が表示されますね。</p>



<p>数式の組み立ては「式→値と結果のペア→既定値」の順番で書くだけです。</p>



<h3 class="wp-block-heading"><span id="toc9">既定値（デフォルト）を設定する方法</span></h3>



<p>既定値の仕組みをもう少し詳しく見てみましょう。</p>



<p>既定値なしの場合はこうなります。</p>



<pre class="wp-block-code"><code>=SWITCH(A2, &quot;S01&quot;,&quot;営業部&quot;, &quot;A01&quot;,&quot;総務部&quot;)</code></pre>



<p>A2が「F01」なら、どのペアにも一致しません。既定値がないため<code>#N/A</code>エラーが出ます。</p>



<p>既定値を追加すると、エラーを防げます。</p>



<pre class="wp-block-code"><code>=SWITCH(A2, &quot;S01&quot;,&quot;営業部&quot;, &quot;A01&quot;,&quot;総務部&quot;, &quot;該当なし&quot;)</code></pre>



<p>末尾の「該当なし」が既定値です。想定外の値が入ってもエラーにならないので、実務では必ず設定しておきましょう。</p>



<h3 class="wp-block-heading"><span id="toc10">数値の一致で振り分ける</span></h3>



<p>SWITCH関数は文字列だけでなく、数値の完全一致にも使えます。たとえばステータスコードで処理状況を表示するパターンです。</p>



<pre class="wp-block-code"><code>=SWITCH(A2, 1,&quot;受付中&quot;, 2,&quot;処理中&quot;, 3,&quot;完了&quot;, 9,&quot;キャンセル&quot;, &quot;不明&quot;)</code></pre>



<p>数値はダブルクォートで囲まずに書きます。1、2、3のような連番コードを扱うときによく使うパターンです。</p>



<h2 class="wp-block-heading"><span id="toc11">IFネストとSWITCH関数の書き換え比較</span></h2>



<h3 class="wp-block-heading"><span id="toc12">IF関数のネストが3段を超えたらSWITCHに切り替えるサイン</span></h3>



<p><a href="https://mashukabu.com/excel-function-howto-use-if/">IF関数</a>のネストが3段を超えると、カッコの対応がわかりにくくなります。完全一致の条件分岐なら、SWITCH関数への切り替えを検討してみてください。</p>



<p>目安は次のとおりです。</p>



<ul class="wp-block-list"><li><strong>2〜3段のIFネスト</strong>: そのままでもOK</li><li><strong>4段以上のIFネスト</strong>: SWITCH関数にすると読みやすい</li><li><strong>5段以上</strong>: SWITCH関数に書き換えたほうが保守しやすい</li></ul>



<h3 class="wp-block-heading"><span id="toc13">書き換え例：5段IFネスト → SWITCH関数1行</span></h3>



<p>5つの部署コードを判定する例で比べてみましょう。</p>



<p><strong>Before（IFネスト5段）：</strong></p>



<pre class="wp-block-code"><code>=IF(A2=&quot;S01&quot;,&quot;営業部&quot;,IF(A2=&quot;A01&quot;,&quot;総務部&quot;,IF(A2=&quot;F01&quot;,&quot;経理部&quot;,IF(A2=&quot;H01&quot;,&quot;人事部&quot;,IF(A2=&quot;M01&quot;,&quot;マーケ部&quot;,&quot;該当なし&quot;)))))</code></pre>



<p><strong>After（SWITCH関数）：</strong></p>



<pre class="wp-block-code"><code>=SWITCH(A2, &quot;S01&quot;,&quot;営業部&quot;, &quot;A01&quot;,&quot;総務部&quot;, &quot;F01&quot;,&quot;経理部&quot;, &quot;H01&quot;,&quot;人事部&quot;, &quot;M01&quot;,&quot;マーケ部&quot;, &quot;該当なし&quot;)</code></pre>



<p>IFネストでは「A2=」を5回書いて、閉じカッコも5つ必要です。SWITCH関数なら式は1回、カッコも1組で済みます。条件が増えるほど差が広がりますよ。</p>



<h3 class="wp-block-heading"><span id="toc14">読み手の負担が減る3つの理由</span></h3>



<p>SWITCH関数に書き換えると、単にコードが短くなるだけではありません。読み手の負担も3つのポイントで減らせます。</p>



<ol class="wp-block-list"><li><strong>式を1回しか書かない</strong>: 「A2」の値を何と比べているかが一目でわかります</li><li><strong>カッコのネストがない</strong>: 閉じカッコの位置で迷うことがなくなります</li><li><strong>値と結果がペアで並ぶ</strong>: 「このコードならこの部署」が視覚的に追いやすいです</li></ol>



<p>数式を修正する人が自分以外でも、SWITCH版のほうが引き継ぎやすいですね。</p>



<h2 class="wp-block-heading"><span id="toc15">SWITCH・IFS・IF・CHOOSEの使い分け</span></h2>



<h3 class="wp-block-heading"><span id="toc16">完全一致ならSWITCH、不等号条件ならIFS</span></h3>



<p>SWITCH関数は<strong>完全一致（=）しか判定できません</strong>。「80点以上ならA」のような範囲条件には対応できないので、その場合は<a href="https://mashukabu.com/excel-function-howto-use-ifs/">IFS関数</a>を使いましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>SWITCH</th><th>IFS</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>TRUE条件で代用</td></tr><tr><td>向いている場面</td><td>コード→名称の変換</td><td>範囲・大小の条件分岐</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc17">連番・インデックスで選ぶならCHOOSE</span></h3>



<p><a href="https://mashukabu.com/excel-function-howto-use-choose/">CHOOSE関数</a>は、整数インデックス（1, 2, 3&#8230;）で結果を選ぶ関数です。SWITCH関数との違いは次のとおりです。</p>



<ul class="wp-block-list"><li><strong>CHOOSE</strong>: インデックスは1から始まる連続整数のみ</li><li><strong>SWITCH</strong>: 任意の値（文字列・数値・日付など）で比較できる</li></ul>



<p>連番で管理しているデータならCHOOSE、それ以外はSWITCHが便利です。</p>



<h3 class="wp-block-heading"><span id="toc18">使い分けフロー（判断チャート）</span></h3>



<p>条件分岐の関数選びに迷ったら、次の順番で判断してみてください。</p>



<ol class="wp-block-list"><li><strong>完全一致か？</strong> → はい → <strong>SWITCH関数</strong></li><li><strong>範囲や大小を比較するか？</strong> → はい → <strong><a href="https://mashukabu.com/excel-function-howto-use-ifs/">IFS関数</a></strong></li><li><strong>連続整数のインデックスか？</strong> → はい → <strong><a href="https://mashukabu.com/excel-function-howto-use-choose/">CHOOSE関数</a></strong></li><li><strong>条件が2〜3個程度か？</strong> → はい → <strong><a href="https://mashukabu.com/excel-function-howto-use-if/">IF関数</a>のネスト</strong></li></ol>



<p>条件分岐の関数選びについては、<a href="https://mashukabu.com/excel-if-ifs-iferror-ifna-comparison/">IF・IFS・IFERROR・IFNAの使い分け</a>の記事でさらに詳しくまとめています。</p>



<h3 class="wp-block-heading"><span id="toc19">ひと目でわかる4関数の比較表</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>判定方式</th><th>主な用途</th><th>既定値</th></tr></thead><tbody><tr><td>SWITCH</td><td>完全一致</td><td>コード→名称変換</td><td>最後の引数</td></tr><tr><td>IFS</td><td>条件式</td><td>範囲・大小比較</td><td>TRUE条件で代用</td></tr><tr><td>IF</td><td>2分岐</td><td>シンプルな二択</td><td>FALSE側で指定</td></tr><tr><td>CHOOSE</td><td>連番</td><td>1〜Nのインデックス</td><td>なし（IFERRORで補う）</td></tr></tbody></table></figure>



<p>このマトリクスを頭に入れておくと、数式を書く前に関数選びで迷わなくなりますよ。</p>



<h2 class="wp-block-heading"><span id="toc20">SWITCH関数のエラーと対処法</span></h2>



<h3 class="wp-block-heading"><span id="toc21">#N/A：既定値を忘れると一致しない値でエラーに</span></h3>



<p><strong>原因</strong>: どの値にも一致せず、既定値も未指定の場合に<code>#N/A</code>が出ます。</p>



<p><strong>対処法</strong>: 最後の引数に既定値を追加しましょう。</p>



<pre class="wp-block-code"><code>=SWITCH(A2, &quot;S01&quot;,&quot;営業部&quot;, &quot;A01&quot;,&quot;総務部&quot;, &quot;該当なし&quot;)</code></pre>



<p>末尾の「該当なし」が既定値です。ペアにならず余った引数が既定値として扱われます。</p>



<p>SWITCH関数で最もよくあるエラーなので、既定値は必ず入れるようにしてみてください。</p>



<h3 class="wp-block-heading"><span id="toc22">#NAME?：Excel 2016以前では使えない</span></h3>



<p><strong>原因</strong>: SWITCH関数はExcel 2019以降の関数です。Excel 2016以前で入力すると<code>#NAME?</code>エラーになります。</p>



<p><strong>対処法</strong>: バージョンを確認するには「ファイル → アカウント」を開きます。Excel 2016以前の場合は、IFのネストで代替しましょう。</p>



<pre class="wp-block-code"><code>=IF(A2=&quot;S01&quot;,&quot;営業部&quot;,IF(A2=&quot;A01&quot;,&quot;総務部&quot;,IF(A2=&quot;F01&quot;,&quot;経理部&quot;,&quot;該当なし&quot;)))</code></pre>



<p>エラーをまとめて防ぎたいときは、<a href="https://mashukabu.com/excel-function-howto-use-iferror/">IFERROR関数</a>で囲む方法もあります。</p>



<pre class="wp-block-code"><code>=IFERROR(SWITCH(A2, &quot;S01&quot;,&quot;営業部&quot;, &quot;A01&quot;,&quot;総務部&quot;), &quot;入力値を確認してください&quot;)</code></pre>



<h3 class="wp-block-heading"><span id="toc23">#VALUE!：引数の型が合っていない</span></h3>



<p><strong>原因</strong>: 式の結果と値のデータ型が一致しないときに出る場合があります。たとえば式が数値を返すのに値を文字列で書いている、という不整合です。</p>



<p><strong>対処法</strong>: 式と値のデータ型を揃えましょう。数値どうしで比較するか、TEXT関数や<code>&""</code>で文字列化して揃える方法が確実です。</p>



<pre class="wp-block-code"><code>=SWITCH(TEXT(A2,&quot;0&quot;), &quot;1&quot;,&quot;受付中&quot;, &quot;2&quot;,&quot;処理中&quot;, &quot;該当なし&quot;)</code></pre>



<p>A2が数値でも文字列でもブレない書き方です。入力値の型が不安定なときの保険として覚えておくと便利ですよ。</p>



<h3 class="wp-block-heading"><span id="toc24">よくある誤解：「SWITCHで範囲比較」はできない</span></h3>



<p>SWITCH関数を「80点以上ならA、70点以上ならB」のように使おうとして、うまくいかずハマるパターンがあります。SWITCH関数は完全一致しか判定できません。</p>



<p>範囲条件は<a href="https://mashukabu.com/excel-function-howto-use-ifs/">IFS関数</a>の出番です。それでもSWITCHで書きたい場合は、後述の「TRUEトリック」を使います。</p>



<h2 class="wp-block-heading"><span id="toc25">SWITCH関数の応用テクニック</span></h2>



<h3 class="wp-block-heading"><span id="toc26">WEEKDAY関数と組み合わせて曜日名を表示する</span></h3>



<p><a href="https://mashukabu.com/excel-function-howto-use-weekday/">WEEKDAY関数</a>は曜日を1〜7の数字で返します。SWITCH関数と組み合わせれば、日本語の曜日名に変換できます。</p>



<pre class="wp-block-code"><code>=SWITCH(WEEKDAY(A2), 1,&quot;日&quot;, 2,&quot;月&quot;, 3,&quot;火&quot;, 4,&quot;水&quot;, 5,&quot;木&quot;, 6,&quot;金&quot;, 7,&quot;土&quot;)</code></pre>



<p>WEEKDAY関数の戻り値（1=日曜〜7=土曜）をそのまま値として並べるだけです。曜日のように候補が決まっている場面にはピッタリですよ。</p>



<h3 class="wp-block-heading"><span id="toc27">MONTH関数で月別の区分を作る</span></h3>



<p>同じ発想で、月を四半期に変換するパターンも書けます。</p>



<pre class="wp-block-code"><code>=SWITCH(MONTH(A2), 1,&quot;Q4&quot;, 2,&quot;Q4&quot;, 3,&quot;Q4&quot;, 4,&quot;Q1&quot;, 5,&quot;Q1&quot;, 6,&quot;Q1&quot;, 7,&quot;Q2&quot;, 8,&quot;Q2&quot;, 9,&quot;Q2&quot;, 10,&quot;Q3&quot;, 11,&quot;Q3&quot;, 12,&quot;Q3&quot;)</code></pre>



<p>日本の会計年度（4月始まり）で四半期を割り当てる例です。数式は長めですが、条件の対応が明確で読みやすいですよね。</p>



<h3 class="wp-block-heading"><span id="toc28">SWITCH(TRUE,&#8230;)で範囲条件を処理する裏ワザ</span></h3>



<p>SWITCH関数は完全一致が基本ですが、TRUEトリックを使うと範囲条件も処理できます。</p>



<pre class="wp-block-code"><code>=SWITCH(TRUE, A2&gt;=90,&quot;A評価&quot;, A2&gt;=70,&quot;B評価&quot;, A2&gt;=50,&quot;C評価&quot;, &quot;D評価&quot;)</code></pre>



<p>式にTRUEを指定して、各値の位置に条件式を書きます。上から順に評価され、最初にTRUEになった結果が返ります。</p>



<p>ちょっとむずかしく見えますが、やっていることはシンプルです。「どの条件がTRUEか？」を上から順にチェックしているだけですね。</p>



<p>ただし、範囲条件の本来の用途は<a href="https://mashukabu.com/excel-function-howto-use-ifs/">IFS関数</a>です。TRUEトリックは「裏ワザ」として知っておく程度でOKですよ。</p>



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



<p>コード変換なら<a href="https://mashukabu.com/excel-function-howto-use-vlookup/">VLOOKUP関数</a>でもできます。どちらを使うか迷ったら、対応の件数で判断してみてください。</p>



<figure class="wp-block-table"><table><thead><tr><th>基準</th><th>SWITCH関数</th><th>VLOOKUP関数</th></tr></thead><tbody><tr><td>対応の件数</td><td>5〜10件程度に最適</td><td>大量データに最適</td></tr><tr><td>対応の管理方法</td><td>数式内に埋め込む</td><td>別テーブルで管理</td></tr><tr><td>メンテナンス性</td><td>件数が少なければ楽</td><td>テーブル更新で対応</td></tr><tr><td>向いている場面</td><td>固定の少数コード変換</td><td>マスタテーブルとの照合</td></tr></tbody></table></figure>



<p>対応が5〜10件で変更が少ないならSWITCH、それ以上ならVLOOKUPが向いています。</p>



<h3 class="wp-block-heading"><span id="toc30">データの入力規則とセットで使う</span></h3>



<p>SWITCH関数は「想定した値しか入ってこない列」と相性がよい関数です。データの入力規則（リスト選択）とセットで使うと、未知の値が入ることを防げます。</p>



<ol class="wp-block-list"><li>入力規則で「S01, A01, F01, H01, M01」のリストを設定</li><li>SWITCHで各コードの部署名に変換</li><li>既定値「該当なし」は入力規則の例外対策として保険で残す</li></ol>



<p>入力規則とSWITCHを組み合わせると、入力ミスと数式エラーをダブルで防げますね。</p>



<h2 class="wp-block-heading"><span id="toc31">SWITCH関数の実務でよく使うパターン集</span></h2>



<p>よくある業務シーンでの使い方を4つ紹介します。テンプレートとしてコピペで使ってください。</p>



<h3 class="wp-block-heading"><span id="toc32">パターン1：ステータスコードの日本語化</span></h3>



<p>業務システムから出力したCSVなどで、ステータスが英語コードのまま入っていることがあります。</p>



<pre class="wp-block-code"><code>=SWITCH(A2, &quot;OPEN&quot;,&quot;受付中&quot;, &quot;WIP&quot;,&quot;処理中&quot;, &quot;DONE&quot;,&quot;完了&quot;, &quot;CANCEL&quot;,&quot;キャンセル&quot;, A2)</code></pre>



<p>最後の既定値をA2にすることで、未知のコードはそのまま表示されます。データの確認用に一時的に使うときに便利ですよ。</p>



<h3 class="wp-block-heading"><span id="toc33">パターン2：優先度ランクのアイコン表示</span></h3>



<p>優先度を1〜3で管理しているとき、視覚的にわかりやすく変換できます。</p>



<pre class="wp-block-code"><code>=SWITCH(A2, 1,&quot;★★★（高）&quot;, 2,&quot;★★（中）&quot;, 3,&quot;★（低）&quot;, &quot;未設定&quot;)</code></pre>



<p>ダッシュボードやレポートで、数字より一目で判別しやすくなります。</p>



<h3 class="wp-block-heading"><span id="toc34">パターン3：エラー判定の分類</span></h3>



<p><a href="https://mashukabu.com/excel-function-howto-use-iferror/">IFERROR関数</a>と組み合わせて、エラーの種類別に対応することもできます。</p>



<pre class="wp-block-code"><code>=IFERROR(VLOOKUP(A2,テーブル,2,FALSE), SWITCH(TRUE, A2=&quot;&quot;,&quot;値未入力&quot;, LEN(A2)&lt;3,&quot;コード桁数不足&quot;, &quot;マスタ未登録&quot;))</code></pre>



<p>VLOOKUPがエラーになったときだけ、原因を分類して表示するパターンです。チェック作業のフィードバックに使えますよ。</p>



<h3 class="wp-block-heading"><span id="toc35">パターン4：アンケート選択肢の集計用変換</span></h3>



<p>5段階評価を数値スコアに変換するパターンです。</p>



<pre class="wp-block-code"><code>=SWITCH(A2, &quot;非常に満足&quot;,5, &quot;満足&quot;,4, &quot;普通&quot;,3, &quot;不満&quot;,2, &quot;非常に不満&quot;,1, 0)</code></pre>



<p>アンケートの文字列回答を数値化できるので、このあと平均や分布の集計に使えます。既定値0は未回答扱いです。</p>



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



<h3 class="wp-block-heading"><span id="toc37">SWITCH関数は大文字小文字を区別しますか？</span></h3>



<p>SWITCH関数は<strong>大文字小文字を区別しません</strong>。「S01」と「s01」は同じ値として扱われます。大文字小文字を厳密に区別したい場合は、EXACT関数と組み合わせた別の書き方が必要です。</p>



<pre class="wp-block-code"><code>=SWITCH(TRUE, EXACT(A2,&quot;S01&quot;),&quot;営業部&quot;, EXACT(A2,&quot;s01&quot;),&quot;営業部（小文字）&quot;, &quot;該当なし&quot;)</code></pre>



<h3 class="wp-block-heading"><span id="toc38">ワイルドカード（*や?）は使えますか？</span></h3>



<p>SWITCH関数は<strong>ワイルドカードに対応していません</strong>。値はあくまで完全一致で比較されます。部分一致で振り分けたいときは、IF関数とSEARCH関数の組み合わせなどを検討してください。</p>



<h3 class="wp-block-heading"><span id="toc39">配列を返すことはできますか？</span></h3>



<p>1つの値に対して1つの結果しか返せません。ただし、スピル対応のExcel（Microsoft 365・Excel 2021以降）なら話が変わります。式の部分に配列を入れれば、結果もスピルして並びます。</p>



<pre class="wp-block-code"><code>=SWITCH(A2:A5, &quot;S01&quot;,&quot;営業部&quot;, &quot;A01&quot;,&quot;総務部&quot;, &quot;該当なし&quot;)</code></pre>



<p>縦方向の範囲A2:A5をSWITCHで一括変換する書き方です。</p>



<h3 class="wp-block-heading"><span id="toc40">最大何個のペアを書けますか？</span></h3>



<p><strong>Excel版は最大126ペア</strong>まで指定できます。実務では20ペアを超えるなら、マスタテーブル＋<a href="https://mashukabu.com/excel-function-howto-use-vlookup/">VLOOKUP関数</a>への切り替えを検討するのがおすすめですよ。</p>



<h3 class="wp-block-heading"><span id="toc41">Googleスプレッドシートでも同じ構文で使えますか？</span></h3>



<p>構文は同じですが、Googleスプレッドシート版のSWITCH関数は<strong>最大38ペア</strong>という違いがあります。また、スプレッドシートでは配列処理の挙動が少し異なるので、大量データで使うときはテストしてから本番投入してください。</p>



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



<p>ExcelのSWITCH関数の使い方を紹介しました。最後にポイントを整理しましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>内容</th></tr></thead><tbody><tr><td>機能</td><td>1つの値を複数の候補と照合して結果を返す</td></tr><tr><td>構文</td><td><code>=SWITCH(式, 値1, 結果1, …, [既定値])</code></td></tr><tr><td>最大ペア数</td><td>126ペア（Googleスプレッドシートは38ペア）</td></tr><tr><td>対応バージョン</td><td>Excel 2019 / 2021 / 2024 / Microsoft 365</td></tr><tr><td>得意な場面</td><td>コード→名称の変換（完全一致の分岐）</td></tr><tr><td>苦手な場面</td><td>範囲条件（>=など）→ <a href="https://mashukabu.com/excel-function-howto-use-ifs/">IFS関数</a>を使う</td></tr></tbody></table></figure>



<p>SWITCH関数は、IFのネストを置き換えるだけで数式がグッと読みやすくなります。完全一致の分岐が出てきたら、ぜひ試してみてください。既定値の設定と、他関数との使い分けを意識するのが使いこなしのコツですよ。</p>



<p>条件分岐の関数をもっと深く知りたい方は、<a href="https://mashukabu.com/excel-if-ifs-iferror-ifna-comparison/">IF・IFS・IFERROR・IFNAの使い分け</a>もあわせてご覧ください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-switch/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのVLOOKUP関数の使い方｜引数・エラー対処・INDEX+MATCHとの使い分けまで</title>
		<link>https://mashukabu.com/excel-function-howto-use-vlookup/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-vlookup/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 19 Mar 2022 10:11:08 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[INDEX MATCH]]></category>
		<category><![CDATA[VLOOKUP関数]]></category>
		<category><![CDATA[XLOOKUP]]></category>
		<category><![CDATA[エラー対処]]></category>
		<category><![CDATA[検索関数]]></category>
		<category><![CDATA[関数の使い方]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=1390</guid>

					<description><![CDATA[ExcelのVLOOKUP関数の使い方を初心者向けに解説。基本構文・引数の意味・別シート参照から、#N/Aエラーの対処法、INDEX+MATCHやXLOOKUPとの使い分けまで網羅。]]></description>
										<content:encoded><![CDATA[
<p>「VLOOKUP関数を使いたいけど、引数の意味がわからない」「#N/Aエラーが出て困っている」という声はよく聞きます。VLOOKUPはExcel関数の中でもトップクラスの検索数を誇る人気関数です。ただ、引数が4つあるぶん最初はとっつきにくいですよね。</p>



<p>この記事では、VLOOKUPの基本的な書き方からエラーの直し方まで解説します。さらにINDEX+MATCHやXLOOKUPとの使い分けも紹介するので、読み終えるころには「VLOOKUPで困ることはほぼない」状態になれるはずです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>この記事は次のような人におすすめ</strong><br>&#8211; 表からデータを自動的に検索・取得したい人<br>&#8211; VLOOKUPのエラーが出て原因がわからない人<br>&#8211; INDEX+MATCHやXLOOKUPとの違いを知りたい人</p></blockquote>




  <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">VLOOKUP関数とは？</a><ol><li><a href="#toc2" tabindex="0">読み方と基本的な役割</a></li><li><a href="#toc3" tabindex="0">VLOOKUP関数が向いている場面</a></li></ol></li><li><a href="#toc4" tabindex="0">VLOOKUP関数の書き方（構文と引数）</a><ol><li><a href="#toc5" tabindex="0">基本構文</a></li><li><a href="#toc6" tabindex="0">引数の説明</a></li><li><a href="#toc7" tabindex="0">検索の型（FALSE / TRUE）の使い分け</a></li></ol></li><li><a href="#toc8" tabindex="0">VLOOKUP関数の基本的な使い方</a><ol><li><a href="#toc9" tabindex="0">同じシート内でデータを検索する</a></li><li><a href="#toc10" tabindex="0">別シートのデータを参照する</a></li><li><a href="#toc11" tabindex="0">絶対参照のポイント（F4キー）</a></li></ol></li><li><a href="#toc12" tabindex="0">VLOOKUP関数の実務活用パターン</a><ol><li><a href="#toc13" tabindex="0">IFERROR関数と組み合わせてエラーを回避する</a></li><li><a href="#toc14" tabindex="0">近似一致（TRUE）で価格帯・ランク判定する</a></li><li><a href="#toc15" tabindex="0">ワイルドカードで部分一致検索する</a></li><li><a href="#toc16" tabindex="0">複数条件で検索する（補助列の活用）</a></li></ol></li><li><a href="#toc17" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc18" tabindex="0">#N/Aエラー</a></li><li><a href="#toc19" tabindex="0">#REF!エラー</a></li><li><a href="#toc20" tabindex="0">間違った値が返る</a></li></ol></li><li><a href="#toc21" tabindex="0">VLOOKUPの弱点と代替関数の使い分け</a><ol><li><a href="#toc22" tabindex="0">VLOOKUPの3つの制約</a></li><li><a href="#toc23" tabindex="0">VLOOKUP / INDEX+MATCH / XLOOKUP 比較表</a></li><li><a href="#toc24" tabindex="0">どの関数を選べばいい？</a></li></ol></li><li><a href="#toc25" tabindex="0">まとめ</a><ol><li><a href="#toc26" tabindex="0">関連記事</a></li><li><a href="#toc27" tabindex="0">エラー値についてのまとめ記事</a></li></ol></li></ol>
    </div>
  </div>

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



<h3 class="wp-block-heading"><span id="toc2">読み方と基本的な役割</span></h3>



<p>VLOOKUPは「ブイルックアップ」と読みます。Vertical（垂直）+ Lookup（検索）が名前の由来です。</p>



<p>やっていることはシンプルです。「この値を探して、同じ行にある別の列の値を持ってきて」という指示を出す関数です。</p>



<p>たとえば社員番号を入力したら名前や部署を自動で表示する。商品コードから価格を引っ張ってくる。こうした「表からデータを探す」作業を一発で片付けてくれます。</p>



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



<p>VLOOKUPが活躍するのは、次のような場面です。</p>



<ul class="wp-block-list"><li>マスタ表から情報を取得するとき（商品コード → 商品名など）</li><li>別シートのデータを参照したいとき</li><li>請求書や見積書でコードから自動入力したいとき</li></ul>



<p>「検索したい値が表の一番左にある」ならVLOOKUPの出番です。Excel 2007以前を含む全バージョンで使えるので、共有ファイルでも安心して使えます。</p>



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



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



<p>VLOOKUPの構文はこちらです。</p>



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



<p>引数は4つあります。最後の「検索の型」だけ省略できます。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/省略可</th><th>意味</th><th>指定例</th></tr></thead><tbody><tr><td>検索値</td><td>必須</td><td>探したい値。セル参照が一般的</td><td>A2</td></tr><tr><td>範囲</td><td>必須</td><td>検索対象の表。最左列に検索値を含むこと</td><td>B2:E100</td></tr><tr><td>列番号</td><td>必須</td><td>範囲の左端から数えて何列目を返すか（1以上の整数）</td><td>3</td></tr><tr><td>検索の型</td><td>省略可</td><td>FALSE = 完全一致 / TRUE = 近似一致</td><td>FALSE</td></tr></tbody></table></figure>



<p>ポイントは「範囲の左端列」で検索が行われることです。検索したい値が左端にない場合は、範囲の取り方を見直してください。</p>



<h3 class="wp-block-heading"><span id="toc7">検索の型（FALSE / TRUE）の使い分け</span></h3>



<p>ここがVLOOKUPで一番つまずきやすい部分です。</p>



<p><strong>FALSE（完全一致）</strong> は、検索値とぴったり一致するものだけを探します。実務の9割はこちらです。一致しなければ#N/Aエラーが返ります。</p>



<pre class="wp-block-code"><code>=VLOOKUP(A2, マスタ!A:D, 3, FALSE)</code></pre>



<p><strong>TRUE（近似一致）</strong> は、検索値以下で最も大きい値を返します。料金表やランク判定で使います。ただし検索列の昇順ソートが必須です。</p>



<pre class="wp-block-code"><code>=VLOOKUP(A2, 料金表!A:B, 2, TRUE)</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>検索の型を省略するとデフォルトはTRUEになります。ここが最大の落とし穴です。「なんか変な値が返る」の原因は、たいていこの省略です。迷ったらFALSEを明示してください。</p></blockquote>



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



<h3 class="wp-block-heading"><span id="toc9">同じシート内でデータを検索する</span></h3>



<p>商品コードから商品名を取得する例で見てみましょう。</p>



<p>B列〜D列に商品マスタがあるとします。B列が商品コード、C列が商品名、D列が価格です。</p>



<p>G2に入力したコードから商品名を取得するにはこう書きます。</p>



<pre class="wp-block-code"><code>=VLOOKUP(G2, B2:D100, 2, FALSE)</code></pre>



<p>各引数の意味は次のとおりです。</p>



<ul class="wp-block-list"><li>G2：検索値（入力した商品コード）</li><li>B2:D100：範囲（商品マスタ全体）</li><li>2：範囲の左から2列目（商品名）を返す</li><li>FALSE：完全一致で検索</li></ul>



<h3 class="wp-block-heading"><span id="toc10">別シートのデータを参照する</span></h3>



<p>実務では検索先が別シートにあることがほとんどです。シート名のあとに「!」をつけて範囲を指定します。</p>



<pre class="wp-block-code"><code>=VLOOKUP(A2, マスタ!A:D, 3, FALSE)</code></pre>



<p>シート名に空白が含まれる場合は、シングルクォーテーションで囲みます。</p>



<pre class="wp-block-code"><code>=VLOOKUP(A2, '商品 マスタ'!A:D, 3, FALSE)</code></pre>



<p>別ブックのデータを参照する場合は、ブック名を角括弧で囲みます。</p>



<pre class="wp-block-code"><code>=VLOOKUP(A2, [顧客マスタ.xlsx]顧客情報!A:D, 4, FALSE)</code></pre>



<h3 class="wp-block-heading"><span id="toc11">絶対参照のポイント（F4キー）</span></h3>



<p>VLOOKUPを下方向にコピーすると、範囲がズレることがあります。範囲は絶対参照で固定しましょう。</p>



<p>セル参照を選択した状態でF4キーを押すと「$」がつきます。</p>



<pre class="wp-block-code"><code>=VLOOKUP(A2, $B$2:$D$100, 2, FALSE)</code></pre>



<p>検索値のA2は相対参照のまま、範囲だけ固定するのが正しい使い方です。</p>



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



<h3 class="wp-block-heading"><span id="toc13">IFERROR関数と組み合わせてエラーを回避する</span></h3>



<p>VLOOKUPは検索値が見つからないと#N/Aエラーを返します。資料の見栄えが悪いですし、後続の計算にも影響します。</p>



<p><a href="https://mashukabu.com/excel-function-howto-use-iferror/">IFERROR関数</a>で囲めば、エラー時に任意の値を表示できます。</p>



<pre class="wp-block-code"><code>=IFERROR(VLOOKUP(A2, マスタ!$A:$D, 3, FALSE), &quot;該当なし&quot;)</code></pre>



<p>実務では「該当なし」や空文字「&#8221;&#8221;」を指定するケースが多いです。</p>



<h3 class="wp-block-heading"><span id="toc14">近似一致（TRUE）で価格帯・ランク判定する</span></h3>



<p>売上金額からランクを判定する場面では、近似一致が便利です。</p>



<p>たとえば、ランク表が次のようになっているとします。</p>



<figure class="wp-block-table"><table><thead><tr><th>下限金額</th><th>ランク</th></tr></thead><tbody><tr><td>0</td><td>C</td></tr><tr><td>100000</td><td>B</td></tr><tr><td>300000</td><td>A</td></tr><tr><td>500000</td><td>S</td></tr></tbody></table></figure>



<p>この表をF2:G5に置いたとします。B2の売上金額に対してランクを返すにはこう書きます。</p>



<pre class="wp-block-code"><code>=VLOOKUP(B2, $F$2:$G$5, 2, TRUE)</code></pre>



<p>B2が250,000なら「B」が返ります。250,000以下の最大値は100,000なので、その行のランクが選ばれるわけです。</p>



<p>近似一致を使うときは、下限金額を必ず昇順で並べてください。</p>



<h3 class="wp-block-heading"><span id="toc15">ワイルドカードで部分一致検索する</span></h3>



<p>検索の型をFALSEにしたまま、ワイルドカードで部分一致検索ができます。</p>



<pre class="wp-block-code"><code>=VLOOKUP(&quot;*東京*&quot;, A2:C100, 2, FALSE)</code></pre>



<p>「*」は任意の文字列、「?」は任意の1文字にマッチします。「東京」を含む最初のデータを探したいときに使えます。</p>



<p>セル参照を使う場合は「&#038;」で連結します。</p>



<pre class="wp-block-code"><code>=VLOOKUP(&quot;*&quot;&amp;E2&amp;&quot;*&quot;, A2:C100, 2, FALSE)</code></pre>



<h3 class="wp-block-heading"><span id="toc16">複数条件で検索する（補助列の活用）</span></h3>



<p>VLOOKUPは検索値をひとつしか指定できません。「部署」と「役職」の2条件で検索したい場合は、補助列を作りましょう。</p>



<p>補助列に2つの値を「&#038;」で連結した値を入れます。</p>



<pre class="wp-block-code"><code>=A2&amp;&quot;-&quot;&amp;B2</code></pre>



<p>VLOOKUPの検索値も同じように連結します。</p>



<pre class="wp-block-code"><code>=VLOOKUP(E2&amp;&quot;-&quot;&amp;F2, 補助列を含む範囲, 列番号, FALSE)</code></pre>



<p>補助列を増やしたくない場合は、<a href="https://mashukabu.com/excel-function-howto-use-index/">INDEX関数</a>と<a href="https://mashukabu.com/excel-function-howto-use-match/">MATCH関数</a>の組み合わせも検討してください。</p>



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



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



<p>「検索値が見つからない」という意味のエラーです。主な原因は次の4つです。</p>



<figure class="wp-block-table"><table><thead><tr><th>原因</th><th>確認ポイント</th><th>対処法</th></tr></thead><tbody><tr><td>値が存在しない</td><td>マスタ側に該当データがあるか</td><td>データを追加するか、IFERRORで対処</td></tr><tr><td>データ型の不一致</td><td>数値と文字列が混在していないか</td><td><a href="https://mashukabu.com/excel-function-howto-use-value/">VALUE関数</a>で統一</td></tr><tr><td>余分なスペース</td><td>見えない空白が入っていないか</td><td><a href="https://mashukabu.com/excel-function-howto-use-trim/">TRIM関数</a>で除去</td></tr><tr><td>範囲がズレている</td><td>絶対参照をつけ忘れていないか</td><td>F4キーで$を付与</td></tr></tbody></table></figure>



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



<p>列番号が範囲の列数を超えているときに出ます。</p>



<p>たとえば範囲がA:Cの3列なのに、列番号に4を指定した場合です。列を削除した直後にも起こりやすいエラーです。範囲と列番号の対応を見直してください。</p>



<h3 class="wp-block-heading"><span id="toc20">間違った値が返る</span></h3>



<p>エラーにはならないのに、期待と違う値が返る。これが一番やっかいなケースです。</p>



<p>最も多い原因は「検索の型を省略してTRUEになっているのに、データが昇順ソートされていない」パターンです。FALSEを明示すれば解決します。</p>



<p>もうひとつは範囲の最左列が検索対象と一致していないケースです。範囲の開始列を確認してみてください。</p>



<h2 class="wp-block-heading"><span id="toc21">VLOOKUPの弱点と代替関数の使い分け</span></h2>



<p>VLOOKUPは便利ですが、万能ではありません。弱点を知っておくと、場面に応じた関数選びがスムーズになります。</p>



<h3 class="wp-block-heading"><span id="toc22">VLOOKUPの3つの制約</span></h3>



<ol class="wp-block-list"><li><strong>左方向に検索できない</strong>: 範囲の最左列でしか検索できません。検索値の左側にある列の値は取得できません</li><li><strong>列番号がハードコード</strong>: 列の挿入や削除で番号がズレて壊れます</li><li><strong>最初の一致しか返さない</strong>: 重複データがあっても、最初に見つかった1件だけが返ります</li></ol>



<h3 class="wp-block-heading"><span id="toc23">VLOOKUP / INDEX+MATCH / XLOOKUP 比較表</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>特徴</th><th>VLOOKUP</th><th>INDEX+MATCH</th><th>XLOOKUP</th></tr></thead><tbody><tr><td>左方向検索</td><td>不可</td><td>可能</td><td>可能</td></tr><tr><td>列追加への耐性</td><td>弱い（番号ズレ）</td><td>強い</td><td>強い</td></tr><tr><td>エラー時の既定値</td><td>IFERROR必要</td><td>IFERROR必要</td><td>引数で指定可</td></tr><tr><td>デフォルトの一致方式</td><td>近似一致（TRUE）</td><td>完全一致（0指定）</td><td>完全一致</td></tr><tr><td>必要なExcelバージョン</td><td>全バージョン</td><td>全バージョン</td><td>2021以降 / 365</td></tr><tr><td>数式の読みやすさ</td><td>シンプル</td><td>やや複雑</td><td>シンプル</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc24">どの関数を選べばいい？</span></h3>



<p>判断基準はシンプルです。</p>



<ul class="wp-block-list"><li><strong>Excel 2021 / 365を使っている</strong> → <a href="https://mashukabu.com/excel-function-howto-use-xlookup/">XLOOKUP関数</a>を第一候補に。VLOOKUPの弱点をすべて解消しています</li><li><strong>古いバージョンとの互換性が必要</strong> → VLOOKUPで足りるならVLOOKUP。左方向検索が必要なら<a href="https://mashukabu.com/excel-function-howto-use-index/">INDEX関数</a> + <a href="https://mashukabu.com/excel-function-howto-use-match/">MATCH関数</a></li><li><strong>シンプルな右方向検索だけ</strong> → VLOOKUPで十分です</li></ul>



<p>VLOOKUPは「古い関数」と言われることもありますが、多くの場面で今も問題なく使えます。無理に乗り換える必要はありません。</p>



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



<p>VLOOKUPのポイントを振り返ります。</p>



<ul class="wp-block-list"><li>構文は <code>=VLOOKUP(検索値, 範囲, 列番号, 検索の型)</code> の4引数</li><li>検索の型は省略せずFALSEを明示するのが安全</li><li>範囲の絶対参照とIFERRORの組み合わせは実務の必須テクニック</li><li>#N/Aエラーは「データ型の不一致」や「余分なスペース」を疑う</li><li>左方向検索や列追加への耐性が必要ならXLOOKUPやINDEX+MATCHを検討</li></ul>



<p>まずは基本の完全一致検索をマスターしましょう。そこからIFERRORやワイルドカードのテクニックを組み合わせてみてください。</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-match/">Excelの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-iferror/">IFERROR関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-trim/">ExcelのTRIM関数の使い方｜余分なスペースを一括削除する方法</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-value/">VALUE関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-substitute/">ExcelのSUBSTITUTE関数の使い方｜文字列を置き換える方法</a></li><li><a href="https://mashukabu.com/excel-function-alphabetical-order">アルファベット順 Excel関数一覧</a></li><li><a href="https://mashukabu.com/excel-function-list-by-function/">機能別 Excel関数一覧</a></li></ul>



<h3 class="wp-block-heading"><span id="toc27">エラー値についてのまとめ記事</span></h3>



<p>関数でエラーが発生した際に表示されるエラーの種類と対処方法は、以下の記事でまとめています。</p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-error-value-list/">【Excel】セルに表示されるエラーの種類と原因、対処方法を解説</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-vlookup/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
