<?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>XLOOKUP &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/xlookup/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Thu, 04 Jun 2026 14:42:28 +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>XLOOKUP &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>スプレッドシートのVLOOKUP・XLOOKUP・INDEX/MATCH 使い分けガイド｜どの検索関数を選ぶか</title>
		<link>https://mashukabu.com/sheets-vlookup-xlookup-index-match/</link>
					<comments>https://mashukabu.com/sheets-vlookup-xlookup-index-match/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 30 Apr 2026 11:44:10 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[INDEX/MATCH]]></category>
		<category><![CDATA[VLOOKUP]]></category>
		<category><![CDATA[XLOOKUP]]></category>
		<category><![CDATA[スプレッドシート]]></category>
		<category><![CDATA[検索関数]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=6410</guid>

					<description><![CDATA[GoogleスプレッドシートのVLOOKUP・XLOOKUP・INDEX/MATCHを3軸で徹底比較。3ステップ選択フローで迷わず選べる判断基準、書き換え手順、#N/Aエラー対処まで実例付きで解説。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Googleスプレッドシートで「別の表から値を取り出したい」場面、毎日のように出てきますよね。</p>



<p class="wp-block-paragraph">VLOOKUPは定番の検索関数ですが、使い込むほど「左側の列が返せない」「列を挿入したら番号がズレた」「Excelで開いたら#NAME?エラーになった」といった壁にぶつかります。そこでXLOOKUPやINDEX/MATCHが候補に挙がるのですが、「結局3つのうちどれを使えばいいのか」で迷う方も多いのではないでしょうか。</p>



<p class="wp-block-paragraph">この記事では、スプレッドシートの3つの検索関数を「検索方向」「複数列返却」「Excel互換性」など7項目で徹底比較します。3つの質問に答えるだけで使うべき関数が決まる選択フロー、VLOOKUPからXLOOKUPへの書き換え手順（4パターン）、#N/Aだけでなく#REF!や#VALUE!も含めたエラー対処、そして実務シーン別のおすすめパターン集まで一気通貫で解説します。</p>



<p class="wp-block-paragraph">読み終わるころには「自分のケースはこれ」と迷いなく選べるようになりますよ。</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">3つの検索関数の違いを30秒で理解する【結論】</a><ol><li><a href="#toc2" tabindex="0">各関数の役割を一文で言うと</a></li><li><a href="#toc3" tabindex="0">「最新のXLOOKUPだけ使えばいい」が成立しない3つの理由</a></li></ol></li><li><a href="#toc4" tabindex="0">VLOOKUP・XLOOKUP・INDEX/MATCH 機能比較表（7項目）</a><ol><li><a href="#toc5" tabindex="0">検索方向の違い（左方向検索ができるか）</a></li><li><a href="#toc6" tabindex="0">複数列を一度に返せるか（スピル機能）</a></li><li><a href="#toc7" tabindex="0">Excelファイルで開いたときの互換性</a></li><li><a href="#toc8" tabindex="0">列挿入時のズレ耐性</a></li></ol></li><li><a href="#toc9" tabindex="0">3ステップ選択フロー｜どの検索関数を使うか3つの質問で決める</a><ol><li><a href="#toc10" tabindex="0">STEP1：左側の列を検索する必要があるか</a></li><li><a href="#toc11" tabindex="0">STEP2：Excelで開くことがあるか</a></li><li><a href="#toc12" tabindex="0">STEP3：2次元検索が必要か</a></li><li><a href="#toc13" tabindex="0">3ステップを1枚にまとめると</a></li></ol></li><li><a href="#toc14" tabindex="0">VLOOKUPからXLOOKUPへの書き換え手順【4パターン】</a><ol><li><a href="#toc15" tabindex="0">パターン1：基本の書き換え（1列を返す）</a></li><li><a href="#toc16" tabindex="0">パターン2：複数列を一度に返す（スピル活用）</a></li><li><a href="#toc17" tabindex="0">パターン3：エラー処理を組み込む</a></li><li><a href="#toc18" tabindex="0">パターン4：ワイルドカード検索</a></li></ol></li><li><a href="#toc19" tabindex="0">INDEX/MATCHが真価を発揮する3つの場面</a><ol><li><a href="#toc20" tabindex="0">場面1：左方向検索（部署名から社員IDを引く）</a></li><li><a href="#toc21" tabindex="0">場面2：2次元検索（行×列キーで値を特定）</a></li><li><a href="#toc22" tabindex="0">場面3：Excel互換性が必要な複雑な検索</a></li></ol></li><li><a href="#toc23" tabindex="0">検索関数で頻出する#N/A・#REF!・#VALUE!エラーの対処法</a><ol><li><a href="#toc24" tabindex="0">#N/Aエラー（一致する値が見つからない）</a></li><li><a href="#toc25" tabindex="0">#REF!エラー（参照範囲が無効）</a></li><li><a href="#toc26" tabindex="0">#VALUE!エラー（引数の型が不正）</a></li></ol></li><li><a href="#toc27" tabindex="0">ケース別おすすめパターン集（実務シーン6選）</a><ol><li><a href="#toc28" tabindex="0">シーン1：商品マスタから単価を引いてくる（請求書作成など）</a></li><li><a href="#toc29" tabindex="0">シーン2：社員名簿から氏名・部署を一度に取り出す（人事系資料）</a></li><li><a href="#toc30" tabindex="0">シーン3：部署名から代表者の社員IDを逆引きする</a></li><li><a href="#toc31" tabindex="0">シーン4：月×支店のクロス集計から値を取り出す</a></li><li><a href="#toc32" tabindex="0">シーン5：取引先名を「あいまい検索」で引く</a></li><li><a href="#toc33" tabindex="0">シーン6：Excel 2016と共有しつつ左方向検索が必要</a></li></ol></li><li><a href="#toc34" tabindex="0">まとめ｜スプレッドシートでの検索関数ベストプラクティス</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">3つの検索関数の違いを30秒で理解する【結論】</span></h2>



<p class="wp-block-paragraph">まずは結論から押さえましょう。VLOOKUP・XLOOKUP・INDEX/MATCHの3つは、それぞれ得意な場面が違います。</p>



<h3 class="wp-block-heading"><span id="toc2">各関数の役割を一文で言うと</span></h3>



<p class="wp-block-paragraph">3つを乱暴に一言でまとめると、次のようになります。</p>



<ul class="wp-block-list"><li><strong>VLOOKUP</strong>: 表の先頭列で検索して、右側の列の値を返す。シンプルだけど制限が多い「定番」関数</li><li><strong>XLOOKUP</strong>: VLOOKUPの制限を解消した後継。左右どちらにも検索でき、エラー処理も内蔵されている「最新型」</li><li><strong>INDEX/MATCH</strong>: 2つの関数を組み合わせて使う「上級者向け万能ナイフ」。2次元検索や左方向検索に強い</li></ul>



<p class="wp-block-paragraph">VLOOKUPは「範囲の先頭列を検索して、右側の列を返す」関数です。構文がシンプルで、Excelとも互換性が高いのが強みです。ただし、検索キーは必ず先頭列（左端列）に置く必要があり、左方向の検索はできません。</p>



<p class="wp-block-paragraph">XLOOKUPは2022年8月にGoogleスプレッドシートで使えるようになった、比較的新しい関数です。VLOOKUPの制限を解消し、左右どちらの方向にも検索できます。第4引数（missing_value）に値を指定すれば、IFERROR（エラー発生時に代替値を返す関数）なしで#N/A対策ができます。</p>



<p class="wp-block-paragraph">INDEX/MATCHは2つの関数を組み合わせた検索パターンです。INDEX関数（指定した行・列の値を返す関数）とMATCH関数（値の相対位置を返す関数）を組み合わせて使います。検索列と返す列を独立して指定できるため、柔軟性が最も高い方法です。</p>



<h3 class="wp-block-heading"><span id="toc3">「最新のXLOOKUPだけ使えばいい」が成立しない3つの理由</span></h3>



<p class="wp-block-paragraph">「いちばん新しいXLOOKUPを使えば全部解決では？」と思いがちですが、実務ではそう単純ではありません。理由は3つあります。</p>



<ol class="wp-block-list"><li><strong>Excel互換性の壁</strong>: Excel 2016/2019で開くと#NAME?エラーになる</li><li><strong>2次元検索の壁</strong>: 行キー×列キーの検索はINDEX/MATCHのほうがシンプル</li><li><strong>既存資産の壁</strong>: VLOOKUPで組まれた数百本の数式を一気に書き換えるのは現実的でない</li></ol>



<p class="wp-block-paragraph">Excelとのファイル共有が必要な場面では、VLOOKUPかINDEX/MATCHのほうが安全です。XLOOKUPはExcel 2021またはMicrosoft 365以降でしか動かないからです。</p>



<p class="wp-block-paragraph">行と列の両方でキーを指定する2次元検索を1つの数式で完結させたい場合は、INDEX/MATCHが最も扱いやすい選択肢になります。XLOOKUPでも2次元検索はできますが、XLOOKUPを入れ子にする書き方になり、かえって読みにくくなります。</p>



<p class="wp-block-paragraph">また、すでにVLOOKUPで構築された既存テンプレートが社内に多く存在する場合、それを全部XLOOKUPへ置き換える工数とリスクを考えると、新規分だけXLOOKUPを採用する方が現実的なこともあります。</p>



<p class="wp-block-paragraph">つまり「3つを場面で使い分ける」のが最も実務的なんです。次の章で詳しく比較していきましょう。</p>



<h2 class="wp-block-heading"><span id="toc4">VLOOKUP・XLOOKUP・INDEX/MATCH 機能比較表（7項目）</span></h2>



<p class="wp-block-paragraph">3関数の違いを7つの観点で表にまとめました。手元のケースと照らし合わせて、どれが当てはまるか見てみてください。</p>



<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>可</td><td>可</td></tr><tr><td>複数列を一度に返せるか</td><td>不可</td><td>可（スピル）</td><td>可（要工夫）</td></tr><tr><td>Excel 2016/2019との互換性</td><td>対応</td><td>非対応（#NAME?エラー）</td><td>対応</td></tr><tr><td>#N/Aエラー処理の簡潔さ</td><td>IFERROR/IFNAが必要</td><td>第4引数で直接指定可</td><td>IFERROR/IFNAが必要</td></tr><tr><td>2次元検索（行・列キー指定）</td><td>不可</td><td>可（入れ子で対応）</td><td>可（最も書きやすい）</td></tr><tr><td>列挿入時のズレ耐性</td><td>弱い（列番号が手動）</td><td>強い（列を直接参照）</td><td>強い（列を直接参照）</td></tr><tr><td>数式の複雑さ</td><td>低（単関数）</td><td>低（単関数）</td><td>中〜高（2関数の組み合わせ）</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc5">検索方向の違い（左方向検索ができるか）</span></h3>



<p class="wp-block-paragraph">VLOOKUPで最も多く遭遇する制限が「左方向検索ができない」問題です。</p>



<p class="wp-block-paragraph">たとえば、A列に社員ID、B列に氏名、C列に部署名という名簿があるとします。「部署名から社員IDを調べたい」場合、VLOOKUPでは対応できません。返したい列（A列の社員ID）が、検索したい列（C列の部署名）より左にあるからです。</p>



<p class="wp-block-paragraph">XLOOKUPとINDEX/MATCHはこの制限がなく、どの方向にも検索できます。具体的な書き方は後の章で見ていきましょう。</p>



<h3 class="wp-block-heading"><span id="toc6">複数列を一度に返せるか（スピル機能）</span></h3>



<p class="wp-block-paragraph">XLOOKUPはresult_range（返す範囲）に複数列を指定すれば、該当行の複数値を一度に返せます。スピル機能（1つの数式で複数セルに値が広がる機能）に対応しているからです。</p>



<pre class="wp-block-code"><code>=XLOOKUP(F2, A2:A100, B2:D100)</code></pre>



<p class="wp-block-paragraph">この数式1本で、商品名・単価・在庫の3列を一度に取り出せます。VLOOKUPは1数式で1列しか返せないため、3列欲しければ3本の数式を書く必要があります。</p>



<p class="wp-block-paragraph">INDEX/MATCHでも複数列を返せますが、MATCHを別セルに切り出して参照する形にするのが一般的です。</p>



<h3 class="wp-block-heading"><span id="toc7">Excelファイルで開いたときの互換性</span></h3>



<p class="wp-block-paragraph">XLOOKUPはExcel 2021またはMicrosoft 365以降でのみ動作します。Excel 2016・2019（永続ライセンス版）は非対応です。</p>



<p class="wp-block-paragraph">スプレッドシートで作成したXLOOKUP数式をExcel形式（.xlsx）でダウンロードし、古いExcelで開くと、#NAME?エラーが表示されます。#NAME?は「関数名を認識できない」ときに出るエラーです。</p>



<p class="wp-block-paragraph">Excelファイルを社外に共有する機会がある場合や、古いバージョンを使う方と協働する場合は、VLOOKUPかINDEX/MATCHを選ぶほうが安心です。</p>



<h3 class="wp-block-heading"><span id="toc8">列挿入時のズレ耐性</span></h3>



<p class="wp-block-paragraph">VLOOKUPの第3引数「2」「3」という列番号指定は、列を追加・削除したときに崩れるリスクがあります。</p>



<p class="wp-block-paragraph">たとえば次の数式を考えてみてください。</p>



<pre class="wp-block-code"><code>=VLOOKUP(F2, A:C, 2, FALSE)</code></pre>



<p class="wp-block-paragraph">A:Cの範囲でF2を検索し、2列目（B列）を返す数式です。ここでA列とB列の間に「商品略称」列を挿入すると、もともとのB列はC列にズレます。しかしVLOOKUPの「2」はそのままなので、新しい「商品略称」列を返してしまいます。</p>



<p class="wp-block-paragraph">XLOOKUPとINDEX/MATCHは列を直接参照する（<code>B:B</code>のように書く）ため、列の挿入があっても参照が自動更新され、ズレません。この差はメンテナンス性に大きく影響します。</p>



<h2 class="wp-block-heading"><span id="toc9">3ステップ選択フロー｜どの検索関数を使うか3つの質問で決める</span></h2>



<p class="wp-block-paragraph">「比較表は見たけど、結局自分はどれを使えばいいの？」という方のために、3つの質問に答えるだけで決まる選択フローを用意しました。</p>



<h3 class="wp-block-heading"><span id="toc10">STEP1：左側の列を検索する必要があるか</span></h3>



<p class="wp-block-paragraph">「検索キーより左にある列の値を返したい」場合は、VLOOKUPは使えません。XLOOKUPかINDEX/MATCHに進んでください。</p>



<p class="wp-block-paragraph">検索キーが左端列にあり、返す値は右側にある場合は、VLOOKUPも選択肢になります。STEP2へ進みましょう。</p>



<h3 class="wp-block-heading"><span id="toc11">STEP2：Excelで開くことがあるか</span></h3>



<p class="wp-block-paragraph">スプレッドシートだけで完結するなら、XLOOKUPがおすすめです。数式が短く、エラー処理も簡単です。</p>



<p class="wp-block-paragraph">Excel 2016・2019などの古いバージョンでファイルを開く可能性があるなら、VLOOKUPかINDEX/MATCHを選んでください。Excel 2021 / Microsoft 365のみなら、XLOOKUPでも問題ありません。</p>



<h3 class="wp-block-heading"><span id="toc12">STEP3：2次元検索が必要か</span></h3>



<p class="wp-block-paragraph">行と列の両方でキーを指定したい場合（例：「4月×東京支店の売上」を取り出す）は、INDEX/MATCHが最適です。</p>



<p class="wp-block-paragraph">STEP1・2でVLOOKUPやXLOOKUPを選んだ場合でも、2次元検索が必要な場面ではINDEX/MATCHに切り替えましょう。</p>



<h3 class="wp-block-heading"><span id="toc13">3ステップを1枚にまとめると</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>左方向検索が不要 &#038; Excel共有が不要</td><td><strong>XLOOKUP</strong></td></tr><tr><td>左方向検索が不要 &#038; Excel共有が必要（古いExcel含む）</td><td><strong>VLOOKUP</strong></td></tr><tr><td>左方向検索が必要</td><td><strong>INDEX/MATCH</strong>（共有不要ならXLOOKUPも可）</td></tr><tr><td>2次元検索が必要（行×列キー）</td><td><strong>INDEX/MATCH</strong></td></tr><tr><td>Excel 2021 / Microsoft 365のみで共有</td><td><strong>XLOOKUP</strong>（Excelでも動作可）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">迷ったら「Excelとの共有があるかどうか」を最初に確認するのがコツです。社内資料や社外提出が絡む場面では互換性が最優先になりますよ。</p>



<h2 class="wp-block-heading"><span id="toc14">VLOOKUPからXLOOKUPへの書き換え手順【4パターン】</span></h2>



<p class="wp-block-paragraph">XLOOKUPは、スプレッドシート専用でExcel共有が不要なら、VLOOKUPよりシンプルに書けます。既存のVLOOKUP数式をXLOOKUPへ書き換える4つのパターンを見ていきましょう。</p>



<p class="wp-block-paragraph">次のサンプルデータを共通で使います。F2セルに商品コードを入力する想定です。</p>



<figure class="wp-block-table"><table><thead><tr><th>A列（商品コード）</th><th>B列（商品名）</th><th>C列（単価）</th><th>D列（在庫数）</th></tr></thead><tbody><tr><td>A001</td><td>りんご</td><td>120</td><td>50</td></tr><tr><td>A002</td><td>バナナ</td><td>80</td><td>80</td></tr><tr><td>A003</td><td>みかん</td><td>150</td><td>30</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc15">パターン1：基本の書き換え（1列を返す）</span></h3>



<p class="wp-block-paragraph">最もシンプルな書き換えパターンです。</p>



<p class="wp-block-paragraph"><strong>VLOOKUP（ビフォー）</strong></p>



<pre class="wp-block-code"><code>=VLOOKUP(F2, A:C, 2, FALSE)</code></pre>



<p class="wp-block-paragraph">A:Cの先頭列（A列）でF2を検索し、2列目（B列）の値を返します。</p>



<p class="wp-block-paragraph"><strong>XLOOKUP（アフター）</strong></p>



<pre class="wp-block-code"><code>=XLOOKUP(F2, A:A, B:B)</code></pre>



<p class="wp-block-paragraph">A:AでF2を検索し、B:Bの値を返します。「何列目」ではなく、列を直接指定しているのがポイントです。F2が「A002」のとき、どちらの数式も「バナナ」を返します。</p>



<p class="wp-block-paragraph">VLOOKUPの「2」が、XLOOKUPでは「B:B」という列の直接参照に置き換わっていますね。</p>



<h3 class="wp-block-heading"><span id="toc16">パターン2：複数列を一度に返す（スピル活用）</span></h3>



<p class="wp-block-paragraph">商品名・単価・在庫を1数式で取り出したい場合です。</p>



<p class="wp-block-paragraph"><strong>VLOOKUP（3本必要）</strong></p>



<pre class="wp-block-code"><code>=VLOOKUP(F2, A:D, 2, FALSE)  // 商品名
=VLOOKUP(F2, A:D, 3, FALSE)  // 単価
=VLOOKUP(F2, A:D, 4, FALSE)  // 在庫</code></pre>



<p class="wp-block-paragraph"><strong>XLOOKUP（1本でOK）</strong></p>



<pre class="wp-block-code"><code>=XLOOKUP(F2, A:A, B:D)</code></pre>



<p class="wp-block-paragraph">B:Dという複数列の範囲を指定するだけで、スピル機能により隣の2セルにも値が自動で広がります。数式の本数が3本→1本になり、メンテナンスもラクになります。</p>



<h3 class="wp-block-heading"><span id="toc17">パターン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(F2, A:C, 2, FALSE), &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph"><strong>XLOOKUP（第4引数）</strong></p>



<pre class="wp-block-code"><code>=XLOOKUP(F2, A:A, B:B, &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">XLOOKUPは第4引数（missing_value）にエラー時の値を直接書けるため、IFERRORで外側を囲む必要がありません。数式が1段短くなりますよ。</p>



<h3 class="wp-block-heading"><span id="toc18">パターン4：ワイルドカード検索</span></h3>



<p class="wp-block-paragraph">「商品コードの一部だけ覚えている」場合などに使うワイルドカード（<code>*</code>や<code>?</code>）検索の書き換えです。</p>



<p class="wp-block-paragraph"><strong>VLOOKUP（完全一致モードでワイルドカード可）</strong></p>



<pre class="wp-block-code"><code>=VLOOKUP(&quot;A00*&quot;, A:C, 2, FALSE)</code></pre>



<p class="wp-block-paragraph">VLOOKUPでは第4引数を <code>FALSE</code>（完全一致）にした状態であれば、<code>*</code>（任意の文字列）や <code>?</code>（任意の1文字）が使えます。</p>



<p class="wp-block-paragraph"><strong>XLOOKUP（一致モードに2を指定）</strong></p>



<pre class="wp-block-code"><code>=XLOOKUP(&quot;A00*&quot;, A:A, B:B, &quot;該当なし&quot;, 2)</code></pre>



<p class="wp-block-paragraph">XLOOKUPでは第5引数（一致モード）に「2」を指定すると、ワイルドカードが有効になります。指定しないと完全一致モード（既定値0）で動くため、<code>*</code>や<code>?</code>が文字列として扱われてしまいます。</p>



<p class="wp-block-paragraph">書き換え時にこの引数を忘れがちなので注意してくださいね。</p>



<h2 class="wp-block-heading"><span id="toc19">INDEX/MATCHが真価を発揮する3つの場面</span></h2>



<p class="wp-block-paragraph">「INDEX/MATCHは古い・複雑そう」と敬遠されがちですが、3つの場面では今でも最強の選択肢です。</p>



<h3 class="wp-block-heading"><span id="toc20">場面1：左方向検索（部署名から社員IDを引く）</span></h3>



<p class="wp-block-paragraph">A列に社員ID、B列に氏名、C列に部署という名簿で、「営業部の社員IDを取り出したい」場合を考えます。</p>



<figure class="wp-block-table"><table><thead><tr><th>A列（社員ID）</th><th>B列（氏名）</th><th>C列（部署）</th></tr></thead><tbody><tr><td>E001</td><td>山田太郎</td><td>営業部</td></tr><tr><td>E002</td><td>鈴木花子</td><td>経理部</td></tr><tr><td>E003</td><td>佐藤次郎</td><td>総務部</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>INDEX/MATCH</strong></p>



<pre class="wp-block-code"><code>=INDEX(A:A, MATCH(&quot;営業部&quot;, C:C, 0))</code></pre>



<p class="wp-block-paragraph">MATCHで「営業部」がC列の何行目にあるかを調べ、その行のA列の値をINDEXで取り出します。MATCHの第3引数「0」は完全一致を意味します。</p>



<p class="wp-block-paragraph">XLOOKUPでも同じことができますが、INDEX/MATCHは「検索列と返す列を完全に独立して指定する」発想なので、表構造の柔軟性ではINDEX/MATCHのほうが一枚上手です。</p>



<h3 class="wp-block-heading"><span id="toc21">場面2：2次元検索（行×列キーで値を特定）</span></h3>



<p class="wp-block-paragraph">月別×支店別の売上クロス集計表から、「5月の大阪支店の売上」を取り出す場合です。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>4月</th><th>5月</th><th>6月</th></tr></thead><tbody><tr><td>東京</td><td>500</td><td>600</td><td>550</td></tr><tr><td>大阪</td><td>400</td><td>450</td><td>480</td></tr><tr><td>名古屋</td><td>300</td><td>350</td><td>320</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">シート上のA1:D4にこの表があるとします。F2に「大阪」、G2に「5月」が入力されている前提です。</p>



<p class="wp-block-paragraph"><strong>INDEX/MATCH/MATCH</strong></p>



<pre class="wp-block-code"><code>=INDEX(B2:D4, MATCH(F2, A2:A4, 0), MATCH(G2, B1:D1, 0))</code></pre>



<ul class="wp-block-list"><li>1つ目のMATCHで「大阪」が行のどこにあるか（2行目）を調べる</li><li>2つ目のMATCHで「5月」が列のどこにあるか（2列目）を調べる</li><li>INDEXで「2行目・2列目」の値である450を返す</li></ul>



<p class="wp-block-paragraph"><strong>XLOOKUPで書くと（入れ子になる）</strong></p>



<pre class="wp-block-code"><code>=XLOOKUP(F2, A2:A4, XLOOKUP(G2, B1:D1, B2:D4))</code></pre>



<p class="wp-block-paragraph">XLOOKUPでも書けますが、内側のXLOOKUPが配列を返し、それを外側のXLOOKUPが処理する構造で、慣れていないと読みにくいです。INDEX/MATCH/MATCHのほうが「行を決める→列を決める→値を取る」という発想がそのまま数式に表れていて、可読性が高いです。</p>



<h3 class="wp-block-heading"><span id="toc22">場面3：Excel互換性が必要な複雑な検索</span></h3>



<p class="wp-block-paragraph">「Excel 2016を使う取引先と共有するが、左方向検索も必要」という板挟みの状況では、INDEX/MATCH一択になります。XLOOKUPはExcel 2016では#NAME?エラー、VLOOKUPは左方向検索ができないため、両方の制約を満たせるのはINDEX/MATCHだけです。</p>



<p class="wp-block-paragraph">特に経理・人事系のテンプレートはExcelで作られていることが多いので、その業務領域ではINDEX/MATCHを覚えておく価値が高いですよ。</p>



<h2 class="wp-block-heading"><span id="toc23">検索関数で頻出する#N/A・#REF!・#VALUE!エラーの対処法</span></h2>



<p class="wp-block-paragraph">検索関数を使っていると遭遇する3大エラーと、それぞれの対処法をまとめます。</p>



<h3 class="wp-block-heading"><span id="toc24">#N/Aエラー（一致する値が見つからない）</span></h3>



<p class="wp-block-paragraph">最も多く遭遇するのが#N/Aです。検索キーが範囲内に存在しない場合に表示されます。</p>



<p class="wp-block-paragraph"><strong>対処法1: IFERROR で全エラーを処理</strong></p>



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



<p class="wp-block-paragraph">ただしIFERRORは#N/A以外のエラー（#REF!や#VALUE!）も同じ「該当なし」に置き換えてしまうため、数式のバグを見逃すリスクがあります。</p>



<p class="wp-block-paragraph"><strong>対処法2: IFNA で #N/A のみ処理（推奨）</strong></p>



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



<p class="wp-block-paragraph">IFNAは#N/Aだけを処理し、他のエラーはそのまま表示します。バグに気づきやすくなるため、こちらの方が安全です。</p>



<p class="wp-block-paragraph"><strong>対処法3: XLOOKUP の第4引数（最もシンプル）</strong></p>



<pre class="wp-block-code"><code>=XLOOKUP(F2, A:A, B:B, &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">XLOOKUPなら第4引数を指定するだけで完結します。</p>



<p class="wp-block-paragraph">3つの方法を比較すると次のようになります。</p>



<figure class="wp-block-table"><table><thead><tr><th>方式</th><th>数式の長さ</th><th>#N/A以外のエラー</th><th>デバッグ</th></tr></thead><tbody><tr><td>IFERROR</td><td>長い</td><td>隠れる（危険）</td><td>しにくい</td></tr><tr><td>IFNA</td><td>やや長い</td><td>表示される</td><td>しやすい</td></tr><tr><td>XLOOKUP第4引数</td><td>短い</td><td>表示される</td><td>しやすい</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">XLOOKUPが使える状況ならXLOOKUP第4引数方式、VLOOKUP/INDEX/MATCHならIFNAを使うのが鉄板です。IFERROR/IFNAの詳しい使い分けは<a href="https://mashukabu.com/sheets-if-ifs-iferror-ifna/">スプレッドシートのIF・IFS・IFERROR・IFNAの使い分けガイド</a>も参考にしてみてください。</p>



<h3 class="wp-block-heading"><span id="toc25">#REF!エラー（参照範囲が無効）</span></h3>



<p class="wp-block-paragraph">#REF!は「参照しているセルや列が削除された」「数式の参照範囲が無効になった」場合に発生します。</p>



<p class="wp-block-paragraph">検索関数で発生する典型ケース:</p>



<ul class="wp-block-list"><li>VLOOKUPの範囲内の列を削除した</li><li>別シート参照の元シートを削除した</li><li>スピル範囲が他のセルとぶつかった（XLOOKUPの複数列返却時）</li></ul>



<p class="wp-block-paragraph">対処は「数式の参照を見直す」のが基本です。エラーを覆い隠さず、原因を特定してから修正しましょう。</p>



<h3 class="wp-block-heading"><span id="toc26">#VALUE!エラー（引数の型が不正）</span></h3>



<p class="wp-block-paragraph">#VALUE!は「数値が必要な引数に文字列を入れた」など、引数の型が合わない場合に発生します。</p>



<p class="wp-block-paragraph">検索関数での典型ケース:</p>



<ul class="wp-block-list"><li>VLOOKUPの第3引数（列番号）に数値ではなく文字列を入れた</li><li>検索キーのセルに半角全角の混在がある（見た目が同じでも別物と判定される）</li><li>数値が文字列として保存されている（セルの左上に緑の三角マークが出る）</li></ul>



<p class="wp-block-paragraph">検索キー側と検索範囲側で、数値と文字列の型が一致しているかをまず確認しましょう。</p>



<h2 class="wp-block-heading"><span id="toc27">ケース別おすすめパターン集（実務シーン6選）</span></h2>



<p class="wp-block-paragraph">実務でよくある6つのシーンで、どの関数を選ぶべきかを整理しました。</p>



<h3 class="wp-block-heading"><span id="toc28">シーン1：商品マスタから単価を引いてくる（請求書作成など）</span></h3>



<p class="wp-block-paragraph">検索キー（商品コード）が左端にあり、右側の単価を返すだけのシンプルなケース。</p>



<ul class="wp-block-list"><li><strong>Excel共有なし</strong>: XLOOKUP（短くて読みやすい）</li><li><strong>Excel共有あり</strong>: VLOOKUP（互換性最優先）</li></ul>



<h3 class="wp-block-heading"><span id="toc29">シーン2：社員名簿から氏名・部署を一度に取り出す（人事系資料）</span></h3>



<p class="wp-block-paragraph">社員IDから氏名・部署を引く定番パターン。複数列返却が必要な場面です。</p>



<ul class="wp-block-list"><li><strong>Excel共有なし</strong>: XLOOKUP（スピル機能で1数式にまとめられる）</li><li><strong>Excel共有あり</strong>: VLOOKUP（列数だけ数式を書く）</li></ul>



<h3 class="wp-block-heading"><span id="toc30">シーン3：部署名から代表者の社員IDを逆引きする</span></h3>



<p class="wp-block-paragraph">返したい列（社員ID）が、検索したい列（部署）より左にある左方向検索ケース。</p>



<ul class="wp-block-list"><li><strong>Excel共有なし</strong>: XLOOKUP または INDEX/MATCH</li><li><strong>Excel共有あり（古いExcel含む）</strong>: INDEX/MATCH一択</li></ul>



<h3 class="wp-block-heading"><span id="toc31">シーン4：月×支店のクロス集計から値を取り出す</span></h3>



<p class="wp-block-paragraph">行と列の両方でキー指定が必要な2次元検索ケース。</p>



<ul class="wp-block-list"><li><strong>どの場面でも</strong>: INDEX/MATCH/MATCH（最も読みやすい）</li></ul>



<h3 class="wp-block-heading"><span id="toc32">シーン5：取引先名を「あいまい検索」で引く</span></h3>



<p class="wp-block-paragraph">「株式会社」をつけ忘れた取引先名でも引きたい場合のワイルドカード検索ケース。</p>



<ul class="wp-block-list"><li><strong>Excel共有なし</strong>: XLOOKUP（第5引数に2を指定）</li><li><strong>Excel共有あり</strong>: VLOOKUP（完全一致モードで<code>*</code>や<code>?</code>が使える）</li></ul>



<h3 class="wp-block-heading"><span id="toc33">シーン6：Excel 2016と共有しつつ左方向検索が必要</span></h3>



<p class="wp-block-paragraph">互換性と機能制約のダブルパンチ。INDEX/MATCH一択です。</p>



<ul class="wp-block-list"><li><strong>どの場面でも</strong>: INDEX/MATCH（XLOOKUPは#NAME?、VLOOKUPは方向制限）</li></ul>



<p class="wp-block-paragraph">迷ったらこの6シーンを思い出してみてください。実務の8割はこれでカバーできるはずですよ。</p>



<h2 class="wp-block-heading"><span id="toc34">まとめ｜スプレッドシートでの検索関数ベストプラクティス</span></h2>



<p class="wp-block-paragraph">Googleスプレッドシートの3つの検索関数を改めてまとめます。</p>



<ul class="wp-block-list"><li><strong>XLOOKUP</strong>: Excelとのファイル共有が不要なら第一候補。シンプルな構文と第4引数によるエラー処理、複数列のスピル返却が強みです</li><li><strong>VLOOKUP</strong>: Excelとの互換性を最優先する場面や、既存数式を大量に抱えているときに有効です</li><li><strong>INDEX/MATCH</strong>: 左方向検索・2次元検索・Excel互換性が同時に必要な場面での最強の組み合わせです</li></ul>



<p class="wp-block-paragraph">まずは「Excelファイル共有が必要かどうか」を判定基準の最上位に置きましょう。共有が不要ならXLOOKUPで統一、共有が必要ならVLOOKUPまたはINDEX/MATCHに切り替える、という指針で迷いが激減します。</p>



<p class="wp-block-paragraph">そのうえで、左方向検索や2次元検索といった「特殊な検索パターン」が出てきたら、INDEX/MATCHを取り出してくる、というのが実務の鉄板フローです。</p>



<p class="wp-block-paragraph">各関数の詳細な使い方は以下の記事で解説しています。本記事と合わせてご覧ください。</p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/sheets-vlookup-guide/">スプレッドシートのVLOOKUP完全ガイド｜基本から応用まで使い方を解説</a></li><li><a href="https://mashukabu.com/spreadsheet-xlookup/">スプレッドシートのXLOOKUP関数の使い方｜VLOOKUPとの違いも解説</a></li><li><a href="https://mashukabu.com/spreadsheet-index-function/">スプレッドシートのINDEX関数の使い方｜行列指定で値を取得する方法</a></li><li><a href="https://mashukabu.com/spreadsheet-match-function/">スプレッドシートのMATCH関数の使い方｜INDEX+MATCHで左側も検索できる</a></li></ul>



<p class="wp-block-paragraph">ExcelでもVLOOKUP・XLOOKUP・INDEX/MATCHを比較したい方は、<a href="https://mashukabu.com/excel-vlookup-xlookup-index-match-comparison/">Excel版の使い分けガイド</a>もあわせてご覧ください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/sheets-vlookup-xlookup-index-match/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのLOOKUP関数の使い方｜VLOOKUPとの違い</title>
		<link>https://mashukabu.com/excel-function-howto-use-lookup/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-lookup/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sun, 12 Apr 2026 15:36:52 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[HLOOKUP]]></category>
		<category><![CDATA[LOOKUP関数]]></category>
		<category><![CDATA[VLOOKUP]]></category>
		<category><![CDATA[XLOOKUP]]></category>
		<category><![CDATA[ベクトル形式]]></category>
		<category><![CDATA[引き継ぎ]]></category>
		<category><![CDATA[検索関数]]></category>
		<category><![CDATA[近似一致]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=5918</guid>

					<description><![CDATA[ExcelのLOOKUP関数の基本構文（ベクトル形式・配列形式）から、VLOOKUPやXLOOKUPとの違い、昇順ルールと近似一致の動作、引き継いだファイルの読み解き方まで実務目線で解説。古いExcelファイルに含まれるLOOKUP関数を正確に理解できます。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「引き継いだExcelファイルにLOOKUP関数が入っていたけど、VLOOKUPとどう違うの？」と戸惑った経験はありませんか。LOOKUPはVLOOKUPよりも古くからある検索関数です。今でも社内ファイルのなかで現役で動いています。ただ、引数の書き方がVLOOKUPと異なるため、初めて見ると読み解きにくいですよね。</p>



<p class="wp-block-paragraph">この記事では、ExcelのLOOKUP関数の基本構文から、VLOOKUPやXLOOKUPとの違いまで解説します。「今さら覚える必要があるのか」という疑問にも最初に答えますよ。読み終えるころには、LOOKUP関数の数式を自信を持って読めるようになるはずです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>この記事は次のような人におすすめ</strong><br>&#8211; 引き継いだファイルのLOOKUP関数を読み解きたい人<br>&#8211; VLOOKUPとLOOKUPの違いを整理したい人<br>&#8211; LOOKUP・VLOOKUP・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-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ExcelのLOOKUP関数とは：まず3関数の立ち位置を整理する</a><ol><li><a href="#toc2" tabindex="0">LOOKUP・VLOOKUP・XLOOKUPの違いを一言で</a></li><li><a href="#toc3" tabindex="0">LOOKUP関数はいつから存在するのか</a></li></ol></li><li><a href="#toc4" tabindex="0">LOOKUP関数の書き方【ベクトル形式】</a><ol><li><a href="#toc5" tabindex="0">基本構文と3つの引数の意味</a></li><li><a href="#toc6" tabindex="0">昇順ルールとは：昇順でないと正しい値が返らない理由</a></li><li><a href="#toc7" tabindex="0">使用例：社員番号から氏名を取り出す</a></li></ol></li><li><a href="#toc8" tabindex="0">LOOKUP関数の書き方【配列形式】</a><ol><li><a href="#toc9" tabindex="0">配列形式の構文（引数2つ）</a></li><li><a href="#toc10" tabindex="0">配列形式が使われる場面と現在の推奨度</a></li></ol></li><li><a href="#toc11" tabindex="0">VLOOKUP・XLOOKUPと何が違うのか：3関数比較</a><ol><li><a href="#toc12" tabindex="0">LOOKUP近似一致 vs VLOOKUP近似一致（動作差分）</a></li></ol></li><li><a href="#toc13" tabindex="0">LOOKUP関数が今でも使われている場面</a><ol><li><a href="#toc14" tabindex="0">近似一致ランク判定の実例：評価区分を昇順マスタで自動判定</a></li></ol></li><li><a href="#toc15" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc16" tabindex="0">#N/Aエラーの原因と対処</a></li><li><a href="#toc17" tabindex="0">想定外の近似値が返るケース：昇順ルール違反</a></li></ol></li><li><a href="#toc18" tabindex="0">まとめ：今から書くならXLOOKUP、古いファイルはLOOKUPで読む</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ExcelのLOOKUP関数とは：まず3関数の立ち位置を整理する</span></h2>



<h3 class="wp-block-heading"><span id="toc2">LOOKUP・VLOOKUP・XLOOKUPの違いを一言で</span></h3>



<p class="wp-block-paragraph">LOOKUP（ルックアップ）は「指定した値を検索して、対応する値を返す」関数です。名前の由来はそのまま「Look Up＝探す」ですね。</p>



<p class="wp-block-paragraph">Excelの検索関数にはLOOKUP・VLOOKUP・XLOOKUPの3つがあります。それぞれの位置づけを一言でまとめると次のとおりです。</p>



<ul class="wp-block-list"><li><strong>LOOKUP</strong>: 最も古い検索関数。引数が少なくシンプルだが、近似一致しかできない</li><li><strong>VLOOKUP</strong>: LOOKUPの後継。完全一致・近似一致を切り替えられる。全バージョン対応</li><li><strong>XLOOKUP</strong>: 最新の検索関数。検索方向の制約がなく最も柔軟。Excel 2021／Microsoft 365以降</li></ul>



<p class="wp-block-paragraph">結論から言うと、<strong>新しい数式を書くならXLOOKUPかVLOOKUPがおすすめ</strong>です。ただし古いファイルにLOOKUPが残っているケースは多いので、「読めるようにしておく」ことが大切ですよ。</p>



<h3 class="wp-block-heading"><span id="toc3">LOOKUP関数はいつから存在するのか</span></h3>



<p class="wp-block-paragraph">LOOKUP関数はExcelの初期バージョンから搭載されている互換関数です。Excel 2016からMicrosoft 365まで、すべてのバージョンで使えます。</p>



<p class="wp-block-paragraph">VLOOKUPやHLOOKUPが登場する前から存在しています。古い社内テンプレートや引き継ぎファイルでよく見かけますよ。「見たことない関数が入っている」と感じたら、このLOOKUPである可能性が高いです。</p>



<h2 class="wp-block-heading"><span id="toc4">LOOKUP関数の書き方【ベクトル形式】</span></h2>



<p class="wp-block-paragraph">LOOKUP関数には「ベクトル形式」と「配列形式」の2種類があります。実務で使われるのはほとんどベクトル形式です。まずはこちらから解説しますね。</p>



<h3 class="wp-block-heading"><span id="toc5">基本構文と3つの引数の意味</span></h3>



<p class="wp-block-paragraph">ベクトル形式の構文はこちらです。</p>



<pre class="wp-block-code"><code>=LOOKUP(検索値, 検索範囲, [結果範囲])</code></pre>



<p class="wp-block-paragraph">引数は最大3つです。VLOOKUPの4つに比べて少ないのが特徴です。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/省略可</th><th>意味</th><th>指定例</th></tr></thead><tbody><tr><td>検索値</td><td>必須</td><td>探したい値</td><td>A2</td></tr><tr><td>検索範囲</td><td>必須</td><td>検索する1行または1列の範囲</td><td>B2:B10</td></tr><tr><td>結果範囲</td><td>省略可</td><td>結果を返す1行または1列の範囲</td><td>C2:C10</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">VLOOKUPでは「表全体」を範囲に指定します。一方LOOKUPでは「検索する列」と「結果を返す列」を別々に指定します。この仕組みのおかげで、検索列が左端にない表でも使えるのがLOOKUPの利点です。</p>



<h3 class="wp-block-heading"><span id="toc6">昇順ルールとは：昇順でないと正しい値が返らない理由</span></h3>



<p class="wp-block-paragraph">LOOKUP関数を使うとき、最も重要なルールが1つあります。<strong>検索範囲のデータは必ず昇順に並んでいなければなりません</strong>。</p>



<p class="wp-block-paragraph">VLOOKUPには「検索の型」という引数があります。完全一致（FALSE）と近似一致（TRUE）を選べます。しかしLOOKUP関数にはこの引数がありません。常に近似一致で動作します。</p>



<p class="wp-block-paragraph">近似一致とは、検索値とぴったり一致する値がない場合に、<strong>検索値を超えない最大の値</strong>を返す仕組みです。この動作はデータが昇順に並んでいることが前提です。</p>



<p class="wp-block-paragraph">昇順になっていないデータにLOOKUPを使うと、誤った値が返ることがあります。引き継いだファイルでLOOKUP関数を見かけたら、まず検索範囲が昇順かどうかを確認してみてください。</p>



<h3 class="wp-block-heading"><span id="toc7">使用例：社員番号から氏名を取り出す</span></h3>



<p class="wp-block-paragraph">具体的な使い方を見てみましょう。次のような社員表があるとします。</p>



<figure class="wp-block-table"><table><thead><tr><th>A列（社員番号）</th><th>B列（氏名）</th></tr></thead><tbody><tr><td>1001</td><td>田中太郎</td></tr><tr><td>1002</td><td>佐藤花子</td></tr><tr><td>1003</td><td>鈴木一郎</td></tr><tr><td>1004</td><td>高橋美咲</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">社員番号1003の氏名を取り出すには、次のように書きます。</p>



<pre class="wp-block-code"><code>=LOOKUP(1003, A2:A5, B2:B5)</code></pre>



<p class="wp-block-paragraph">結果は「鈴木一郎」です。A列（検索範囲）が昇順に並んでいるので、正しく動作します。</p>



<p class="wp-block-paragraph">もし社員番号1005（存在しない値）を検索するとどうなるでしょうか。</p>



<pre class="wp-block-code"><code>=LOOKUP(1005, A2:A5, B2:B5)</code></pre>



<p class="wp-block-paragraph">結果は「高橋美咲」です。1005を超えない最大値は1004なので、1004に対応する値が返ります。完全一致ではなく近似一致で動作する点に注意してくださいね。</p>



<h2 class="wp-block-heading"><span id="toc8">LOOKUP関数の書き方【配列形式】</span></h2>



<h3 class="wp-block-heading"><span id="toc9">配列形式の構文（引数2つ）</span></h3>



<p class="wp-block-paragraph">LOOKUP関数にはもう一つ「配列形式」があります。引数は2つだけです。</p>



<pre class="wp-block-code"><code>=LOOKUP(検索値, 配列)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/省略可</th><th>意味</th></tr></thead><tbody><tr><td>検索値</td><td>必須</td><td>探したい値</td></tr><tr><td>配列</td><td>必須</td><td>検索と結果を含むセル範囲</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">配列形式では、指定した範囲の形状によって動作が変わります。</p>



<ul class="wp-block-list"><li><strong>縦長または正方形の範囲</strong>: 最初の列で検索し、最後の列の値を返す</li><li><strong>横長の範囲</strong>: 最初の行で検索し、最後の行の値を返す</li></ul>



<h3 class="wp-block-heading"><span id="toc10">配列形式が使われる場面と現在の推奨度</span></h3>



<p class="wp-block-paragraph">配列形式はVLOOKUPやHLOOKUPで代替できます。Microsoftも互換性維持のための形式と位置づけています。新しくこの形式を使う必要はほとんどありません。</p>



<p class="wp-block-paragraph">古いファイルで引数が2つだけのLOOKUP関数を見かけたら、「配列形式だな」と判断できます。検索範囲と結果範囲が1つの配列にまとまっているだけです。やっていること自体はベクトル形式と同じですよ。</p>



<h2 class="wp-block-heading"><span id="toc11">VLOOKUP・XLOOKUPと何が違うのか：3関数比較</span></h2>



<p class="wp-block-paragraph">LOOKUPとVLOOKUP、XLOOKUPの違いを表で整理しましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>LOOKUP</th><th>VLOOKUP</th><th>XLOOKUP</th></tr></thead><tbody><tr><td>引数の数</td><td>2〜3個</td><td>4個（必須3）</td><td>3〜6個</td></tr><tr><td>検索方向</td><td>縦・横を自動判定</td><td>縦方向のみ</td><td>縦・横どちらも対応</td></tr><tr><td>一致モード</td><td>近似一致のみ</td><td>完全一致／近似一致を選択</td><td>完全一致／近似一致／ワイルドカード等</td></tr><tr><td>検索列の制約</td><td>なし（検索と結果を独立指定）</td><td>検索列は範囲の左端のみ</td><td>なし（自由に指定可）</td></tr><tr><td>昇順必須</td><td>常に必須</td><td>近似一致（TRUE）のときだけ必須</td><td>不要</td></tr><tr><td>対応バージョン</td><td>全バージョン</td><td>全バージョン</td><td>Excel 2021／Microsoft 365</td></tr><tr><td>現在の推奨度</td><td>低（読み取り用途）</td><td>中（互換性が必要な環境）</td><td>高（新規作成の第一候補）</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc12">LOOKUP近似一致 vs VLOOKUP近似一致（動作差分）</span></h3>



<p class="wp-block-paragraph">LOOKUPとVLOOKUP（第4引数TRUE）はどちらも近似一致で動作します。ただし使い勝手に違いがあります。</p>



<pre class="wp-block-code"><code>' LOOKUP — 検索の型を指定する引数がない（常に近似一致）
=LOOKUP(75, A2:A5, B2:B5)

' VLOOKUP — 第4引数TRUEで近似一致を明示
=VLOOKUP(75, A2:B5, 2, TRUE)</code></pre>



<p class="wp-block-paragraph">LOOKUPは「完全一致モードがない」のが最大の違いです。VLOOKUPなら第4引数をFALSEにすれば完全一致検索ができます。LOOKUPにはその切り替えがありません。</p>



<p class="wp-block-paragraph">一方でLOOKUPには独自の利点もあります。検索範囲と結果範囲を別々に指定できるので、検索列が左端にない表でも対応できます。VLOOKUPの「検索列が左端になければ使えない」という制約に縛られません。</p>



<p class="wp-block-paragraph">それぞれの関数について詳しく知りたい方は、以下の記事も参考にしてみてください。</p>



<ul class="wp-block-list"><li>VLOOKUPの使い方: <a href="https://mashukabu.com/excel-function-howto-use-vlookup/">ExcelのVLOOKUP関数の使い方</a></li><li>XLOOKUPの使い方: <a href="https://mashukabu.com/excel-function-howto-use-xlookup/">ExcelのXLOOKUP関数の使い方</a></li><li>HLOOKUPの使い方: <a href="https://mashukabu.com/excel-function-howto-use-hlookup/">ExcelのHLOOKUP関数の使い方</a></li><li>検索関数の選び方: <a href="https://mashukabu.com/excel-vlookup-xlookup-index-match-comparison/">VLOOKUP・XLOOKUP・INDEX+MATCHの違いと使い分け</a></li></ul>



<h2 class="wp-block-heading"><span id="toc13">LOOKUP関数が今でも使われている場面</span></h2>



<p class="wp-block-paragraph">「わざわざLOOKUPを使う場面なんてあるの？」と思うかもしれません。実は、近似一致の特性を活かしたランク判定で今でも使われているケースがあります。</p>



<h3 class="wp-block-heading"><span id="toc14">近似一致ランク判定の実例：評価区分を昇順マスタで自動判定</span></h3>



<p class="wp-block-paragraph">テストの点数に応じてA〜Dの評価をつけたい場面を考えてみましょう。次のような基準表を用意します。</p>



<figure class="wp-block-table"><table><thead><tr><th>D列（点数の下限）</th><th>E列（評価）</th></tr></thead><tbody><tr><td>0</td><td>D</td></tr><tr><td>60</td><td>C</td></tr><tr><td>70</td><td>B</td></tr><tr><td>80</td><td>A</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">点数が75のとき、評価を自動で判定する数式がこちらです。</p>



<pre class="wp-block-code"><code>=LOOKUP(75, D2:D5, E2:E5)</code></pre>



<p class="wp-block-paragraph">結果は「B」です。75は70以上80未満なので、70に対応する「B」が返ります。</p>



<p class="wp-block-paragraph">この数式が動く仕組みは、LOOKUP関数の近似一致です。検索値75を超えない最大値（70）を見つけて、対応する結果を返しています。</p>



<p class="wp-block-paragraph">同じことはVLOOKUP(75, D2:E5, 2, TRUE)でも実現できます。ただしLOOKUPは検索列と結果列を独立して指定できるので、基準表のレイアウトを自由に組めますよ。古いファイルでこのパターンを見かけたら、「ランク判定をしているんだな」と読み解けるはずです。</p>



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



<h3 class="wp-block-heading"><span id="toc16">#N/Aエラーの原因と対処</span></h3>



<p class="wp-block-paragraph">LOOKUP関数で最も多いエラーが#N/Aです。主な原因は次の2つです。</p>



<ul class="wp-block-list"><li><strong>検索値が検索範囲の最小値より小さい</strong>: 検索範囲が{60, 70, 80}のとき、検索値30を指定すると#N/Aになります。近似一致では「検索値を超えない最大値」を探しますが、最小値60より小さい値には候補がないためです</li><li><strong>検索範囲が空、または指定が間違っている</strong>: 範囲の指定ミスで空のセルを参照しているケースも原因になります</li></ul>



<p class="wp-block-paragraph">対処法としては、検索範囲の先頭に十分小さい値を追加しておくと安心です。</p>



<pre class="wp-block-code"><code>' 検索範囲の先頭に0を追加してエラーを防ぐ
=LOOKUP(30, {0,60,70,80}, {&quot;対象外&quot;,&quot;C&quot;,&quot;B&quot;,&quot;A&quot;})</code></pre>



<h3 class="wp-block-heading"><span id="toc17">想定外の近似値が返るケース：昇順ルール違反</span></h3>



<p class="wp-block-paragraph">「エラーは出ないけど、返ってくる値がおかしい」というケースもあります。ほとんどの場合、検索範囲が昇順に並んでいないことが原因です。</p>



<p class="wp-block-paragraph">LOOKUP関数はバイナリサーチ（二分探索）という方法でデータを検索します。昇順を前提としたアルゴリズムです。データの順序が乱れると、検索の途中で間違った位置を見てしまいます。</p>



<p class="wp-block-paragraph">対処法は次の2つです。</p>



<ul class="wp-block-list"><li>検索範囲のデータを昇順に並べ替える</li><li>完全一致が必要な場合はVLOOKUP（第4引数FALSE）やXLOOKUPに書き換える</li></ul>



<p class="wp-block-paragraph">引き継いだファイルで結果がおかしいと感じたら、まず検索範囲のソート順を確認してみてください。</p>



<h2 class="wp-block-heading"><span id="toc18">まとめ：今から書くならXLOOKUP、古いファイルはLOOKUPで読む</span></h2>



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



<ul class="wp-block-list"><li>LOOKUP関数はExcelの初期から搭載されている検索関数。引数は2〜3個でシンプル</li><li>ベクトル形式（検索範囲と結果範囲を別々に指定）が実務の主流</li><li><strong>常に近似一致で動作する</strong>ため、検索範囲は必ず昇順に並べておく</li><li>VLOOKUPとの最大の違いは「完全一致モードがないこと」と「検索列の位置が自由なこと」</li><li>新しく数式を書くなら<a href="https://mashukabu.com/excel-function-howto-use-xlookup/">XLOOKUP</a>が最適。LOOKUPは「古いファイルを読み解くため」に知っておくと安心</li></ul>



<p class="wp-block-paragraph">LOOKUP関数を新規で使う場面は限られます。ただし引き継いだファイルに入っていることは珍しくありません。この記事で解説した構文と近似一致の動作を押さえておけば、いざというときに慌てずに対応できますよ。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-lookup/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのHLOOKUP関数の使い方｜横方向検索の基本と応用</title>
		<link>https://mashukabu.com/spreadsheet-hlookup-function/</link>
					<comments>https://mashukabu.com/spreadsheet-hlookup-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 19 Mar 2026 15:13:26 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[HLOOKUP]]></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=4664</guid>

					<description><![CDATA[スプレッドシートのHLOOKUP関数の使い方を基本から解説。横方向の表から値を取得する構文・引数の意味、VLOOKUPとの違い、#N/Aエラーの対処法まで実務で使えるサンプルつきで紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「月ごとに横に並んだ表から、特定の月の値を取り出したい」。スプレッドシートを使っていると、こんな場面に出会いますよね。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-vlookup-function/">VLOOKUP関数</a>は縦方向の検索には強いですが、横方向のデータには対応していません。</p>



<p class="wp-block-paragraph">そんなときに活躍するのがHLOOKUP関数です。この記事では基本の書き方からVLOOKUPとの違い、エラー対処まで紹介します。</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">スプレッドシートのHLOOKUP関数とは？</a></li><li><a href="#toc2" tabindex="0">HLOOKUP関数の書き方（構文と引数）</a><ol><li><a href="#toc3" tabindex="0">基本構文</a></li><li><a href="#toc4" tabindex="0">引数の説明</a></li><li><a href="#toc5" tabindex="0">「並べ替え済み」（FALSE / TRUE）の使い分け</a></li></ol></li><li><a href="#toc6" tabindex="0">HLOOKUP関数の基本的な使い方</a></li><li><a href="#toc7" tabindex="0">HLOOKUP関数の実践的な使い方・応用例</a><ol><li><a href="#toc8" tabindex="0">月別データから特定月の値を取得する</a></li><li><a href="#toc9" tabindex="0">IFERROR関数と組み合わせてエラーを回避する</a></li><li><a href="#toc10" tabindex="0">別シートのデータを横方向に検索する</a></li></ol></li><li><a href="#toc11" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc12" tabindex="0">#N/Aエラー</a></li><li><a href="#toc13" tabindex="0">#REF!エラー</a></li><li><a href="#toc14" tabindex="0">#VALUE!エラー</a></li><li><a href="#toc15" tabindex="0">間違った値が返る</a></li></ol></li><li><a href="#toc16" tabindex="0">VLOOKUPとの違い・使い分け</a><ol><li><a href="#toc17" tabindex="0">どちらを使うべき？</a></li></ol></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">スプレッドシートのHLOOKUP関数とは？</span></h2>



<p class="wp-block-paragraph">HLOOKUP関数（読み方: エイチルックアップ関数）は、範囲の上端行を横方向に検索する関数です。一致した列から、指定した行の値を返してくれます。</p>



<p class="wp-block-paragraph">名前はHorizontal（水平）+ Lookup（検索）が由来です。「月名から売上を引っ張る」「支店名から経費を取得する」。こうした横方向の表引きを数式1つで片付けてくれます。</p>



<p class="wp-block-paragraph">ポイントは<strong>検索する行が範囲の上端（1行目）にある</strong>ことです。上端以外の行で検索したい場合は、<a href="https://mashukabu.com/spreadsheet-xlookup/">XLOOKUP関数</a>を検討してください。</p>



<p class="wp-block-paragraph">HLOOKUP関数にできることをまとめると、次のとおりです。</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>HLOOKUP関数はGoogleスプレッドシートの全バージョンで使えます。Excelとの互換性も完全なので、ファイルのやり取りでも安心です。</p></blockquote>



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



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



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



<pre class="wp-block-code"><code>=HLOOKUP(検索キー, 範囲, 番号, [並べ替え済み])</code></pre>



<p class="wp-block-paragraph">引数は4つあります。最後の「並べ替え済み」だけ省略できます。</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>&#8220;4月&#8221;</td></tr><tr><td>範囲</td><td>必須</td><td>検索対象の表。上端行に検索キーを含むこと</td><td>B1:M3</td></tr><tr><td>番号</td><td>必須</td><td>上端行から数えて何行目を返すか（1以上）</td><td>2</td></tr><tr><td>並べ替え済み</td><td>省略可</td><td>FALSE = 完全一致 / TRUE = 近似一致</td><td>FALSE</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では「検索値・行番号・検索の型」と呼びますが、スプレッドシートでは「検索キー・番号・並べ替え済み」です。動作は同じなので、Excel経験者はそのまま読み替えてください。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc5">「並べ替え済み」（FALSE / TRUE）の使い分け</span></h3>



<p class="wp-block-paragraph">ここがHLOOKUPでつまずきやすい部分です。</p>



<p class="wp-block-paragraph"><strong>FALSE（完全一致）</strong> は、検索キーとぴったり一致するデータだけを探します。実務の9割はこちらです。一致しなければ#N/Aエラーになります。</p>



<pre class="wp-block-code"><code>=HLOOKUP(&quot;4月&quot;, B1:M3, 2, FALSE)</code></pre>



<p class="wp-block-paragraph"><strong>TRUE（近似一致）</strong> は、検索キー以下の最大値を返します。スコア帯やランク判定に使います。ただし上端行が昇順ソートされていることが前提です。</p>



<pre class="wp-block-code"><code>=HLOOKUP(A2, B1:F3, 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="toc6">HLOOKUP関数の基本的な使い方</span></h2>



<p class="wp-block-paragraph">支店別の売上データから、特定の支店の値を取り出す例で見てみましょう。</p>



<p class="wp-block-paragraph">次のような横方向の表があるとします。</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>&nbsp;</td><td>東京</td><td>大阪</td><td>名古屋</td><td>福岡</td></tr><tr><td>2</td><td>売上</td><td>500</td><td>350</td><td>280</td><td>200</td></tr><tr><td>3</td><td>経費</td><td>120</td><td>80</td><td>65</td><td>50</td></tr><tr><td>4</td><td>利益</td><td>380</td><td>270</td><td>215</td><td>150</td></tr></tbody></table></figure>



<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>



<p class="wp-block-paragraph">東京の利益（380）を取得するにはこう書きます。</p>



<pre class="wp-block-code"><code>=HLOOKUP(&quot;東京&quot;, B1:E4, 4, FALSE)</code></pre>



<p class="wp-block-paragraph">!<a href="https://mashukabu.com/_images/spreadsheet-hlookup-function/02_formula_hlookup-basic.png/">_images/spreadsheet-hlookup-function/02_formula_hlookup-basic.png</a></p>



<p class="wp-block-paragraph">各引数の意味は次のとおりです。</p>



<ul class="wp-block-list"><li>&#8220;東京&#8221;: 検索キー（上端行から「東京」を探す）</li><li>B1:E4: 範囲（支店データ全体）</li><li>4: 上端行から4行目（利益の行）を返す</li><li>FALSE: 完全一致で検索</li></ul>



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



<p class="wp-block-paragraph">行番号を「2」に変えれば売上（500）が返ります。「3」にすれば経費（120）を取得できますよ。</p>



<p class="wp-block-paragraph">セル参照を使うこともできます。G1セルに支店名が入力されている場合は、こう書けます。</p>



<pre class="wp-block-code"><code>=HLOOKUP(G1, B1:E4, 4, FALSE)</code></pre>



<p class="wp-block-paragraph">G1の値を変更するだけで、取得する支店を切り替えられます。</p>



<h2 class="wp-block-heading"><span id="toc7">HLOOKUP関数の実践的な使い方・応用例</span></h2>



<h3 class="wp-block-heading"><span id="toc8">月別データから特定月の値を取得する</span></h3>



<p class="wp-block-paragraph">実務では、月別に横方向に並んだ集計表をよく見かけますよね。こういったデータからHLOOKUP関数で特定の月の値を取り出せます。</p>



<p class="wp-block-paragraph">次のような月別売上表があるとします。</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>&#8230;</th><th>M</th></tr></thead><tbody><tr><td>1</td><td>&nbsp;</td><td>1月</td><td>2月</td><td>3月</td><td>&#8230;</td><td>12月</td></tr><tr><td>2</td><td>売上</td><td>100</td><td>120</td><td>150</td><td>&#8230;</td><td>200</td></tr><tr><td>3</td><td>目標</td><td>110</td><td>110</td><td>140</td><td>&#8230;</td><td>190</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">3月の売上を取得するには、次のように入力します。</p>



<pre class="wp-block-code"><code>=HLOOKUP(&quot;3月&quot;, B1:M3, 2, FALSE)</code></pre>



<p class="wp-block-paragraph">結果は「150」です。番号を3にすれば、目標値（140）を取得できます。</p>



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



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



<p class="wp-block-paragraph">HLOOKUP関数で検索キーが見つからないと、#N/Aエラーが表示されます。報告資料で見栄えが悪いですし、後続の計算にも影響します。</p>



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



<pre class="wp-block-code"><code>=IFERROR(HLOOKUP(&quot;札幌&quot;, B1:E4, 4, FALSE), &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">検索キーが見つからない場合に「該当なし」と表示されます。空文字「&#8221;&#8221;」を指定するケースも多いです。</p>



<h3 class="wp-block-heading"><span id="toc10">別シートのデータを横方向に検索する</span></h3>



<p class="wp-block-paragraph">検索先が別シートにある場合は、シート名のあとに「!」をつけて範囲を指定します。</p>



<pre class="wp-block-code"><code>=HLOOKUP(&quot;東京&quot;, マスタ!B1:E4, 2, FALSE)</code></pre>



<p class="wp-block-paragraph">シート名に空白を含む場合はシングルクォーテーションで囲みます。</p>



<pre class="wp-block-code"><code>=HLOOKUP(&quot;東京&quot;, '売上 マスタ'!B1:E4, 2, FALSE)</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>別シートの範囲をマウスで選択すると、シート名と「!」が自動入力されます。手入力よりミスが減るのでおすすめです。</p></blockquote>



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



<p class="wp-block-paragraph">HLOOKUP関数を使っていると、思わぬエラーに遭遇することがあります。エラーの種類別に原因と対処法を整理しました。</p>



<h3 class="wp-block-heading"><span id="toc12">#N/Aエラー</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>データを追加するかIFERRORで対処</td></tr><tr><td>データ型の不一致</td><td>数値と文字列が混在していないか</td><td><a href="https://mashukabu.com/spreadsheet-value-function/">VALUE関数</a>で型を統一</td></tr><tr><td>余分なスペース</td><td>見えない空白が入っていないか</td><td><a href="https://mashukabu.com/spreadsheet-trim-function/">TRIM関数</a>で除去</td></tr></tbody></table></figure>



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



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



<p class="wp-block-paragraph">たとえば範囲がB1:E3の3行なのに、番号に4を指定した場合です。範囲の行数を確認して、番号が範囲内に収まるよう修正してください。</p>



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



<p class="wp-block-paragraph">番号に1未満の数値や文字列を指定したときに出ます。番号には必ず1以上の整数を指定しましょう。</p>



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



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



<p class="wp-block-paragraph">最も多い原因は「並べ替え済みを省略してTRUEになっている」パターンです。FALSEを明示すれば解決します。</p>



<p class="wp-block-paragraph">もう1つは範囲の上端行が検索対象と一致していないケースです。範囲の開始行を見直してみてください。</p>



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



<p class="wp-block-paragraph">HLOOKUP関数とよく比較される検索関数との違いを表にまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>特徴</th><th>HLOOKUP</th><th>VLOOKUP</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>近似一致（TRUE）</td><td>近似一致（TRUE）</td><td>完全一致</td></tr><tr><td>エラー時の既定値</td><td>IFERROR必要</td><td>IFERROR必要</td><td>引数で指定可</td></tr></tbody></table></figure>



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



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



<ul class="wp-block-list"><li><strong>データが横方向に並んでいる</strong> → HLOOKUP関数</li><li><strong>データが縦方向に並んでいる</strong> → <a href="https://mashukabu.com/spreadsheet-vlookup-function/">VLOOKUP関数</a></li><li><strong>縦横どちらにも対応したい</strong> → <a href="https://mashukabu.com/spreadsheet-xlookup/">XLOOKUP関数</a></li></ul>



<p class="wp-block-paragraph">実務ではデータが縦方向に並ぶケースのほうが多いです。そのためVLOOKUPのほうが使用頻度は高くなります。</p>



<p class="wp-block-paragraph">ただし、月別集計表やシフト表など横方向の表も少なくありません。そうした場面ではHLOOKUP関数が頼りになります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>XLOOKUP関数は縦横両方に対応していますが、Googleスプレッドシートでも使えます。新しい関数に抵抗がなければ、XLOOKUPへの移行も選択肢です。</p></blockquote>



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



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



<ul class="wp-block-list"><li>名前はHorizontal（水平）+ Lookupが由来。<strong>横方向に検索</strong>する関数</li><li>構文は <code>=HLOOKUP(検索キー, 範囲, 番号, 並べ替え済み)</code> の4引数</li><li>「並べ替え済み」は省略せずFALSEを明示するのが安全</li><li>#N/Aエラーはデータ型の不一致やスペース混入を疑う</li><li>縦方向の検索には<a href="https://mashukabu.com/spreadsheet-vlookup-function/">VLOOKUP関数</a>を使う</li></ul>



<p class="wp-block-paragraph">まずは基本の完全一致検索からはじめてみてください。IFERRORと組み合わせれば、実務のほとんどの場面に対応できます。</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-xlookup/">スプレッドシートのXLOOKUP関数の使い方｜VLOOKUPとの違いも解説</a></li><li><a href="https://mashukabu.com/spreadsheet-value-function/">スプレッドシートのVALUE関数の使い方｜文字列を数値に変換</a></li><li><a href="https://mashukabu.com/spreadsheet-trim-function/">スプレッドシートのTRIM関数の使い方｜余分なスペースを一括削除</a></li><li><a href="https://mashukabu.com/spreadsheet-find-function/">スプレッドシートのFIND関数の使い方｜文字の位置を検索</a></li><li><a href="https://mashukabu.com/spreadsheet-search-function/">スプレッドシートのSEARCH関数の使い方｜大文字小文字を区別しない検索</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-hlookup-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのVLOOKUP関数の使い方｜別シート参照・エラー対処まで解説</title>
		<link>https://mashukabu.com/spreadsheet-vlookup-function/</link>
					<comments>https://mashukabu.com/spreadsheet-vlookup-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 19 Mar 2026 15:12:53 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[VLOOKUP]]></category>
		<category><![CDATA[XLOOKUP]]></category>
		<category><![CDATA[エラー対処]]></category>
		<category><![CDATA[スプレッドシート]]></category>
		<category><![CDATA[別シート参照]]></category>
		<category><![CDATA[検索関数]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4650</guid>

					<description><![CDATA[スプレッドシートのVLOOKUP関数の使い方を基本から丁寧に解説。構文・引数の意味、別シート参照、#N/Aエラーの対処法、XLOOKUP・INDEX+MATCHとの使い分けまで実務で使えるサンプルつきで紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「商品コードを入れたら商品名を自動で表示したい」。スプレッドシートを使っていると、こんな場面によく出会いますよね。</p>



<p class="wp-block-paragraph">手作業で1つずつ探していたら時間がかかりますし、コピペミスも起きがちです。</p>



<p class="wp-block-paragraph">そんなときに活躍するのがVLOOKUP関数です。検索値を指定するだけで、表から対応するデータを一発で取得できます。この記事では基本の書き方から別シート参照、エラー対処、XLOOKUPとの使い分けまで紹介します。</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">スプレッドシートのVLOOKUP関数とは？</a></li><li><a href="#toc2" tabindex="0">VLOOKUP関数の書き方（構文と引数）</a><ol><li><a href="#toc3" tabindex="0">基本構文</a></li><li><a href="#toc4" tabindex="0">引数の説明</a></li><li><a href="#toc5" tabindex="0">「並べ替え済み」（FALSE / TRUE）の使い分け</a></li></ol></li><li><a href="#toc6" tabindex="0">VLOOKUP関数の基本的な使い方</a><ol><li><a href="#toc7" tabindex="0">同じシート内でデータを検索する</a></li><li><a href="#toc8" tabindex="0">別シートのデータを参照する</a></li><li><a href="#toc9" tabindex="0">範囲を固定するコツ（絶対参照）</a></li></ol></li><li><a href="#toc10" tabindex="0">VLOOKUP関数の実務活用パターン</a><ol><li><a href="#toc11" tabindex="0">IFERROR関数と組み合わせてエラーを防ぐ</a></li><li><a href="#toc12" tabindex="0">近似一致（TRUE）で料金ランク判定する</a></li><li><a href="#toc13" tabindex="0">ワイルドカードで部分一致検索する</a></li><li><a href="#toc14" tabindex="0">IMPORTRANGE関数と組み合わせて別ファイルを参照する</a></li><li><a href="#toc15" tabindex="0">複数条件で検索する（補助列の活用）</a></li></ol></li><li><a href="#toc16" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc17" tabindex="0">#N/Aエラー</a></li><li><a href="#toc18" tabindex="0">#REF!エラー</a></li><li><a href="#toc19" tabindex="0">間違った値が返る</a></li></ol></li><li><a href="#toc20" tabindex="0">VLOOKUP関数と他の検索関数の使い分け</a><ol><li><a href="#toc21" tabindex="0">VLOOKUPの3つの制約</a></li><li><a href="#toc22" tabindex="0">VLOOKUP / XLOOKUP / INDEX+MATCH 比較表</a></li><li><a href="#toc23" tabindex="0">どの関数を選べばいい？</a></li></ol></li><li><a href="#toc24" tabindex="0">まとめ</a><ol><li><a href="#toc25" tabindex="0">関連記事</a></li></ol></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">VLOOKUP関数（読み方: ブイルックアップ関数）は、範囲の先頭列を縦方向に検索する関数です。一致した行から、指定した列の値を返してくれます。</p>



<p class="wp-block-paragraph">名前はVertical（垂直）+ Lookup（検索）が由来です。「商品コードから商品名を引っ張る」「社員番号から部署名を取得する」。こうした「表引き」作業を数式1つで片付けてくれます。</p>



<p class="wp-block-paragraph">ポイントは<strong>検索する列が範囲の先頭（左端）にある</strong>ことです。左端以外の列で検索したい場合は、<a href="https://mashukabu.com/spreadsheet-xlookup/">XLOOKUP関数</a>を検討してください。</p>



<p class="wp-block-paragraph">VLOOKUP関数にできることをまとめると、次のとおりです。</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>VLOOKUP関数はGoogleスプレッドシートの全バージョンで使えます。Excelとの互換性も完全なので、ファイルのやり取りでも安心です。</p></blockquote>



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



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



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



<pre class="wp-block-code"><code>=VLOOKUP(検索キー, 範囲, 番号, [並べ替え済み])</code></pre>



<p class="wp-block-paragraph">引数は4つあります。最後の「並べ替え済み」だけ省略できます。</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</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>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>Excelでは「検索値・列番号・検索の型」と呼びますが、スプレッドシートでは「検索キー・番号・並べ替え済み」です。動作は同じなので、Excel経験者はそのまま読み替えてください。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc5">「並べ替え済み」（FALSE / TRUE）の使い分け</span></h3>



<p class="wp-block-paragraph">ここがVLOOKUPで一番つまずきやすい部分です。</p>



<p class="wp-block-paragraph"><strong>FALSE（完全一致）</strong> は、検索キーとぴったり一致するデータだけを探します。実務の9割はこちらです。一致しなければ#N/Aエラーになります。</p>



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



<p class="wp-block-paragraph"><strong>TRUE（近似一致）</strong> は、検索キー以下の最大値を返します。料金表やランク判定に使います。ただし先頭列が昇順ソートされていることが前提です。</p>



<pre class="wp-block-code"><code>=VLOOKUP(A2, F2:G10, 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="toc6">VLOOKUP関数の基本的な使い方</span></h2>



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



<p class="wp-block-paragraph">商品コードから商品名を取得する例で見てみましょう。</p>



<p class="wp-block-paragraph">A列〜C列に商品マスタがあるとします。A列が商品コード、B列が商品名、C列が価格です。</p>



<p class="wp-block-paragraph">E2に入力したコードから商品名を取得するにはこう書きます。</p>



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



<p class="wp-block-paragraph">各引数の意味は次のとおりです。</p>



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



<p class="wp-block-paragraph">E2に「P-001」と入力すると、A列から「P-001」を探し、同じ行のB列の値を返します。</p>



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



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



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



<p class="wp-block-paragraph">シート名に空白を含む場合はシングルクォーテーションで囲みます。</p>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>別シートの範囲をマウスで選択すると、シート名と「!」が自動で入力されます。手入力よりもミスが減るのでおすすめです。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc9">範囲を固定するコツ（絶対参照）</span></h3>



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



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



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



<p class="wp-block-paragraph">検索キーのA2は相対参照のまま、範囲だけ固定するのが正解です。</p>



<p class="wp-block-paragraph">なお、列全体を参照する書き方（A:Dなど）ならコピーしてもズレません。ただしデータ量が多いと処理が遅くなる場合があります。</p>



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



<h3 class="wp-block-heading"><span id="toc11">IFERROR関数と組み合わせてエラーを防ぐ</span></h3>



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



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



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



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



<h3 class="wp-block-heading"><span id="toc12">近似一致（TRUE）で料金ランク判定する</span></h3>



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



<p class="wp-block-paragraph">ランク表が次のようになっているとします。</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 class="wp-block-paragraph">この表がF2:G5にあるとします。B2の金額に対してランクを返すにはこう書きます。</p>



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



<p class="wp-block-paragraph">B2が250,000なら「B」が返ります。250,000以下の最大値は100,000なので、その行のランクが返る仕組みです。</p>



<p class="wp-block-paragraph">近似一致を使うときは下限金額を必ず昇順で並べてください。</p>



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



<p class="wp-block-paragraph">「並べ替え済み」をFALSEにした状態でワイルドカードが使えます。</p>



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



<p class="wp-block-paragraph">「*」は任意の文字列にマッチします。「東京」を含む最初のデータを探したいときに使えます。</p>



<p class="wp-block-paragraph">セル参照を使う場合は「&#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="toc14">IMPORTRANGE関数と組み合わせて別ファイルを参照する</span></h3>



<p class="wp-block-paragraph">スプレッドシートならではの活用法です。IMPORTRANGE関数（別ファイルのデータを取得する関数）で取り込んだ範囲をVLOOKUPの検索対象にできます。</p>



<pre class="wp-block-code"><code>=VLOOKUP(A2, IMPORTRANGE(&quot;スプレッドシートURL&quot;, &quot;マスタ!A:D&quot;), 3, FALSE)</code></pre>



<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>IMPORTRANGEは共有ドライブの大規模マスタなどで重宝します。ただしファイルが重くなりやすいので、必要な列だけに絞ると安心です。</p></blockquote>



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



<p class="wp-block-paragraph">VLOOKUPは検索キーを1つしか指定できません。「部署」と「役職」の2条件で検索したい場合は、補助列を作ります。</p>



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



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



<p class="wp-block-paragraph">VLOOKUPの検索キーも同じ形式で連結します。</p>



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



<p class="wp-block-paragraph">補助列を使いたくない場合は、<a href="https://mashukabu.com/spreadsheet-xlookup/">XLOOKUP関数</a>やFILTER関数も検討してみてください。</p>



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



<h3 class="wp-block-heading"><span id="toc17">#N/Aエラー</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>データを追加するかIFERRORで対処</td></tr><tr><td>データ型の不一致</td><td>数値と文字列が混在していないか</td><td><a href="https://mashukabu.com/spreadsheet-value-function/">VALUE関数</a>で型を統一</td></tr><tr><td>余分なスペース</td><td>見えない空白が入っていないか</td><td><a href="https://mashukabu.com/spreadsheet-trim-function/">TRIM関数</a>で除去</td></tr><tr><td>範囲がズレている</td><td>絶対参照をつけ忘れていないか</td><td>F4キーで$をつける</td></tr></tbody></table></figure>



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



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



<p class="wp-block-paragraph">たとえば範囲がA:Cの3列なのに、番号に4を指定した場合です。列を削除した直後にも起こりやすいので、範囲と番号の対応を確認してください。</p>



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



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



<p class="wp-block-paragraph">最も多い原因は「並べ替え済みを省略してTRUEになっている」パターンです。FALSEを明示すれば解決します。</p>



<p class="wp-block-paragraph">もう1つは範囲の先頭列が検索対象と一致していないケースです。範囲の開始列を見直してみてください。</p>



<h2 class="wp-block-heading"><span id="toc20">VLOOKUP関数と他の検索関数の使い分け</span></h2>



<p class="wp-block-paragraph">VLOOKUPは便利ですが、万能ではありません。場面に応じた関数選びのポイントを整理します。</p>



<h3 class="wp-block-heading"><span id="toc21">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="toc22">VLOOKUP / XLOOKUP / INDEX+MATCH 比較表</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>可能</td><td>可能</td></tr><tr><td>列追加への耐性</td><td>弱い</td><td>強い</td><td>強い</td></tr><tr><td>エラー時の既定値</td><td>IFERROR必要</td><td>引数で指定可</td><td>IFERROR必要</td></tr><tr><td>デフォルトの一致方式</td><td>近似一致</td><td>完全一致</td><td>完全一致（0指定）</td></tr><tr><td>複数列を一括で返す</td><td>不可</td><td>可能</td><td>不可</td></tr><tr><td>数式の読みやすさ</td><td>シンプル</td><td>シンプル</td><td>やや複雑</td></tr></tbody></table></figure>



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



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



<ul class="wp-block-list"><li><strong>左方向の値を取りたい</strong> → <a href="https://mashukabu.com/spreadsheet-xlookup/">XLOOKUP関数</a>がベスト</li><li><strong>複数列の結果を一括で返したい</strong> → XLOOKUP関数がベスト</li><li><strong>条件に合う複数行を抽出したい</strong> → <a href="https://mashukabu.com/spreadsheet-filter-function/">FILTER関数</a>の出番</li><li><strong>シンプルな右方向の表引き</strong> → VLOOKUPで十分</li></ul>



<p class="wp-block-paragraph">VLOOKUPは「古い関数」と言われることもあります。ただ、構文がシンプルで直感的なのは大きなメリットです。左方向検索が不要な場面ではVLOOKUPのほうが読みやすい数式になります。</p>



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



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



<ul class="wp-block-list"><li>構文は <code>=VLOOKUP(検索キー, 範囲, 番号, 並べ替え済み)</code> の4引数</li><li>「並べ替え済み」は省略せずFALSEを明示するのが安全</li><li>範囲の絶対参照とIFERRORの組み合わせは実務の必須テクニック</li><li>#N/Aエラーは「データ型の不一致」や「余分なスペース」を疑う</li><li>左方向検索が必要なら<a href="https://mashukabu.com/spreadsheet-xlookup/">XLOOKUP関数</a>を検討</li></ul>



<p class="wp-block-paragraph">まずは基本の完全一致検索からはじめてみてください。IFERROR関数やワイルドカードを組み合わせれば、実務のほとんどの場面に対応できます。</p>



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/spreadsheet-xlookup/">スプレッドシートのXLOOKUP関数の使い方｜VLOOKUPとの違いも解説</a></li><li><a href="https://mashukabu.com/spreadsheet-filter-function/">スプレッドシートのFILTER関数の使い方｜条件に合うデータを自動抽出</a></li><li><a href="https://mashukabu.com/spreadsheet-value-function/">スプレッドシートのVALUE関数の使い方｜文字列を数値に変換</a></li><li><a href="https://mashukabu.com/spreadsheet-trim-function/">スプレッドシートのTRIM関数の使い方｜余分なスペースを一括削除</a></li><li><a href="https://mashukabu.com/spreadsheet-sumif-function/">スプレッドシートのSUMIF関数の使い方｜条件付き合計</a></li><li><a href="https://mashukabu.com/spreadsheet-countif-function/">スプレッドシートのCOUNTIF関数の使い方｜条件付きカウント</a></li><li><a href="https://mashukabu.com/spreadsheet-today-function/">スプレッドシートのTODAY関数の使い方｜今日の日付を自動入力</a></li><li><a href="https://mashukabu.com/spreadsheet-text-function/">スプレッドシートのTEXT関数の使い方｜数値を任意の書式で表示</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-vlookup-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのXLOOKUP関数の使い方｜VLOOKUPとの違い・逆方向検索・スピル活用まで実例解説</title>
		<link>https://mashukabu.com/spreadsheet-xlookup/</link>
					<comments>https://mashukabu.com/spreadsheet-xlookup/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sun, 15 Mar 2026 02:50:53 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[VLOOKUP]]></category>
		<category><![CDATA[XLOOKUP]]></category>
		<category><![CDATA[スプレッドシート]]></category>
		<category><![CDATA[検索関数]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=3802</guid>

					<description><![CDATA[スプレッドシートのXLOOKUP関数の使い方を、基本構文から逆方向検索・スピル・末尾検索・ワイルドカードまで実例で解説。VLOOKUPとの違い、IFS/SWITCHとの使い分け、#N/A・#VALUE!エラーの対処法、実務シナリオ（在庫照合・最新履歴取得・取引先マスタ）まで全網羅します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">VLOOKUPで「左側の列が取れない」「毎回IFERRORを書くのが面倒」と感じたことはありませんか。</p>



<p class="wp-block-paragraph">データの列順が変わるたびに数式を直したり、エラー対策でネストが深くなったり。VLOOKUPの限界にぶつかっている方は多いはずです。</p>



<p class="wp-block-paragraph">そんな悩みを一気に解決してくれるのが、<strong>XLOOKUP関数（読み方：エックスルックアップ）</strong> です。Googleスプレッドシートでも2022年8月から使えるようになり、今では実務の検索処理の主役になっています。この記事では、XLOOKUP関数の基本構文から逆方向検索・スピル・末尾検索・ワイルドカード、そしてVLOOKUPやIFS・SWITCHとの使い分けまで、実例とサンプル画像つきで解説します。</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">XLOOKUP関数とは？</a><ol><li><a href="#toc2" tabindex="0">XLOOKUPでできること</a></li><li><a href="#toc3" tabindex="0">対応バージョンと互換性</a></li></ol></li><li><a href="#toc4" tabindex="0">XLOOKUP関数の書き方（構文と引数）</a><ol><li><a href="#toc5" tabindex="0">基本構文</a></li><li><a href="#toc6" tabindex="0">引数の詳細</a></li></ol></li><li><a href="#toc7" tabindex="0">基本的な使い方</a><ol><li><a href="#toc8" tabindex="0">縦方向の検索（商品マスタから取得）</a></li><li><a href="#toc9" tabindex="0">横方向の検索（月別売上から取得）</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">複数列をまとめて返す（スピル）</a></li><li><a href="#toc13" tabindex="0">見つからない場合にデフォルト値を返す</a></li><li><a href="#toc14" tabindex="0">部分一致（ワイルドカード）検索</a></li><li><a href="#toc15" tabindex="0">末尾からの検索（最新データを取得）</a></li><li><a href="#toc16" tabindex="0">大規模データで高速化する（バイナリ検索）</a></li></ol></li><li><a href="#toc17" tabindex="0">実務シナリオ別の使い方</a><ol><li><a href="#toc18" tabindex="0">シナリオ1: 在庫照合（注文一覧 × 在庫マスタ）</a></li><li><a href="#toc19" tabindex="0">シナリオ2: 取引先マスタの引き当て</a></li><li><a href="#toc20" tabindex="0">シナリオ3: 直近の売上を取得</a></li></ol></li><li><a href="#toc21" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc22" tabindex="0">#N/Aエラー（検索キーが見つからない）</a></li><li><a href="#toc23" tabindex="0">#VALUE!エラー（範囲サイズ不一致）</a></li><li><a href="#toc24" tabindex="0">#REF!エラー（スピル先が埋まっている）</a></li><li><a href="#toc25" tabindex="0">#NAME?エラー（関数名の誤り）</a></li></ol></li><li><a href="#toc26" tabindex="0">VLOOKUP・INDEX+MATCH・IFS・SWITCHとの違い・使い分け</a><ol><li><a href="#toc27" tabindex="0">関数ごとの比較表</a></li><li><a href="#toc28" tabindex="0">IFS / SWITCHとの使い分け</a></li><li><a href="#toc29" tabindex="0">XMATCHとの組み合わせ</a></li><li><a href="#toc30" tabindex="0">どの関数を使うべきか</a></li></ol></li><li><a href="#toc31" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">XLOOKUP関数は、<strong>指定した範囲から値を検索し、対応するデータを返す関数</strong>です。読み方は「エックスルックアップ」。Xは「eXtended（拡張された）」の頭文字で、従来のVLOOKUP・HLOOKUPの弱点を克服するために設計された後継関数です。</p>



<p class="wp-block-paragraph">Googleスプレッドシートでは2022年8月にリリースされ、Excelでも Microsoft 365 と Excel 2021 以降で使えます。覚えればVLOOKUPの出番がほぼなくなる、汎用性の高い検索関数です。</p>



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



<ul class="wp-block-list"><li>縦方向・横方向の両方を1つの関数で検索できる</li><li>検索列の左側にあるデータも取得できる（VLOOKUPでは不可）</li><li>見つからない場合の表示値を関数内で直接指定できる</li><li>複数列・複数行をまとめて返せる（スピル対応）</li><li>末尾からの検索（最新データの取得）が1つの引数でできる</li><li>ワイルドカードや正規表現にも対応している</li></ul>



<h3 class="wp-block-heading"><span id="toc3">対応バージョンと互換性</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>アプリ</th><th>対応状況</th></tr></thead><tbody><tr><td>Googleスプレッドシート</td><td>2022年8月以降に作成されたシートで利用可</td></tr><tr><td>Microsoft 365 / Excel for Web</td><td>利用可</td></tr><tr><td>Excel 2021</td><td>利用可</td></tr><tr><td>Excel 2019 以前</td><td>利用不可（VLOOKUPまたはINDEX+MATCHで代替）</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>補足</strong></p><p>他のメンバーが古いExcelで開く可能性がある場合は、互換性の観点からVLOOKUPを併用するか、XLOOKUPの結果を「値貼り付け」で確定させてから共有すると安全です。</p></blockquote>



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



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



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



<p class="wp-block-paragraph">引数が6つあるように見えますが、<strong>最初の3つだけで基本的な検索はできます</strong>。4〜6番目はオプションなので、最初は気にしなくて大丈夫です。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>説明</th></tr></thead><tbody><tr><td>検索キー</td><td>必須</td><td>検索したい値（セル参照・文字列・数値など）</td></tr><tr><td>検索範囲</td><td>必須</td><td>検索キーを探す1列または1行の範囲</td></tr><tr><td>結果の範囲</td><td>必須</td><td>返したいデータが入っている範囲（複数列も可）</td></tr><tr><td>見つからない場合の値</td><td>任意</td><td>一致しない場合に返す値（省略時は <code>#N/A</code>）</td></tr><tr><td>一致モード</td><td>任意</td><td>0=完全一致（既定）、-1=次に小さい値、1=次に大きい値、2=ワイルドカード、3=正規表現</td></tr><tr><td>検索モード</td><td>任意</td><td>1=先頭から（既定）、-1=末尾から、2=昇順バイナリ検索、-2=降順バイナリ検索</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>一致モード</strong>と<strong>検索モード</strong>は少し難しそうに見えますが、普段使いでは「完全一致（一致モード=0）」「先頭から検索（検索モード=1）」の既定値で十分です。後ろの応用例で、それぞれが役立つ場面を順番に紹介します。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>一致モード=3は Sheets独自</strong></p><p>正規表現一致（一致モード=3）はGoogleスプレッドシート独自の機能です。Excelには無いため、Excelと共有するファイルでは使わないでください。</p></blockquote>



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



<h3 class="wp-block-heading"><span id="toc8">縦方向の検索（商品マスタから取得）</span></h3>



<p class="wp-block-paragraph">まずは一番よく使う「縦方向の検索」から見てみましょう。</p>



<p class="wp-block-paragraph">たとえば、下のような商品マスタがあるとします。</p>



<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>



<p class="wp-block-paragraph">E1セルに「A002」と入力されているとき、F1セルで商品名を取得するには次のように書きます。</p>



<pre class="wp-block-code"><code>=XLOOKUP(E1, A:A, B:B)</code></pre>



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



<p class="wp-block-paragraph"><strong>（P）結論</strong>: これだけで「みかん」が返ってきます。</p>



<p class="wp-block-paragraph"><strong>（R）理由</strong>: 第1引数で検索キー（E1）を、第2引数で検索範囲（A列）を、第3引数で返したい列（B列）を指定しているからです。VLOOKUPのような「何列目を返すか」の列番号はいりません。</p>



<p class="wp-block-paragraph"><strong>（E）具体例</strong>: 単価を取りたい場合は第3引数をC列に変えるだけです。</p>



<pre class="wp-block-code"><code>=XLOOKUP(E1, A:A, C:C)</code></pre>



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



<p class="wp-block-paragraph"><strong>（P）まとめ</strong>: VLOOKUPと違って列番号を数える必要がありません。途中で列が増減しても数式を修正しなくていいので、運用の手間が一気に減ります。</p>



<h3 class="wp-block-heading"><span id="toc9">横方向の検索（月別売上から取得）</span></h3>



<p class="wp-block-paragraph">XLOOKUPは横方向のデータにも対応しています。HLOOKUPを使っていた場面をXLOOKUP1本で代替できます。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A列</th><th>B列</th><th>C列</th><th>D列</th></tr></thead><tbody><tr><td>1行目（月）</td><td>1月</td><td>2月</td><td>3月</td><td>4月</td></tr><tr><td>2行目（売上）</td><td>120</td><td>95</td><td>180</td><td>210</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">「3月」の売上を取得するには次のように書きます。</p>



<pre class="wp-block-code"><code>=XLOOKUP(&quot;3月&quot;, A1:D1, A2:D2)</code></pre>



<p class="wp-block-paragraph">縦でも横でも同じ書き方で使えるのがXLOOKUPの強みです。HLOOKUPを覚え直す必要もありません。</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">VLOOKUPで困る場面の代表例が「検索キーより左の列のデータを取りたい」ケースです。VLOOKUPは検索列の右側しか取れませんが、XLOOKUPはどの方向でも取得できます。</p>



<p class="wp-block-paragraph"><strong>Before（VLOOKUPの場合）</strong>:</p>



<p class="wp-block-paragraph">左側の列を取得するには列を並べ替えるか、INDEX+MATCH関数を組み合わせる必要があり、式が複雑になりがちです。</p>



<pre class="wp-block-code"><code>=INDEX(A:A, MATCH(E1, B:B, 0))</code></pre>



<p class="wp-block-paragraph"><strong>After（XLOOKUPの場合）</strong>:</p>



<p class="wp-block-paragraph">検索範囲と結果の範囲を自由に指定できるので、シンプルに書けます。</p>



<p class="wp-block-paragraph">たとえば「商品名（B列）」で検索して「商品コード（A列）」を返す場合：</p>



<pre class="wp-block-code"><code>=XLOOKUP(E1, B:B, A:A)</code></pre>



<p class="wp-block-paragraph">ちょっと不思議に見えますが、やっていることはシンプルです。「B列で探して、A列の値を返す」というだけ。「検索する列」と「返す列」を自由に組み合わせられます。</p>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/03/04_result_xlookup-reverse.png" alt="04 result xlookup reverse" /></figure>



<h3 class="wp-block-heading"><span id="toc12">複数列をまとめて返す（スピル）</span></h3>



<p class="wp-block-paragraph">XLOOKUPは第3引数の結果の範囲に複数列を指定すると、一度にまとめて返してくれます。</p>



<p class="wp-block-paragraph">商品コードで検索して「商品名」と「単価」を同時に取得する例：</p>



<pre class="wp-block-code"><code>=XLOOKUP(E1, A:A, B:C)</code></pre>



<p class="wp-block-paragraph">これを入力すると、F1セルに商品名、G1セルに単価が自動で展開されます。これがスピル機能です。VLOOKUPでは列ごとに数式を書く必要があったので、大幅に手間が減ります。</p>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>補足</strong></p><p>スピル先のセル（F1の場合はG1）にすでにデータがあると <code>#REF!</code> エラーになります。隣のセルを空けておくのを忘れないようにしましょう。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc13">見つからない場合にデフォルト値を返す</span></h3>



<p class="wp-block-paragraph">VLOOKUPでは一致しないと <code>#N/A</code> エラーが出るため、別途 <code>IFERROR</code> でエラー処理する必要がありました。</p>



<p class="wp-block-paragraph"><strong>Before（VLOOKUPの場合）</strong>:</p>



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



<p class="wp-block-paragraph"><strong>After（XLOOKUPの場合）</strong>:</p>



<p class="wp-block-paragraph">第4引数に表示したい文字を指定するだけです。</p>



<pre class="wp-block-code"><code>=XLOOKUP(E1, A:A, B:B, &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">IFERRORを外付けしなくてよいので、式がスッキリします。空白にしたい場合は <code>""</code> を指定してください。</p>



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



<pre class="wp-block-code"><code>=XLOOKUP(E1, A:A, B:B, &quot;&quot;)</code></pre>



<h3 class="wp-block-heading"><span id="toc14">部分一致（ワイルドカード）検索</span></h3>



<p class="wp-block-paragraph">第5引数の一致モードを <code>2</code> にすると、ワイルドカードが使えます。「株式会社」を含む取引先を検索する、といった柔軟な検索ができます。</p>



<pre class="wp-block-code"><code>=XLOOKUP(&quot;*株式会社*&quot;, A:A, B:B, &quot;該当なし&quot;, 2)</code></pre>



<p class="wp-block-paragraph">使えるワイルドカードは次の3つです。</p>



<figure class="wp-block-table"><table><thead><tr><th>記号</th><th>意味</th></tr></thead><tbody><tr><td><code>*</code></td><td>任意の文字列（0文字以上）</td></tr><tr><td><code>?</code></td><td>任意の1文字</td></tr><tr><td><code>~</code></td><td>ワイルドカード自体を文字として扱う（<code>~<em></code> で <code></em></code> を検索）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">部分一致は<a href="https://mashukabu.com/spreadsheet-filter-function/">FILTER関数</a>でも可能ですが、XLOOKUPなら1件だけ引き当てたいときにシンプルに書けます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>正規表現で柔軟に検索する</strong></p><p>Googleスプレッドシート独自の一致モード <code>3</code> を指定すると正規表現が使えます。たとえば <code>=XLOOKUP("^A0", A:A, B:B, "なし", 3)</code> で「A0」から始まる商品コードを検索できます。正規表現の基本は<a href="https://mashukabu.com/spreadsheet-regexmatch-function/">REGEXMATCH関数</a>の解説もあわせてご覧ください。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc15">末尾からの検索（最新データを取得）</span></h3>



<p class="wp-block-paragraph">第6引数の検索モードを <code>-1</code> にすると、範囲の末尾から検索します。履歴テーブルから最新の記録を取得するときに便利です。</p>



<p class="wp-block-paragraph">たとえば、日付順に並んだ訪問履歴から、顧客ごとの最新訪問日を取る場合：</p>



<pre class="wp-block-code"><code>=XLOOKUP(E1, A:A, B:B, &quot;記録なし&quot;, 0, -1)</code></pre>



<p class="wp-block-paragraph">A列が顧客ID、B列が訪問日のとき、末尾から検索することで最新の日付が返ります。VLOOKUPでは実現が難しかった使い方です。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>最新の在庫数や担当者を取得する</strong></p><p>「商品コードでの最新の在庫更新日」「顧客IDの最終購入金額」など、追記型ログから直近の値を抽出するシーンに有効です。データを日付順に追加していくだけで、最新の値が自動で更新されます。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc16">大規模データで高速化する（バイナリ検索）</span></h3>



<p class="wp-block-paragraph">データが昇順または降順にソート済みであれば、検索モードを <code>2</code>（昇順）または <code>-2</code>（降順）にすることでバイナリ検索が使えます。数万件規模のデータでも体感速度が変わります。</p>



<pre class="wp-block-code"><code>=XLOOKUP(E1, A:A, B:B, &quot;なし&quot;, 0, 2)</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>バイナリ検索の前提</strong></p><p>バイナリ検索は <strong>検索範囲がソート済み</strong> であることが前提です。ソートされていない範囲に指定すると、誤った結果を返すことがあります。普段の業務では検索モードを省略（既定の <code>1</code>）したまま使うほうが安全です。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc17">実務シナリオ別の使い方</span></h2>



<h3 class="wp-block-heading"><span id="toc18">シナリオ1: 在庫照合（注文一覧 × 在庫マスタ）</span></h3>



<p class="wp-block-paragraph">注文一覧の各行に、在庫マスタから「現在庫」と「単価」を同時に取得する：</p>



<pre class="wp-block-code"><code>=XLOOKUP(A2, 在庫マスタ!A:A, 在庫マスタ!B:C, &quot;未登録&quot;)</code></pre>



<p class="wp-block-paragraph">スピル機能で在庫数と単価が一度に展開され、IFERRORも不要です。</p>



<h3 class="wp-block-heading"><span id="toc19">シナリオ2: 取引先マスタの引き当て</span></h3>



<p class="wp-block-paragraph">取引先名から取引先コードと担当営業を逆引きする：</p>



<pre class="wp-block-code"><code>=XLOOKUP(B2, マスタ!B:B, マスタ!A:A, &quot;未登録&quot;, 2)</code></pre>



<p class="wp-block-paragraph">一致モード <code>2</code>（ワイルドカード）にすることで「株式会社」の有無や表記ゆれにある程度耐性を持たせられます。本格的な表記ゆれ対策には<a href="https://mashukabu.com/spreadsheet-asc-function/">ASC関数</a>・<a href="https://mashukabu.com/spreadsheet-clean-function/">CLEAN関数</a>を組み合わせるのが定石です。</p>



<h3 class="wp-block-heading"><span id="toc20">シナリオ3: 直近の売上を取得</span></h3>



<p class="wp-block-paragraph">日次売上ログから、各商品の最新売上日と金額を取得する：</p>



<pre class="wp-block-code"><code>=XLOOKUP(A2, 売上!B:B, 売上!A:D, &quot;売上なし&quot;, 0, -1)</code></pre>



<p class="wp-block-paragraph">「末尾から検索」の <code>-1</code> と複数列スピルの組み合わせで、最新行の必要列がまとめて返ります。</p>



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



<h3 class="wp-block-heading"><span id="toc22">#N/Aエラー（検索キーが見つからない）</span></h3>



<p class="wp-block-paragraph"><strong>（P）結論</strong>: <code>#N/A</code> エラーが出る主な原因は「検索キーが検索範囲に存在しない」か「データの型が違う」ことです。</p>



<p class="wp-block-paragraph"><strong>（R）理由</strong>: XLOOKUPはデフォルトで完全一致（一致モード=0）を使うため、値が完全に一致しないと見つからないと判断します。</p>



<p class="wp-block-paragraph"><strong>（E）よくあるミス</strong>:</p>



<ul class="wp-block-list"><li>検索キーが数値なのに検索範囲のデータが文字列になっている（または逆）</li><li>セルに余分なスペースが入っている</li><li>日付の表示形式がシリアル値のまま</li></ul>



<p class="wp-block-paragraph"><strong>（P）解決策</strong>:</p>



<figure class="wp-block-table"><table><thead><tr><th>原因</th><th>対処方法</th></tr></thead><tbody><tr><td>型の不一致（数値 vs 文字列）</td><td><code>TEXT</code> 関数で文字列化 / <code>VALUE</code> 関数で数値化</td></tr><tr><td>余分なスペース</td><td><code>TRIM</code> 関数で前後の空白を除去</td></tr><tr><td>表記ゆれ（大文字小文字・全半角）</td><td><code>UPPER</code> / <code>LOWER</code> / <code>ASC</code> / <code>JIS</code> 関数で統一</td></tr><tr><td>そもそも存在しない</td><td>第4引数に <code>"該当なし"</code> などを指定</td></tr></tbody></table></figure>



<pre class="wp-block-code"><code>=XLOOKUP(TRIM(E1), A:A, B:B, &quot;データなし&quot;)</code></pre>



<h3 class="wp-block-heading"><span id="toc23">#VALUE!エラー（範囲サイズ不一致）</span></h3>



<p class="wp-block-paragraph">検索範囲と結果の範囲の行数（または列数）が一致していないと <code>#VALUE!</code> エラーになります。</p>



<p class="wp-block-paragraph"><strong>ダメな例</strong>:</p>



<pre class="wp-block-code"><code>=XLOOKUP(E1, A1:A10, B1:B5)</code></pre>



<p class="wp-block-paragraph">検索範囲が10行、結果の範囲が5行なのでサイズが一致しません。</p>



<p class="wp-block-paragraph"><strong>対処</strong>: 両方の範囲の行数（または列数）をそろえましょう。列全体を指定する <code>A:A</code> と <code>B:B</code> のような書き方なら自動的にそろうので安全です。</p>



<h3 class="wp-block-heading"><span id="toc24">#REF!エラー（スピル先が埋まっている）</span></h3>



<p class="wp-block-paragraph">複数列返しのときに、スピルで展開される先のセルに既存データがあると <code>#REF!</code> エラーが出ます。</p>



<p class="wp-block-paragraph"><strong>対処</strong>: スピル先のセルを空ける、または結果の範囲を1列だけに絞る。</p>



<h3 class="wp-block-heading"><span id="toc25">#NAME?エラー（関数名の誤り）</span></h3>



<p class="wp-block-paragraph">XLOOKUPと入力しても認識されない場合があります。古いスプレッドシート（2022年8月以前作成）で開いている可能性があります。新しいファイルを作成し直すか、対応シートにコピーしてください。</p>



<h2 class="wp-block-heading"><span id="toc26">VLOOKUP・INDEX+MATCH・IFS・SWITCHとの違い・使い分け</span></h2>



<h3 class="wp-block-heading"><span id="toc27">関数ごとの比較表</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>不可（HLOOKUPが必要）</td><td>可</td><td>可</td></tr><tr><td>エラー処理</td><td>IFERRORが別途必要</td><td>IFERRORが別途必要</td><td>第4引数で内蔵</td></tr><tr><td>列番号の指定</td><td>必要（何列目か数える）</td><td>不要</td><td>不要</td></tr><tr><td>複数列の同時取得</td><td>不可</td><td>不可</td><td>可（スピル）</td></tr><tr><td>末尾から検索</td><td>不可</td><td>不可</td><td>可</td></tr><tr><td>対応シート</td><td>すべて</td><td>すべて</td><td>2022年8月以降</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc28">IFS / SWITCHとの使い分け</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>条件式（A1>100 など）で分岐</td><td><a href="https://mashukabu.com/spreadsheet-ifs-function/">IFS関数</a></td><td>比較演算子を使った分岐に強い</td></tr><tr><td>単一値の置換（コード→ラベル）</td><td><a href="https://mashukabu.com/spreadsheet-switch-function/">SWITCH関数</a></td><td>数式内に値を直接書く小規模変換に向く</td></tr><tr><td>マスタテーブルからの参照</td><td>XLOOKUP</td><td>データ量が増えてもメンテしやすい</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">IFSやSWITCHは「数式内に判定条件を直接書く」関数のため、対応件数が増えると保守がつらくなります。マスタとして表で管理したくなったら、XLOOKUPに切り替えるのが正解です。</p>



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



<p class="wp-block-paragraph">「位置（行番号や列番号）」が欲しい場面では<a href="https://mashukabu.com/spreadsheet-xmatch-function/">XMATCH関数</a>と組み合わせると便利です。XMATCHはXLOOKUPと同じ検索モードに対応しているため、INDEX+MATCH の上位互換として使えます。</p>



<h3 class="wp-block-heading"><span id="toc30">どの関数を使うべきか</span></h3>



<ul class="wp-block-list"><li><strong>普段使いはXLOOKUP</strong>: 2022年8月以降のスプレッドシートなら、今後は迷わずXLOOKUPが第一候補です</li><li><strong>古いシートやExcel互換重視ならVLOOKUP</strong>: 他部署とのファイル共有で古い環境に戻す可能性があるときはVLOOKUPのままが無難</li><li><strong>INDEX+MATCHはもう不要</strong>: XLOOKUPが使えるなら役割を完全に引き継げます</li><li><strong>条件型の判定はIFS、マスタ参照はXLOOKUP</strong>: 「マスタ表があるか」で見分けるのが分かりやすいです</li></ul>



<p class="wp-block-paragraph">普段の作業で「列番号が変わるたびに修正していた」「IFERRORでネストが深くなっていた」と感じている方におすすめです。この機会にXLOOKUPに乗り換えると、作業が一気に楽になります。</p>



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



<p class="wp-block-paragraph">XLOOKUP関数のポイントをまとめます。</p>



<ul class="wp-block-list"><li><strong>基本は3引数</strong>: <code>=XLOOKUP(検索キー, 検索範囲, 結果の範囲)</code> で動く</li><li><strong>左方向にも検索できる</strong>: VLOOKUPの列制限がなく、検索範囲と結果の範囲を自由に設定できる</li><li><strong>エラー処理が内蔵</strong>: 第4引数で <code>"該当なし"</code> などを指定すれば <code>#N/A</code> をそのまま置き換えられる</li><li><strong>縦横両対応</strong>: VLOOKUPとHLOOKUPを1つの関数に統合したイメージ</li><li><strong>複数列まとめ取得</strong>: 結果の範囲に複数列を指定してスピルで展開できる</li><li><strong>末尾から検索も可</strong>: 第6引数を <code>-1</code> にすると最新データの取得がラク</li><li><strong>ワイルドカード・正規表現に対応</strong>: 一致モード <code>2</code>（ワイルドカード）と <code>3</code>（正規表現・Sheets独自）が使える</li><li><strong>大規模データはバイナリ検索</strong>: 検索モード <code>2</code> / <code>-2</code> で高速化（ソート済み前提）</li></ul>



<p class="wp-block-paragraph">VLOOKUPに慣れている方も、基本の3引数から使い始めれば違和感なく移行できます。まずは手元の作業で1回使ってみてください。慣れてしまえば「もうVLOOKUPには戻れない」と感じるはずです。</p>



<p class="wp-block-paragraph">検索系の関数を体系的に学びたい方は、<a href="https://mashukabu.com/spreadsheet-vlookup-function/">VLOOKUP関数</a>・<a href="https://mashukabu.com/spreadsheet-hlookup-function/">HLOOKUP関数</a>・<a href="https://mashukabu.com/spreadsheet-index-function/">INDEX関数</a>・<a href="https://mashukabu.com/spreadsheet-match-function/">MATCH関数</a>・<a href="https://mashukabu.com/spreadsheet-xmatch-function/">XMATCH関数</a>の解説もあわせてどうぞ。複数条件の抽出なら<a href="https://mashukabu.com/spreadsheet-filter-function/">FILTER関数</a>、条件分岐は<a href="https://mashukabu.com/spreadsheet-ifs-function/">IFS関数</a>・<a href="https://mashukabu.com/spreadsheet-switch-function/">SWITCH関数</a>、表記ゆれ対策は<a href="https://mashukabu.com/spreadsheet-asc-function/">ASC関数</a>・<a href="https://mashukabu.com/spreadsheet-clean-function/">CLEAN関数</a>が役立ちます。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-xlookup/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>HLOOKUP関数とは？使い方・エラー対処法・VLOOKUPとの違い</title>
		<link>https://mashukabu.com/excel-function-howto-use-hlookup/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-hlookup/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Tue, 07 Feb 2023 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[HLOOKUP]]></category>
		<category><![CDATA[VLOOKUP]]></category>
		<category><![CDATA[XLOOKUP]]></category>
		<category><![CDATA[検索]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=2414</guid>

					<description><![CDATA[ExcelのHLOOKUP関数の使い方を基本から解説。構文・引数・実践例に加え、#N/Aや#REF!エラーの対処法、VLOOKUP・XLOOKUPとの違い、XLOOKUPへの移行ポイントもわかりやすく紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「横方向に並んだデータから値を取り出したいのに、VLOOKUPだとうまくいかない……」そんな経験はありませんか？ VLOOKUPは縦方向の検索には強いですが、横方向のデータには対応していません。</p>



<p class="wp-block-paragraph">そこで活躍するのがHLOOKUP関数です。この記事では、HLOOKUP関数の基本的な使い方から実践的な活用例、よくあるエラーの対処法、そしてVLOOKUP・XLOOKUPとの違いまで、わかりやすく解説していきます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>この記事は次のような人におすすめ</strong></p><p>&#8211; 横方向に並んだ表からデータを検索・取得したい人<br>&#8211; HLOOKUP関数の引数や使い方を基礎から理解したい人<br>&#8211; VLOOKUPや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">HLOOKUP関数とは？</a><ol><li><a href="#toc2" tabindex="0">読み方と語源</a></li><li><a href="#toc3" tabindex="0">HLOOKUP関数でできること</a></li></ol></li><li><a href="#toc4" tabindex="0">HLOOKUP関数の書き方（構文と引数）</a><ol><li><a href="#toc5" tabindex="0">基本構文</a></li><li><a href="#toc6" tabindex="0">引数の説明</a></li></ol></li><li><a href="#toc7" tabindex="0">HLOOKUP関数の基本的な使い方</a></li><li><a href="#toc8" tabindex="0">HLOOKUP関数の実践的な使い方・応用例</a><ol><li><a href="#toc9" tabindex="0">月別データから特定月の値を取得する</a></li><li><a href="#toc10" tabindex="0">MATCH関数と組み合わせて行番号を自動化する</a></li><li><a href="#toc11" tabindex="0">IFNA関数と組み合わせてエラーを回避する</a></li></ol></li><li><a href="#toc12" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc13" tabindex="0">#N/A エラー</a></li><li><a href="#toc14" tabindex="0">#REF! エラー</a></li><li><a href="#toc15" tabindex="0">#VALUE! エラー</a></li></ol></li><li><a href="#toc16" tabindex="0">VLOOKUP・XLOOKUPとの違いと使い分け</a><ol><li><a href="#toc17" tabindex="0">HLOOKUPとVLOOKUPの違い（行方向 vs 列方向）</a></li><li><a href="#toc18" tabindex="0">XLOOKUPへの移行がおすすめ</a></li></ol></li><li><a href="#toc19" tabindex="0">まとめ</a><ol><li><a href="#toc20" tabindex="0">関数一覧</a></li><li><a href="#toc21" tabindex="0">エラー値についてのまとめ記事</a></li></ol></li></ol>
    </div>
  </div>

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



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



<p class="wp-block-paragraph">読み方は「エイチ ルックアップ」関数です。</p>



<p class="wp-block-paragraph">HLOOKUPの「H」は「Horizontal（ホリゾンタル）」の頭文字で、「水平・横方向」という意味があります。つまり、横方向にデータを検索する関数ということですね。</p>



<p class="wp-block-paragraph">ちなみに、よく比較されるVLOOKUP関数の「V」は「Vertical（バーティカル）＝垂直・縦方向」を意味しています。名前を覚えるだけで、どちらが縦でどちらが横かがわかるようになりますよ。</p>



<h3 class="wp-block-heading"><span id="toc3">HLOOKUP関数でできること</span></h3>



<p class="wp-block-paragraph">HLOOKUP関数は、指定した範囲の<strong>上端行（1行目）で検索値を横方向に探し</strong>、見つかった列の指定した行数分だけ下のセルの値を取得する関数です。</p>



<p class="wp-block-paragraph">たとえば、月別の売上表で「4月」を検索して、その列の3行目にある売上金額を取り出す、といった使い方ができます。</p>



<p class="wp-block-paragraph">データが横方向（行方向）に並んでいるときに使うのがHLOOKUP、縦方向（列方向）に並んでいるときに使うのがVLOOKUPと覚えておきましょう。</p>



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



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



<p class="wp-block-paragraph">まずはHLOOKUP関数の構文を確認しましょう。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>構文</strong></p><p><strong>=HLOOKUP( 検索値, 範囲, 行番号, [検索の型] )</strong></p></blockquote>



<p class="wp-block-paragraph">引数は全部で4つあり、最初の3つは必須、4つ目の「検索の型」は省略できます。</p>



<h3 class="wp-block-heading"><span id="toc6">引数の説明</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>範囲の上端行から探したい値。文字列・数値・セル参照が使えます</td></tr><tr><td>範囲</td><td>必須</td><td>検索対象と取得したい値を含むセル範囲。上端行が検索対象になります</td></tr><tr><td>行番号</td><td>必須</td><td>取得したいデータがある行の番号。上端行を「1」として数えます</td></tr><tr><td>検索の型</td><td>省略可</td><td>FALSEまたは0で完全一致、TRUEまたは1で近似一致。省略するとTRUEになります</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>「検索の型」はFALSE（完全一致）を指定するのがおすすめです。</strong> 省略するとTRUE（近似一致）になりますが、意図しない結果が返ることがあるため、基本的にはFALSEを明示的に指定しておきましょう。</p>



<p class="wp-block-paragraph">なお、TRUEを指定する場合は、上端行のデータが<strong>昇順に並んでいる必要があります</strong>。昇順になっていないと正しい結果が得られないので注意してください。</p>



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



<p class="wp-block-paragraph">ここでは、支店別の売上データから特定の支店の値を取り出す例で解説します。</p>



<p class="wp-block-paragraph">次のような横方向の表があるとします。</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>&nbsp;</td><td>東京支店</td><td>大阪支店</td><td>名古屋支店</td><td>福岡支店</td></tr><tr><td>2</td><td>売上</td><td>500</td><td>350</td><td>280</td><td>200</td></tr><tr><td>3</td><td>経費</td><td>120</td><td>80</td><td>65</td><td>50</td></tr><tr><td>4</td><td>利益</td><td>380</td><td>270</td><td>215</td><td>150</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">東京支店の利益（380）を取得するには、次のように入力します。</p>



<pre class="wp-block-code"><code>=HLOOKUP(&quot;東京支店&quot;, B1:E4, 4, FALSE)</code></pre>



<p class="wp-block-paragraph">この数式の意味を分解してみましょう。</p>



<ul class="wp-block-list"><li><strong>検索値</strong>: &#8220;東京支店&#8221; — 上端行から「東京支店」を探します</li><li><strong>範囲</strong>: B1:E4 — B1からE4の範囲を指定しています</li><li><strong>行番号</strong>: 4 — 上端行から数えて4行目（利益の行）の値を取得します</li><li><strong>検索の型</strong>: FALSE — 完全一致で検索します</li></ul>



<p class="wp-block-paragraph">結果として「380」が返ります。行番号を「2」に変えれば売上（500）、「3」に変えれば経費（120）を取得できますよ。</p>



<p class="wp-block-paragraph">セル参照を使うこともできます。たとえばG1セルに支店名が入力されている場合は、次のように書けます。</p>



<pre class="wp-block-code"><code>=HLOOKUP(G1, B1:E4, 4, FALSE)</code></pre>



<p class="wp-block-paragraph">こうすると、G1セルの値を変更するだけで、取得する支店のデータを切り替えられます。入力規則のドロップダウンと組み合わせれば、簡易的なダッシュボードにもなりますね。</p>



<h2 class="wp-block-heading"><span id="toc8">HLOOKUP関数の実践的な使い方・応用例</span></h2>



<h3 class="wp-block-heading"><span id="toc9">月別データから特定月の値を取得する</span></h3>



<p class="wp-block-paragraph">実務では、月別に横方向に並んだ集計表をよく見かけますよね。こういったデータからHLOOKUP関数で特定の月の値を取り出せます。</p>



<p class="wp-block-paragraph">たとえば、以下のような月別売上表があるとします。</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>&#8230;</th><th>M</th></tr></thead><tbody><tr><td>1</td><td>&nbsp;</td><td>1月</td><td>2月</td><td>3月</td><td>&#8230;</td><td>12月</td></tr><tr><td>2</td><td>売上</td><td>100</td><td>120</td><td>150</td><td>&#8230;</td><td>200</td></tr><tr><td>3</td><td>目標</td><td>110</td><td>110</td><td>140</td><td>&#8230;</td><td>190</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">3月の売上を取得するには、次のように入力します。</p>



<pre class="wp-block-code"><code>=HLOOKUP(&quot;3月&quot;, B1:M3, 2, FALSE)</code></pre>



<p class="wp-block-paragraph">結果は「150」が返ります。行番号を3にすれば、目標値（140）を取得できます。</p>



<h3 class="wp-block-heading"><span id="toc10">MATCH関数と組み合わせて行番号を自動化する</span></h3>



<p class="wp-block-paragraph">行番号をハードコーディングすると、表の構成が変わったときにメンテナンスが大変です。そこでMATCH関数と組み合わせると、取得したい項目名から自動的に行番号を算出できます。</p>



<pre class="wp-block-code"><code>=HLOOKUP(&quot;3月&quot;, B1:M3, MATCH(&quot;目標&quot;, A1:A3, 0), FALSE)</code></pre>



<p class="wp-block-paragraph">この書き方なら、行の順番が入れ替わっても数式を修正する必要がありません。さらに柔軟に2方向の検索を行いたい場合は、INDEX関数とMATCH関数の組み合わせも検討してみてください。</p>



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



<p class="wp-block-paragraph">HLOOKUP関数で検索値が見つからないと、<code>#N/A</code>エラーが表示されてしまいます。これを避けるには、IFNA関数と組み合わせるのが便利です。</p>



<pre class="wp-block-code"><code>=IFNA(HLOOKUP(&quot;札幌支店&quot;, B1:E4, 4, FALSE), &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">検索値が見つからなかった場合に「該当なし」と表示されるので、見た目もスッキリしますし、後続の計算でエラーが連鎖するのを防げます。</p>



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



<p class="wp-block-paragraph">HLOOKUP関数を使っていると、思わぬエラーに遭遇することがあります。ここではエラーの種類別に原因と対処法を整理しました。</p>



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



<p class="wp-block-paragraph"><code>#N/A</code>エラーは「検索値が見つからない」ときに発生します。</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>TRIM関数でスペースを除去する</td></tr><tr><td>文字列と数値の型が一致していない</td><td>VALUE関数で数値に変換、またはTEXT関数で文字列に変換する</td></tr><tr><td>全角・半角が混在している</td><td>ASC関数やJIS関数で表記を統一する</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">エラーを非表示にしたい場合は、IFNA関数やISNA関数と組み合わせて対処しましょう。</p>



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



<p class="wp-block-paragraph"><code>#REF!</code>エラーは「行番号が範囲の行数を超えている」ときに発生します。</p>



<p class="wp-block-paragraph">たとえば、範囲がB1:E3（3行）なのに行番号を「4」と指定するとこのエラーが出ます。指定した範囲の行数を確認して、行番号が範囲内に収まるように修正してください。</p>



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



<p class="wp-block-paragraph"><code>#VALUE!</code>エラーは「行番号に1未満の数値や文字列を指定した」ときに発生します。行番号には必ず1以上の整数を指定しましょう。</p>



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



<p class="wp-block-paragraph">Excelには検索系の関数がいくつかあります。HLOOKUP関数とよく比較される関数との違いを表にまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>HLOOKUP</th><th>VLOOKUP</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>近似一致（TRUE）</td><td>近似一致（TRUE）</td><td>完全一致</td></tr><tr><td>対応バージョン</td><td>Excel 2003以降</td><td>Excel 2003以降</td><td>Microsoft 365 / Excel 2021以降</td></tr><tr><td>見つからない場合の指定</td><td>不可（IFNAで対応）</td><td>不可（IFNAで対応）</td><td>第4引数で指定可</td></tr><tr><td>列/行の追加への耐性</td><td>弱い（番号ズレ）</td><td>弱い（番号ズレ）</td><td>強い（範囲参照）</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc17">HLOOKUPとVLOOKUPの違い（行方向 vs 列方向）</span></h3>



<p class="wp-block-paragraph">もっとも混同しやすいのがHLOOKUPとVLOOKUPの違いです。どちらも「表から値を引く」関数ですが、検索する方向がちょうど90度違います。</p>



<ul class="wp-block-list"><li><strong>HLOOKUP</strong>: 範囲の<strong>上端行</strong>を横に探し、<strong>縦方向（下）</strong> に指定した行数分だけ下のセルを返す</li><li><strong>VLOOKUP</strong>: 範囲の<strong>左端列</strong>を縦に探し、<strong>横方向（右）</strong> に指定した列数分だけ右のセルを返す</li></ul>



<p class="wp-block-paragraph">表のレイアウトが縦長（項目名が1列目に並ぶ）ならVLOOKUP、横長（項目名が1行目に並ぶ）ならHLOOKUP、と覚えておけば迷いません。</p>



<h3 class="wp-block-heading"><span id="toc18">XLOOKUPへの移行がおすすめ</span></h3>



<p class="wp-block-paragraph"><strong>使い分けのポイントは以下のとおりです。</strong></p>



<ul class="wp-block-list"><li><strong>データが横方向に並んでいる</strong> → HLOOKUP関数</li><li><strong>データが縦方向に並んでいる</strong> → <a href="https://mashukabu.com/excel-function-howto-use-vlookup/">VLOOKUP関数</a></li><li><strong>Microsoft 365やExcel 2021以降を使っている</strong> → <a href="https://mashukabu.com/excel-function-howto-use-xlookup/">XLOOKUP関数</a>がおすすめ</li></ul>



<p class="wp-block-paragraph">XLOOKUP関数は縦方向・横方向の両方に対応しており、HLOOKUPとVLOOKUPの機能を1つの関数でカバーできます。さらにデフォルトが完全一致、見つからない場合の代替値を第4引数で直接指定できる、列や行を追加しても数式が壊れにくい、といったメリットもあります。</p>



<p class="wp-block-paragraph">お使いのExcelのバージョンがMicrosoft 365やExcel 2021以降であれば、新規の数式はXLOOKUPで書くことを強くおすすめします。既存のHLOOKUP/VLOOKUPも、メンテナンスの機会に少しずつXLOOKUPへ置き換えていくと、将来的なトラブルを減らせますよ。</p>



<p class="wp-block-paragraph">ただし、Excel 2019以前のバージョンではXLOOKUPは使えません。職場のパソコンがまだ古いバージョンという方や、取引先とファイルをやり取りする場合は、互換性を考えてHLOOKUP関数をしっかり押さえておくのがおすすめです。</p>



<p class="wp-block-paragraph">関連する検索・参照系の関数としては、<a href="https://mashukabu.com/excel-function-howto-use-index/">INDEX関数</a>と<a href="https://mashukabu.com/excel-function-howto-use-match/">MATCH関数</a>の組み合わせも便利です。XLOOKUPが使えない環境で2方向検索をしたい場合に重宝するので、あわせてチェックしてみてください。</p>



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



<p class="wp-block-paragraph">HLOOKUP関数は、横方向に並んだデータから値を検索・取得するための関数です。この記事のポイントをおさらいしましょう。</p>



<ul class="wp-block-list"><li>HLOOKUPの「H」はHorizontal（水平）の略で、<strong>横方向に検索</strong>する関数</li><li>引数は「検索値・範囲・行番号・検索の型」の4つ。検索の型は<strong>FALSEを指定するのが基本</strong></li><li>検索値が見つからないときの<code>#N/A</code>エラーは、IFNA関数と組み合わせて回避できる</li><li>VLOOKUPとは検索方向が90度違う。表のレイアウトに合わせて使い分ける</li><li>Microsoft 365やExcel 2021以降であれば、<strong>XLOOKUP関数への置き換え</strong>がおすすめ</li></ul>



<p class="wp-block-paragraph">横方向のデータ検索はHLOOKUP関数にお任せです。ぜひ実務で活用してみてくださいね。</p>



<h3 class="wp-block-heading"><span id="toc20">関数一覧</span></h3>



<p class="wp-block-paragraph">biz-tacticsではExcel関数の一覧を3パターンご用意しています。用途に合わせてお使いください。</p>



<ul class="wp-block-list"><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><li><a href="https://mashukabu.com/excel-function-alphabetical-order-pronunciation/">Excel関数の読み方一覧</a></li></ul>



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



<p class="wp-block-paragraph">関数でエラーが発生した際に表示される、エラーの種類を以下の記事でまとめています。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-error-value-list/">【Excel】セルに表示されるエラーの種類と原因、対処方法を解説</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-hlookup/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのIFNA関数の使い方｜#N/Aだけを処理してエラーを見逃さない方法</title>
		<link>https://mashukabu.com/excel-function-howto-use-ifna/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-ifna/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Mon, 30 May 2022 12:02:31 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[#N/A]]></category>
		<category><![CDATA[IFERROR]]></category>
		<category><![CDATA[IFNA関数]]></category>
		<category><![CDATA[VLOOKUP]]></category>
		<category><![CDATA[XLOOKUP]]></category>
		<category><![CDATA[エラー処理]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=2050</guid>

					<description><![CDATA[ExcelのIFNA関数の使い方を解説。VLOOKUP組み合わせで#N/Aエラーを非表示にする方法、IFERRORとの違い・使い分け比較表、XLOOKUPへの移行ガイドまで実例付きで紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">VLOOKUPで検索したら、セルに「#N/A」がズラッと並んでしまった…。そんな経験、ありませんか？</p>



<p class="wp-block-paragraph">見栄えが悪いだけでなく、そのまま集計に使うと合計や平均もエラーになってしまいます。かといって、<a href="https://mashukabu.com/excel-function-howto-use-iferror/">IFERROR関数</a>で全エラーをまとめて消すと、数式ミスまで隠れてしまうリスクがあるんですよね。</p>



<p class="wp-block-paragraph">そこで活躍するのが <strong>IFNA関数</strong> です。#N/Aエラーだけをピンポイントで処理できるので、安全にエラー表示をコントロールできますよ。この記事では、IFNA関数の基本から、VLOOKUPとの組み合わせ、IFERRORとの違いまでまるっと解説します。</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">IFNA関数とは？何をする関数か</a><ol><li><a href="#toc2" tabindex="0">読み方・意味</a></li><li><a href="#toc3" tabindex="0">書式と引数</a></li></ol></li><li><a href="#toc4" tabindex="0">IFNA関数の基本的な使い方</a><ol><li><a href="#toc5" tabindex="0">#N/Aエラーを空白にする</a></li><li><a href="#toc6" tabindex="0">#N/Aエラーをメッセージに変える</a></li><li><a href="#toc7" tabindex="0">#N/Aエラーを0にする</a></li></ol></li><li><a href="#toc8" tabindex="0">VLOOKUP+IFNAの実践パターン</a><ol><li><a href="#toc9" tabindex="0">未登録データの検索処理</a></li><li><a href="#toc10" tabindex="0">INDEX+MATCH+IFNAで柔軟に検索する</a></li><li><a href="#toc11" tabindex="0">IFNAのネストで複数テーブルを順番に検索</a></li></ol></li><li><a href="#toc12" tabindex="0">IFERRORとIFNA｜どちらを使うべきか（比較表）</a></li><li><a href="#toc13" tabindex="0">XLOOKUPなら第4引数でIFNA不要（移行ガイド）</a></li><li><a href="#toc14" tabindex="0">IFNA関数のよくあるエラーと対処法</a></li><li><a href="#toc15" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">IFNA関数とは？何をする関数か</span></h2>



<p class="wp-block-paragraph">IFNA関数は、数式の結果が <strong>#N/Aエラーのときだけ</strong> 別の値を返す関数です。Excel 2013で追加されました。</p>



<p class="wp-block-paragraph">Excelのエラーは全部で7種類あります。</p>



<ul class="wp-block-list"><li><code>#N/A</code> — 検索値が見つからない</li><li><code>#VALUE!</code> — データ型が不正</li><li><code>#REF!</code> — 参照先が無効</li><li><code>#DIV/0!</code> — ゼロ除算</li><li><code>#NAME?</code> — 関数名のスペルミス</li><li><code>#NUM!</code> — 数値が範囲外</li><li><code>#NULL!</code> — 範囲指定が不正</li></ul>



<p class="wp-block-paragraph">IFNA関数が処理するのは、この中の <strong>#N/Aだけ</strong> です。残り6つのエラーはそのまま表示されます。つまり、数式のミスに気づける安全な設計になっているんですよね。</p>



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



<p class="wp-block-paragraph">読み方は「<strong>イフ・エヌエー</strong>」です。「IF + N/A」の略で、「もし#N/Aだったら」という意味になります。</p>



<h3 class="wp-block-heading"><span id="toc3">書式と引数</span></h3>



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



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/省略可</th><th>説明</th></tr></thead><tbody><tr><td>値</td><td>必須</td><td>#N/Aかどうか判定する数式やセル参照</td></tr><tr><td>NAの場合の値</td><td>省略可</td><td>#N/Aだったときに返す値。省略すると0が返る</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">第2引数を省略すると <strong>0</strong> が返ります。空白にしたい場合は <code>""</code> を明示的に指定してください。この省略時の挙動はうっかりミスしやすいポイントですよ。</p>



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



<p class="wp-block-paragraph">まずはシンプルな使い方から見ていきましょう。</p>



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



<p class="wp-block-paragraph">検索結果が見つからないとき、セルを空白のままにしたいケースは多いですよね。</p>



<pre class="wp-block-code"><code>=IFNA(VLOOKUP(A2,商品マスタ,2,FALSE),&quot;&quot;)</code></pre>



<p class="wp-block-paragraph">第2引数に <code>""</code> を指定するだけです。VLOOKUPが#N/Aを返したとき、セルには何も表示されません。報告書や請求書など、見た目を整えたいときに便利ですよ。</p>



<h3 class="wp-block-heading"><span id="toc6">#N/Aエラーをメッセージに変える</span></h3>



<p class="wp-block-paragraph">空白ではなく、「該当なし」「未登録」のようなメッセージを表示したいこともあります。</p>



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



<p class="wp-block-paragraph">こうすれば、検索値がマスタにないことがひと目でわかります。データの抜け漏れチェックにも使えるので、ぜひ試してみてください。</p>



<h3 class="wp-block-heading"><span id="toc7">#N/Aエラーを0にする</span></h3>



<p class="wp-block-paragraph">集計用の列で、見つからない場合は0として扱いたいケースもあります。</p>



<pre class="wp-block-code"><code>=IFNA(VLOOKUP(A2,価格表,3,FALSE),0)</code></pre>



<p class="wp-block-paragraph">第2引数に <code>0</code> を指定すれば、SUM関数やAVERAGE関数でエラーにならず集計できます。なお、第2引数を省略しても0が返りますが、「意図して0にした」ことを明示するために書いておくのがおすすめですよ。</p>



<h2 class="wp-block-heading"><span id="toc8">VLOOKUP+IFNAの実践パターン</span></h2>



<p class="wp-block-paragraph">ここからは、実務でよく使う組み合わせパターンを紹介します。</p>



<h3 class="wp-block-heading"><span id="toc9">未登録データの検索処理</span></h3>



<p class="wp-block-paragraph">たとえば、受注リストの商品コードを商品マスタから検索する場面を考えてみましょう。</p>



<p class="wp-block-paragraph"><strong>サンプルデータ（商品マスタ）</strong></p>



<figure class="wp-block-table"><table><thead><tr><th>商品コード</th><th>商品名</th><th>単価</th></tr></thead><tbody><tr><td>A001</td><td>ボールペン</td><td>150</td></tr><tr><td>A002</td><td>ノート</td><td>300</td></tr><tr><td>A003</td><td>消しゴム</td><td>100</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">受注リストにある商品コード「A004」を検索すると、マスタに存在しないので#N/Aになります。IFNAで処理すると次のようになります。</p>



<pre class="wp-block-code"><code>=IFNA(VLOOKUP(&quot;A004&quot;,商品マスタ,2,FALSE),&quot;未登録商品&quot;)</code></pre>



<p class="wp-block-paragraph">この数式は「未登録商品」と返します。#N/Aがそのまま表示されるよりも、何が起きているか一目瞭然ですよね。</p>



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



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-vlookup/">VLOOKUP関数</a>は検索列が左端でないと使えません。そんなときは<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>



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



<p class="wp-block-paragraph">INDEX+MATCHでも検索値が見つからなければ#N/Aが発生します。IFNAで囲んでおけば安心ですよ。</p>



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



<p class="wp-block-paragraph">「まずテーブルAを検索して、なければテーブルBを検索する」という処理もIFNAで実現できます。</p>



<pre class="wp-block-code"><code>=IFNA(VLOOKUP(A2,テーブルA,2,FALSE),IFNA(VLOOKUP(A2,テーブルB,2,FALSE),&quot;どちらにも該当なし&quot;))</code></pre>



<p class="wp-block-paragraph">ちょっとむずかしく見えますが、やっていることはシンプルです。外側のIFNAの第2引数に、もう一つのIFNA+VLOOKUPを入れているだけです。テーブルAで見つかればその値を返し、見つからなければテーブルBを検索します。テーブルBにもなければ「どちらにも該当なし」を返します。</p>



<p class="wp-block-paragraph">この書き方は、部署マスタと旧部署マスタを両方検索する場面などで重宝しますよ。</p>



<h2 class="wp-block-heading"><span id="toc12">IFERRORとIFNA｜どちらを使うべきか（比較表）</span></h2>



<p class="wp-block-paragraph">「IFERRORで十分じゃない？」と思う方も多いかもしれません。結論から言うと、<strong>検索系の関数と組み合わせるならIFNAのほうが安全</strong> です。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>IFNA</th><th><a href="https://mashukabu.com/excel-function-howto-use-iferror/">IFERROR</a></th></tr></thead><tbody><tr><td>処理するエラー</td><td>#N/Aのみ</td><td>全7種類</td></tr><tr><td>数式ミスの検出</td><td>できる（#N/A以外はそのまま表示）</td><td>できない（すべて隠れる）</td></tr><tr><td>登場バージョン</td><td>Excel 2013〜</td><td>Excel 2007〜</td></tr><tr><td>おすすめ用途</td><td>VLOOKUP・MATCH・XLOOKUPなど検索系</td><td>QUOTIENT・除算など#DIV/0!対策</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">たとえば、VLOOKUPの第3引数（列番号）を間違えて#REF!が出たとします。IFERRORで囲んでいると、このミスは空白や0に置き換えられて気づけません。IFNAなら#REF!はそのまま表示されるので、すぐに修正できます。</p>



<p class="wp-block-paragraph">使い分けのポイントは次のとおりです。</p>



<ul class="wp-block-list"><li><strong>検索系の関数</strong>（VLOOKUP・MATCH・INDEX+MATCHなど）→ <strong>IFNA</strong> を使う</li><li><strong>計算系の関数</strong>（除算・QUOTIENT・数値変換など）→ IFERROR を使う</li><li>全エラーをまとめて処理したい → IFERROR を使う</li></ul>



<p class="wp-block-paragraph">迷ったらIFNAを選ぶほうが安全ですよ。エラーを必要以上に隠さない設計は、あとからのトラブル防止につながります。</p>



<p class="wp-block-paragraph">なお、<a href="https://mashukabu.com/excel-function-howto-use-isna/">ISNA関数</a>（#N/Aかどうかを判定する関数）と<a href="https://mashukabu.com/excel-function-howto-use-if/">IF関数</a>を組み合わせる古い書き方もあります。</p>



<pre class="wp-block-code"><code>=IF(ISNA(VLOOKUP(A2,商品マスタ,2,FALSE)),&quot;未登録&quot;,VLOOKUP(A2,商品マスタ,2,FALSE))</code></pre>



<p class="wp-block-paragraph">この書き方だとVLOOKUPを2回書く必要があり、数式が長くなります。IFNAなら1回で済むので、こちらを使うのがおすすめです。IF系関数の使い分けについては、<a href="https://mashukabu.com/excel-if-ifs-iferror-ifna-comparison/">IF・IFS・IFERROR・IFNAの使い分け</a>の記事も参考にしてみてください。</p>



<h2 class="wp-block-heading"><span id="toc13">XLOOKUPなら第4引数でIFNA不要（移行ガイド）</span></h2>



<p class="wp-block-paragraph">Excel 2021やMicrosoft 365で使える<a href="https://mashukabu.com/excel-function-howto-use-xlookup/">XLOOKUP関数</a>なら、<strong>第4引数で「見つからなかった場合の値」を直接指定</strong> できます。IFNAで囲む必要がなくなるんです。</p>



<pre class="wp-block-code"><code>=XLOOKUP(A2,商品コード列,商品名列,&quot;未登録&quot;)</code></pre>



<p class="wp-block-paragraph">VLOOKUP+IFNAで書いていた処理が、XLOOKUPなら1つの関数で完結します。数式がスッキリしますよね。</p>



<p class="wp-block-paragraph">ただし、XLOOKUPはExcel 2019以前のバージョンでは使えません。社内でExcelのバージョンが混在している場合は、VLOOKUP+IFNAの書き方を使ったほうが安全です。</p>



<p class="wp-block-paragraph">移行の目安をまとめておきます。</p>



<ul class="wp-block-list"><li><strong>全員がExcel 2021以降 or Microsoft 365</strong> → XLOOKUPに移行してOK</li><li><strong>Excel 2019以前のユーザーがいる</strong> → VLOOKUP+IFNAを継続</li><li><strong>Googleスプレッドシートと共有</strong> → XLOOKUPは対応済みなので移行可能</li></ul>



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



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



<p class="wp-block-paragraph"><strong>第2引数を省略して意図しない0が表示される</strong></p>



<pre class="wp-block-code"><code>=IFNA(VLOOKUP(A2,商品マスタ,2,FALSE))</code></pre>



<p class="wp-block-paragraph">この数式は、#N/Aのとき0を返します。空白にしたいなら <code>""</code> を明示的に指定してください。</p>



<p class="wp-block-paragraph"><strong>IFNAの中にIFNAの対象でない数式を入れてしまう</strong></p>



<p class="wp-block-paragraph">IFNAは#N/Aしか処理しません。割り算の#DIV/0!を処理したいときは、<a href="https://mashukabu.com/excel-function-howto-use-iferror/">IFERROR関数</a>か<a href="https://mashukabu.com/excel-function-howto-use-iserror/">ISERROR関数</a>を使ってください。</p>



<p class="wp-block-paragraph"><strong>VLOOKUP側の引数ミスに気づかない</strong></p>



<p class="wp-block-paragraph">IFNAは#N/Aだけ処理するので、VLOOKUPの引数ミスによる#REF!や#VALUE!はそのまま表示されます。これはIFNAの「安全機能」です。エラーが出たら、IFNA側ではなくVLOOKUP側の引数を確認してみてください。</p>



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



<p class="wp-block-paragraph">IFNA関数は、#N/Aエラーだけを安全に処理できる関数です。ポイントをおさらいしておきましょう。</p>



<ul class="wp-block-list"><li><strong>書式</strong>: <code>=IFNA(値, NAの場合の値)</code> — 引数は2つだけ</li><li><strong>処理対象</strong>: #N/Aエラーのみ。他の6種類のエラーはスルーする</li><li><strong>VLOOKUPとセット</strong>: 検索系の関数と組み合わせるのが定番</li><li><strong>IFERRORとの違い</strong>: IFERRORは全エラー処理、IFNAは#N/Aだけ処理</li><li><strong>XLOOKUPなら不要</strong>: 第4引数で代替できる（Excel 2021以降）</li><li><strong>第2引数の省略に注意</strong>: 省略すると0が返る。空白にしたいなら <code>""</code> を指定</li></ul>



<p class="wp-block-paragraph">VLOOKUPやMATCHを使う場面では、IFERRORよりIFNAを選ぶクセをつけておくと、数式ミスの見落としを防げますよ。ぜひ普段の業務で活用してみてください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-ifna/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>COLUMN関数の使い方｜VLOOKUPの列番号を自動化</title>
		<link>https://mashukabu.com/excel-function-howto-use-column/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-column/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 26 May 2022 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[COLUMN関数]]></category>
		<category><![CDATA[INDEX]]></category>
		<category><![CDATA[MATCH]]></category>
		<category><![CDATA[VLOOKUP]]></category>
		<category><![CDATA[XLOOKUP]]></category>
		<category><![CDATA[列番号]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=2066</guid>

					<description><![CDATA[COLUMN関数の基本から応用まで解説。VLOOKUPの第3引数にCOLUMN()-Nを使えば、列の追加・削除で番号がズレない数式が作れます。横連番の自動生成やINDEX+MATCHとの組み合わせも紹介。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">VLOOKUPの列番号でミスしたことありませんか？　列を追加するたびに数式を修正するのは、地味にストレスですよね。そのまま放置すると、参照先がズレて間違った値を返してしまうことも。そんな悩みを解決するのが、ExcelのCOLUMN関数です。</p>



<p class="wp-block-paragraph">この記事では、COLUMN関数の基本から、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">COLUMN関数とは？基本の使い方をおさらい</a><ol><li><a href="#toc2" tabindex="0">引数なし：今いる列の番号をそのまま返す</a></li><li><a href="#toc3" tabindex="0">引数あり：任意のセルの列番号を取得する</a></li><li><a href="#toc4" tabindex="0">ROW関数との対称パターン表（行と列の整理）</a></li></ol></li><li><a href="#toc5" tabindex="0">VLOOKUP × COLUMN関数｜列番号を自動化する方法</a><ol><li><a href="#toc6" tabindex="0">手入力の列番号が壊れる場面（列追加・削除のあるある）</a></li><li><a href="#toc7" tabindex="0">COLUMN()-Nでズレを計算する思考ステップ</a></li><li><a href="#toc8" tabindex="0">実際の数式：複数列を一括で取得するサンプル</a></li></ol></li><li><a href="#toc9" tabindex="0">横方向に連番を自動生成する</a><ol><li><a href="#toc10" tabindex="0">基本パターン：COLUMN()-Nで1・2・3…と振る</a></li><li><a href="#toc11" tabindex="0">M365スピル対応：SEQUENCE関数との比較</a></li></ol></li><li><a href="#toc12" tabindex="0">INDEX + MATCH + COLUMNの組み合わせ</a><ol><li><a href="#toc13" tabindex="0">VLOOKUPからINDEX+MATCHに移行するときの書き方</a></li><li><a href="#toc14" tabindex="0">COLUMN関数で列参照をまとめて横展開する</a></li></ol></li><li><a href="#toc15" tabindex="0">INDIRECT + COLUMNで動的シート参照</a></li><li><a href="#toc16" tabindex="0">XLOOKUPではCOLUMN関数が不要になるケース</a><ol><li><a href="#toc17" tabindex="0">XLOOKUPの戻り範囲指定との違い</a></li><li><a href="#toc18" tabindex="0">それでもCOLUMN関数が必要な場面</a></li></ol></li><li><a href="#toc19" tabindex="0">COLUMN関数 よくある質問・エラー対処</a><ol><li><a href="#toc20" tabindex="0">#VALUE!・#REF!が出たときの確認ポイント</a></li><li><a href="#toc21" tabindex="0">COLUMNS関数との違いは？</a></li></ol></li><li><a href="#toc22" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">COLUMN関数とは？基本の使い方をおさらい</span></h2>



<p class="wp-block-paragraph">COLUMN関数（読み：カラム）は、セルの列番号を数値で返す関数です。A列なら1、B列なら2、C列なら3を返します。名前のとおり「列（Column）」の番号を取得する、シンプルな関数です。</p>



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



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



<p class="wp-block-paragraph">引数は1つだけで、しかも省略もできます。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/省略可</th><th>説明</th></tr></thead><tbody><tr><td>参照</td><td>省略可</td><td>列番号を知りたいセルまたは範囲</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">それでは、具体的な使い方を見ていきましょう。</p>



<h3 class="wp-block-heading"><span id="toc2">引数なし：今いる列の番号をそのまま返す</span></h3>



<p class="wp-block-paragraph">引数を省略すると、数式を入力したセル自身の列番号を返します。</p>



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



<p class="wp-block-paragraph">たとえば、C3セルにこの数式を入れると「3」が返ります。D列なら「4」、E列なら「5」です。「いま自分がどの列にいるか」を取得したいときに便利ですよ。</p>



<h3 class="wp-block-heading"><span id="toc3">引数あり：任意のセルの列番号を取得する</span></h3>



<p class="wp-block-paragraph">引数にセル参照を指定すると、そのセルの列番号を返します。</p>



<pre class="wp-block-code"><code>=COLUMN(A1)    → 1
=COLUMN(D10)   → 4
=COLUMN(G5)    → 7</code></pre>



<p class="wp-block-paragraph">範囲を指定した場合は、左端の列番号を返します。たとえば <code>=COLUMN(B1:E1)</code> は「2」です。Microsoft 365環境では、スピルで <code>{2,3,4,5}</code> と複数の列番号を返します。</p>



<h3 class="wp-block-heading"><span id="toc4">ROW関数との対称パターン表（行と列の整理）</span></h3>



<p class="wp-block-paragraph">COLUMN関数には、行番号を返す<a href="https://mashukabu.com/excel-function-howto-use-row/">ROW関数</a>という対になる関数があります。この2つは完全に対称です。</p>



<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>数式セルの行番号</td><td>数式セルの列番号</td></tr><tr><td>連番の方向</td><td>下にコピーで増える</td><td>右にコピーで増える</td></tr><tr><td>典型パターン</td><td><code>=ROW()-ROW($A$1)</code></td><td><code>=COLUMN()-COLUMN($A$1)</code></td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ROW関数で縦方向の連番を振った経験があれば、COLUMN関数はその横方向バージョンだと考えてください。</p>



<h2 class="wp-block-heading"><span id="toc5">VLOOKUP × COLUMN関数｜列番号を自動化する方法</span></h2>



<p class="wp-block-paragraph">COLUMN関数が最も活躍するのは、<a href="https://mashukabu.com/excel-function-howto-use-vlookup/">VLOOKUP関数</a>との組み合わせです。VLOOKUPの第3引数「列番号」を手入力していませんか？</p>



<h3 class="wp-block-heading"><span id="toc6">手入力の列番号が壊れる場面（列追加・削除のあるある）</span></h3>



<p class="wp-block-paragraph">VLOOKUPの列番号を手入力で「2」「3」「4」と書いていると、こんな問題が起きます。</p>



<ul class="wp-block-list"><li>検索範囲の途中に列を追加すると、番号がズレる</li><li>列を削除したときも、全数式を修正する必要がある</li><li>コピーして横に展開するとき、手動で番号を変える手間がかかる</li></ul>



<p class="wp-block-paragraph">数式が数個ならまだ対処できます。でも数十個あると、修正漏れが確実に発生しますよね。</p>



<h3 class="wp-block-heading"><span id="toc7">COLUMN()-Nでズレを計算する思考ステップ</span></h3>



<p class="wp-block-paragraph">COLUMN関数を使えば、列番号が自動で変わります。考え方は次の3ステップです。</p>



<ol class="wp-block-list"><li><code>COLUMN()</code> で数式セルの列番号を取得する</li><li><code>COLUMN(検索範囲の左端)</code> で基準の列番号を取得する</li><li>差分に+1して、VLOOKUPの列番号にする</li></ol>



<p class="wp-block-paragraph">汎用的な計算式はこうなります。</p>



<pre class="wp-block-code"><code>COLUMN() - COLUMN(検索範囲の左端) + 1</code></pre>



<p class="wp-block-paragraph">たとえば、数式がC列、検索範囲がB列始まりの場合を考えます。<code>COLUMN()</code> は3、<code>COLUMN($B$1)</code> は2です。3 &#8211; 2 + 1 = <strong>2</strong>で、検索範囲の2列目を返します。D列にコピーすれば自動で3列目になりますよ。</p>



<h3 class="wp-block-heading"><span id="toc8">実際の数式：複数列を一括で取得するサンプル</span></h3>



<p class="wp-block-paragraph">実際のVLOOKUP数式に組み込むと、こうなります。</p>



<pre class="wp-block-code"><code>=VLOOKUP($A2, $B:$F, COLUMN()-COLUMN($B$1)+1, 0)</code></pre>



<p class="wp-block-paragraph">この数式をC列からF列まで横にコピーするだけで、各列の値を取得できます。列を追加・削除しても数式の修正は不要です。</p>



<p class="wp-block-paragraph">もし検索範囲がA列始まりで、数式がB列から始まるシンプルなケースなら、もっと短く書けます。</p>



<pre class="wp-block-code"><code>=VLOOKUP($A2, $A:$F, COLUMN(), 0)</code></pre>



<p class="wp-block-paragraph">B列の <code>COLUMN()</code> は2なので、検索範囲の2列目を返します。引く数が不要になり、スッキリした数式になります。実務では検索範囲の開始位置に合わせて使い分けてみてください。</p>



<h2 class="wp-block-heading"><span id="toc9">横方向に連番を自動生成する</span></h2>



<p class="wp-block-paragraph">COLUMN関数は、横方向に1, 2, 3&#8230;と連番を振りたいときにも使えます。</p>



<h3 class="wp-block-heading"><span id="toc10">基本パターン：COLUMN()-Nで1・2・3…と振る</span></h3>



<p class="wp-block-paragraph">B列から横方向に連番を振る場合、次の数式を使います。</p>



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



<p class="wp-block-paragraph">B列に入力すると1、C列なら2、D列なら3を返します。ROW関数で縦方向に連番を振るのと同じ発想ですね。</p>



<p class="wp-block-paragraph">A列から始める場合は、もっとシンプルです。</p>



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



<p class="wp-block-paragraph">A列=1、B列=2、C列=3と、そのまま連番になります。</p>



<h3 class="wp-block-heading"><span id="toc11">M365スピル対応：SEQUENCE関数との比較</span></h3>



<p class="wp-block-paragraph">Microsoft 365をお使いなら、SEQUENCE関数でも横方向の連番を生成できます。</p>



<figure class="wp-block-table"><table><thead><tr><th>目的</th><th>COLUMN()（※M365）</th><th>SEQUENCE()</th></tr></thead><tbody><tr><td>1から5の連番</td><td><code>=COLUMN(A:E)</code> → {1,2,3,4,5}</td><td><code>=SEQUENCE(1,5)</code></td></tr><tr><td>3から始まる連番</td><td>直接指定できない</td><td><code>=SEQUENCE(1,5,3)</code></td></tr><tr><td>実際の列番号を取得</td><td><code>=COLUMN(C:F)</code> → {3,4,5,6}</td><td>計算が必要</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">※ COLUMN()のスピル展開はMicrosoft 365（またはExcel 2021以降）のみ対応です。</p>



<p class="wp-block-paragraph">連番を振ることが目的ならSEQUENCE関数の方がシンプルです。一方、実際のセル位置（列番号）が必要な場面ではCOLUMN関数が適しています。目的に応じて使い分けてみてください。</p>



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



<p class="wp-block-paragraph">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>の組み合わせでも、COLUMN関数は活躍します。</p>



<h3 class="wp-block-heading"><span id="toc13">VLOOKUPから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">VLOOKUPとの違いは、検索列と戻り列を別々に指定する点です。検索列より左の値も取得できるのが大きなメリットですね。</p>



<p class="wp-block-paragraph">詳しい比較は「<a href="https://mashukabu.com/excel-vlookup-xlookup-index-match-comparison/">VLOOKUP・XLOOKUP・INDEX MATCHの比較</a>」もあわせてご覧ください。</p>



<h3 class="wp-block-heading"><span id="toc14">COLUMN関数で列参照をまとめて横展開する</span></h3>



<p class="wp-block-paragraph">INDEX + MATCHを横方向にコピーしたいとき、戻り範囲をCOLUMN関数で動的に指定できます。</p>



<pre class="wp-block-code"><code>=INDEX($B$1:$F$100, MATCH($A2,$B$1:$B$100,0), COLUMN()-COLUMN($B$1)+1)</code></pre>



<p class="wp-block-paragraph">この数式をC列以降にコピーすると、COLUMN関数の部分が自動で2, 3, 4&#8230;と増えます。VLOOKUPのときと同じ考え方なので、一度覚えれば応用はかんたんですよ。</p>



<h2 class="wp-block-heading"><span id="toc15">INDIRECT + COLUMNで動的シート参照</span></h2>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-indirect/">INDIRECT関数</a>と組み合わせると、列番号から動的にセル参照を生成できます。</p>



<p class="wp-block-paragraph">たとえば、COLUMN関数の戻り値をADDRESS関数でセル参照文字列に変換し、INDIRECTで実際の参照に変えるパターンです。</p>



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



<p class="wp-block-paragraph">ちょっとむずかしく見えますが、やっていることはシンプルです。COLUMN関数で列番号を取得し、ADDRESS関数でセル参照文字列（例: &#8220;B3&#8243;）に変換し、INDIRECTで実際の参照にしているだけです。C3セルに入力した場合、「1列左のセル＝B3」の値を返します。</p>



<p class="wp-block-paragraph">複数シートの同じ位置から値を集める場面では、Sheet名を変数にしたINDIRECTと組み合わせる使い方も有効です。列番号からアルファベットを取得する方法は「<a href="https://mashukabu.com/excel-function-howto-get-column-alphabet/">列番号からアルファベットを取得する方法</a>」も参考にしてみてください。</p>



<h2 class="wp-block-heading"><span id="toc16">XLOOKUPではCOLUMN関数が不要になるケース</span></h2>



<p class="wp-block-paragraph">Microsoft 365で使える<a href="https://mashukabu.com/excel-function-howto-use-xlookup/">XLOOKUP関数</a>では、COLUMN関数の出番が減ります。</p>



<h3 class="wp-block-heading"><span id="toc17">XLOOKUPの戻り範囲指定との違い</span></h3>



<p class="wp-block-paragraph">VLOOKUPとXLOOKUPでは、戻り値の指定方法が根本的に異なります。</p>



<pre class="wp-block-code"><code>// VLOOKUP：列番号で指定（ズレのリスクあり）
=VLOOKUP($A2, $B:$F, COLUMN()-COLUMN($B$1)+1, 0)

// XLOOKUP：戻り範囲を直接指定（列番号不要）
=XLOOKUP($A2, $B:$B, C:C)</code></pre>



<p class="wp-block-paragraph">XLOOKUPは戻り値を「列番号」ではなく「戻り範囲」で直接指定します。列を追加・削除しても参照がずれないため、COLUMN関数で列番号を計算する必要がありません。</p>



<h3 class="wp-block-heading"><span id="toc18">それでもCOLUMN関数が必要な場面</span></h3>



<p class="wp-block-paragraph">XLOOKUPを使っていても、COLUMN関数の出番がなくなるわけではありません。</p>



<ul class="wp-block-list"><li>横方向の連番を振りたいとき</li><li>INDEX関数の列引数を動的に変えたいとき</li><li>条件付き書式で列位置に応じた判定をしたいとき</li><li>マクロやVBAに列番号を渡したいとき</li></ul>



<p class="wp-block-paragraph">検索系の関数ではXLOOKUPに任せつつ、列番号の取得が必要な場面ではCOLUMN関数を使う。この使い分けがポイントですよ。</p>



<h2 class="wp-block-heading"><span id="toc19">COLUMN関数 よくある質問・エラー対処</span></h2>



<h3 class="wp-block-heading"><span id="toc20">#VALUE!・#REF!が出たときの確認ポイント</span></h3>



<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>#VALUE!</td><td>引数にテキスト文字列を指定した</td><td>セル参照に修正する</td></tr><tr><td>#REF!</td><td>参照先の列が削除された</td><td>数式を再入力する</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><code>=COLUMN("A1")</code> のようにダブルクォーテーションで囲むと、文字列として扱われ #VALUE! エラーになります。正しくは <code>=COLUMN(A1)</code> です。引用符なしのセル参照を使ってください。</p>



<p class="wp-block-paragraph">また、非連続範囲（例：<code>=COLUMN((A1,C1))</code>）は指定できません。連続した範囲で指定するようにしましょう。</p>



<h3 class="wp-block-heading"><span id="toc21">COLUMNS関数との違いは？</span></h3>



<p class="wp-block-paragraph">名前が似ている<a href="https://mashukabu.com/excel-function-howto-use-columns/">COLUMNS関数</a>は、まったく別の関数です。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>機能</th><th>例</th></tr></thead><tbody><tr><td>COLUMN</td><td>指定セルの列番号を返す</td><td><code>=COLUMN(C1)</code> → 3</td></tr><tr><td>COLUMNS</td><td>範囲の列数を返す</td><td><code>=COLUMNS(A1:C1)</code> → 3</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">COLUMN関数は「位置」を返し、COLUMNS関数は「個数」を返します。末尾にSが付くかどうかで意味が変わるので、混同しないように気をつけてくださいね。</p>



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



<p class="wp-block-paragraph">COLUMN関数は、セルの列番号を返すシンプルな関数です。単体ではあまり目立ちませんが、他の関数と組み合わせることで真価を発揮します。</p>



<p class="wp-block-paragraph">この記事で紹介した活用パターンをおさらいします。</p>



<ul class="wp-block-list"><li>VLOOKUPの列番号を自動化して、列の追加・削除に強くする</li><li>横方向に連番を振る</li><li>INDEX + MATCHの列指定を動的にする</li><li>XLOOKUPでは不要になるが、連番や列番号取得では引き続き活躍</li></ul>



<p class="wp-block-paragraph">まずはVLOOKUPの列番号をCOLUMN関数に置き換えるところから試してみてください。数式のメンテナンスがぐっと楽になりますよ。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-column/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのIFERROR関数の使い方｜エラー処理の基本と実務活用</title>
		<link>https://mashukabu.com/excel-function-howto-use-iferror/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-iferror/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Mon, 28 Mar 2022 14:32:07 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[IFERROR関数]]></category>
		<category><![CDATA[IFNA]]></category>
		<category><![CDATA[INDEX MATCH]]></category>
		<category><![CDATA[VLOOKUP]]></category>
		<category><![CDATA[XLOOKUP]]></category>
		<category><![CDATA[エラー処理]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=1476</guid>

					<description><![CDATA[ExcelのIFERROR関数の使い方を基本構文から実務パターンまで解説。VLOOKUP・XLOOKUP・INDEX MATCHとの組み合わせ方、IFNA・ISERRORとの違いと使い分け、エラーを隠しすぎない安全な設計のコツも実例付きで紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">VLOOKUPで検索したら「#N/A」、割り算したら「#DIV/0!」&#8230;&#8230;。Excelを使っていると、こうしたエラー表示に悩まされますよね。せっかく作った資料にエラーが並んでいると見栄えも悪く、そのセルを参照する他の数式まで連鎖的にエラーになってしまいます。</p>



<p class="wp-block-paragraph">そんなときに頼りになるのがIFERROR関数です。この記事では、IFERROR関数の基本的な使い方からVLOOKUP・XLOOKUPとの組み合わせ、IFNA関数やISERROR関数との使い分けまで、実例付きで解説していきます。</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">IFERROR関数とは？</a><ol><li><a href="#toc2" tabindex="0">読み方・意味</a></li><li><a href="#toc3" tabindex="0">何ができるか</a></li></ol></li><li><a href="#toc4" tabindex="0">IFERROR関数の書き方（構文と引数）</a><ol><li><a href="#toc5" tabindex="0">基本構文</a></li><li><a href="#toc6" tabindex="0">引数の説明</a></li><li><a href="#toc7" tabindex="0">IFERROR関数が検出できるエラー一覧</a></li></ol></li><li><a href="#toc8" tabindex="0">IFERROR関数の使い方と実務活用パターン</a><ol><li><a href="#toc9" tabindex="0">基本: エラーを空白・メッセージ・数値に置き換える</a></li><li><a href="#toc10" tabindex="0">パターン1: VLOOKUP+IFERRORで未登録データを処理する</a></li><li><a href="#toc11" tabindex="0">パターン2: XLOOKUP+IFERRORの使い分け</a></li><li><a href="#toc12" tabindex="0">パターン3: 割り算の#DIV/0!エラーを回避する</a></li><li><a href="#toc13" tabindex="0">パターン4: INDEX+MATCH+IFERRORで柔軟な検索をする</a></li><li><a href="#toc14" tabindex="0">パターン5: IFERRORのネストで複数テーブルを横断検索する</a></li><li><a href="#toc15" tabindex="0">パターン6: IF関数と組み合わせてエラーと空白を同時に処理する</a></li></ol></li><li><a href="#toc16" tabindex="0">エラー処理関数の比較（IFERROR・IFNA・ISERROR）</a><ol><li><a href="#toc17" tabindex="0">一覧比較表</a></li><li><a href="#toc18" tabindex="0">IFERRORとIFNAの違い</a></li><li><a href="#toc19" tabindex="0">IFERRORとIF+ISERRORの比較</a></li><li><a href="#toc20" tabindex="0">使い分けの判断基準</a></li></ol></li><li><a href="#toc21" tabindex="0">IFERROR関数のよくあるエラーと対処法</a><ol><li><a href="#toc22" tabindex="0">エラーを隠しすぎる問題への対策</a></li></ol></li><li><a href="#toc23" tabindex="0">まとめ</a><ol><li><a href="#toc24" 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関数は、数式がエラーになったときに代わりの値を返してくれるExcelの関数です。エラー処理をたった1つの関数で完結できるので、実務で非常によく使われます。</p>



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



<p class="wp-block-paragraph">IFERROR（いふえらー）は「IF（もし）」+「ERROR（エラー）」を組み合わせた名前です。「もしエラーだったら、こっちの値を表示してね」という処理を1つの関数で実現します。</p>



<h3 class="wp-block-heading"><span id="toc3">何ができるか</span></h3>



<p class="wp-block-paragraph">IFERROR関数を使うと、次のようなことができます。</p>



<ul class="wp-block-list"><li>エラーの代わりに空白（&#8221;&#8221;）を表示して、セルをきれいに見せる</li><li>「該当なし」「データなし」などの任意メッセージを表示する</li><li>エラー時に別の計算式を実行する（代替処理）</li><li>他の数式への連鎖エラーを防止する</li></ul>



<p class="wp-block-paragraph">Excel 2007で導入された関数です。Microsoft 365やExcel 2024/2021でも使えます。Googleスプレッドシートでも同じ書き方で利用できますよ。</p>



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



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



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



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



<p class="wp-block-paragraph">引数はたったの2つだけ。覚えやすいですよね。</p>



<h3 class="wp-block-heading"><span id="toc6">引数の説明</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>エラーかどうかをチェックしたい数式やセル参照を指定します</td></tr><tr><td>エラーの場合の値</td><td>必須</td><td>エラーだった場合に表示する値を指定します。文字列・数値・数式のいずれもOKです</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>第2引数に何も指定しない場合</strong></p><p>第2引数を省略すると、エラー時に「0」が返されます。意図しない結果になることがあるので、空白にしたい場合は <code>""</code> を明示的に指定しましょう。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc7">IFERROR関数が検出できるエラー一覧</span></h3>



<p class="wp-block-paragraph">IFERROR関数はExcelの全7種類のエラーをまとめてキャッチします。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー値</th><th>発生する主な原因</th></tr></thead><tbody><tr><td>#N/A</td><td><a href="https://mashukabu.com/excel-function-howto-use-vlookup/">VLOOKUP関数</a>等で検索値が見つからない</td></tr><tr><td>#VALUE!</td><td>引数のデータ型が正しくない</td></tr><tr><td>#REF!</td><td>参照先のセルが削除された</td></tr><tr><td>#DIV/0!</td><td>0で割り算をした</td></tr><tr><td>#NUM!</td><td>数値が大きすぎる・小さすぎる</td></tr><tr><td>#NAME?</td><td>関数名のスペルミス</td></tr><tr><td>#NULL!</td><td>セル範囲の指定が正しくない</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">すべてのエラーをまとめて処理してくれるので、「とりあえずエラーを非表示にしたい」場面では便利です。ただし、本来気づくべきエラーまで隠れるリスクがある点は後述します。各エラーの詳しい原因は<a href="https://mashukabu.com/excel-error-value-list/">Excelエラーの種類と原因</a>も参考にしてみてください。</p>



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



<p class="wp-block-paragraph">ここからは基本の使い方から実務パターンまで、まとめて見ていきましょう。</p>



<h3 class="wp-block-heading"><span id="toc9">基本: エラーを空白・メッセージ・数値に置き換える</span></h3>



<p class="wp-block-paragraph">第2引数に指定する値を変えるだけで、3つの基本パターンを使い分けられます。</p>



<pre class="wp-block-code"><code>=IFERROR(A1/B1, &quot;&quot;)        … エラーを空白にする
=IFERROR(A1/B1, &quot;計算不可&quot;) … メッセージを表示する
=IFERROR(A1/B1, 0)         … 数値を返す</code></pre>



<p class="wp-block-paragraph">空白は印刷用の資料やプレゼンで、メッセージは原因を伝えたいときに、数値は<a href="https://mashukabu.com/excel-function-howto-use-sum/">SUM関数</a>や<a href="https://mashukabu.com/excel-function-howto-use-average/">AVERAGE関数</a>での集計でエラーを防ぎたいときに使いましょう。</p>



<h3 class="wp-block-heading"><span id="toc10">パターン1: VLOOKUP+IFERRORで未登録データを処理する</span></h3>



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



<p class="wp-block-paragraph">VLOOKUPは検索値が見つからないと「#N/A」エラーを返します。商品コードで商品マスタを検索するケースを考えてみましょう。</p>



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



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



<p class="wp-block-paragraph">実務では、複数列を同時に検索するケースも多いですよね。商品名と単価を同時に引く場合は、それぞれのセルにIFERROR+VLOOKUPを設定します。</p>



<pre class="wp-block-code"><code>B2（商品名）: =IFERROR(VLOOKUP(A2, 商品マスタ!A:C, 2, FALSE), &quot;未登録&quot;)
C2（単 価）: =IFERROR(VLOOKUP(A2, 商品マスタ!A:C, 3, FALSE), 0)</code></pre>



<p class="wp-block-paragraph">商品名は「未登録」、単価は0を返すことで、集計に影響しない設計にできます。</p>



<h3 class="wp-block-heading"><span id="toc11">パターン2: XLOOKUP+IFERRORの使い分け</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-xlookup/">XLOOKUP関数</a>が使える環境（Excel 2021/2024/Microsoft 365）なら、検索エラーの処理方法が2つあります。</p>



<p class="wp-block-paragraph"><strong>方法A: XLOOKUPの第4引数を使う（IFERROR不要）</strong></p>



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



<p class="wp-block-paragraph">XLOOKUPには「見つからない場合の値」を指定する第4引数があるので、検索エラーの処理にIFERRORは不要です。</p>



<p class="wp-block-paragraph"><strong>方法B: IFERRORで囲む（全エラー対策）</strong></p>



<pre class="wp-block-code"><code>=IFERROR(XLOOKUP(A2, 商品マスタ!A:A, 商品マスタ!C:C), &quot;エラー&quot;)</code></pre>



<p class="wp-block-paragraph">XLOOKUPの第4引数で処理できるのは「検索値が見つからない」エラーだけです。数式自体の参照エラー（#REF!など）も含めて対策したい場合は、IFERRORで囲む方が安全ですよ。</p>



<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>XLOOKUP第4引数</td><td><code>=XLOOKUP(A2, ..., "未登録")</code></td><td>#N/Aのみ</td></tr><tr><td>IFERROR+XLOOKUP</td><td><code>=IFERROR(XLOOKUP(A2, ...), "エラー")</code></td><td>全7種類</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">通常はXLOOKUPの第4引数で十分です。ただし、職場のExcelバージョンが混在している場合はIFERROR+VLOOKUPの方が互換性が高く安全ですね。</p>



<h3 class="wp-block-heading"><span id="toc12">パターン3: 割り算の#DIV/0!エラーを回避する</span></h3>



<p class="wp-block-paragraph">売上分析や在庫管理でよくある「0で割ってしまう」問題です。前年比や構成比を計算するとき、分母が0やブランクだとエラーになりますよね。</p>



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



<p class="wp-block-paragraph">データが未入力の行もきれいに処理できます。月次レポートや予実管理表で重宝するパターンです。</p>



<p class="wp-block-paragraph">達成率の計算にも使えます。</p>



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



<p class="wp-block-paragraph">目標値が未設定の行でもエラーにならず、集計に影響しません。</p>



<h3 class="wp-block-heading"><span id="toc13">パターン4: INDEX+MATCH+IFERRORで柔軟な検索をする</span></h3>



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



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



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



<p class="wp-block-paragraph">Excel 2021以降なら、MATCH関数の代わりに<a href="https://mashukabu.com/excel-function-howto-use-xmatch/">XMATCH関数</a>を使えばよりシンプルに書けます。</p>



<pre class="wp-block-code"><code>MATCH版 : =IFERROR(INDEX(C:C, MATCH(A2, B:B, 0)), &quot;該当なし&quot;)
XMATCH版: =IFERROR(INDEX(C:C, XMATCH(A2, B:B)), &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">XMATCHはデフォルトで完全一致検索なので、第3引数の <code>0</code> を省略できますね。</p>



<h3 class="wp-block-heading"><span id="toc14">パターン5: IFERRORのネストで複数テーブルを横断検索する</span></h3>



<p class="wp-block-paragraph">IFERROR関数の第2引数に別の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>



<h3 class="wp-block-heading"><span id="toc15">パターン6: IF関数と組み合わせてエラーと空白を同時に処理する</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-if/">IF関数</a>とIFERROR関数を組み合わせると、「空白セルはスキップ、エラーは代替値」という処理を1つの数式で実現できます。</p>



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



<p class="wp-block-paragraph">商品コード（A2）が空白ならセルも空白にし、入力されていればVLOOKUPを実行します。入力済みなのに見つからなければ「未登録」を表示。受注一覧や在庫管理表で、未入力行とデータ不一致を区別したいときに便利です。</p>



<h2 class="wp-block-heading"><span id="toc16">エラー処理関数の比較（IFERROR・IFNA・ISERROR）</span></h2>



<p class="wp-block-paragraph">IFERROR関数と似た機能を持つ関数を比較してみましょう。実務でどれを使うか迷ったときの判断基準にしてください。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>対象エラー</th><th>戻り値</th><th>導入バージョン</th><th>主な用途</th></tr></thead><tbody><tr><td>IFERROR</td><td>全7種類</td><td>エラー時: 指定値 / 正常時: 元の値</td><td>Excel 2007</td><td>全エラーをまとめて処理</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-ifna/">IFNA</a></td><td>#N/Aのみ</td><td>エラー時: 指定値 / 正常時: 元の値</td><td>Excel 2013</td><td>検索エラーだけを安全に処理</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-iserror/">ISERROR</a></td><td>全7種類</td><td>TRUE / FALSE</td><td>Excel 2003以前</td><td>エラーの有無を判定（処理にはIF関数が必要）</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-iserr/">ISERR</a></td><td>#N/A以外の6種類</td><td>TRUE / FALSE</td><td>Excel 2003以前</td><td>#N/Aを除外したエラー判定</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-isna/">ISNA</a></td><td>#N/Aのみ</td><td>TRUE / FALSE</td><td>Excel 2003以前</td><td>#N/Aだけを判定</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-error-type/">ERROR.TYPE</a></td><td>全7種類</td><td>エラー番号（1-7）</td><td>Excel 2003以前</td><td>エラーの種類を番号で特定</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc18">IFERRORとIFNAの違い</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-ifna/">IFNA関数</a>は#N/Aエラーだけを対象にする関数です。構文はIFERRORとまったく同じです。</p>



<pre class="wp-block-code"><code>IFERROR版: =IFERROR(VLOOKUP(A2, B:C, 2, FALSE), &quot;未登録&quot;)
IFNA版  : =IFNA(VLOOKUP(A2, B:C, 2, FALSE), &quot;未登録&quot;)</code></pre>



<p class="wp-block-paragraph">この2つは、VLOOKUPで値が見つからないときの動作は同じです。違いは「#N/A以外のエラーが起きたとき」に現れます。</p>



<figure class="wp-block-table"><table><thead><tr><th>状況</th><th>IFERROR</th><th>IFNA</th></tr></thead><tbody><tr><td>検索値が見つからない（#N/A）</td><td>「未登録」を表示</td><td>「未登録」を表示</td></tr><tr><td>参照範囲が壊れた（#REF!）</td><td>「未登録」を表示（バグが隠れる）</td><td>#REF!をそのまま表示（バグに気づける）</td></tr><tr><td>数式の型エラー（#VALUE!）</td><td>「未登録」を表示（バグが隠れる）</td><td>#VALUE!をそのまま表示（バグに気づける）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">VLOOKUPやXLOOKUPの「見つからない」だけを処理するなら、IFNA関数の方が安全です。#REF!や#VALUE!といった数式バグはそのまま表示されるので、問題にすぐ気づけますよ。</p>



<h3 class="wp-block-heading"><span id="toc19">IFERRORとIF+ISERRORの比較</span></h3>



<p class="wp-block-paragraph">Excel 2007より前のバージョンでは、エラー処理に<a href="https://mashukabu.com/excel-function-howto-use-if/">IF関数</a>と<a href="https://mashukabu.com/excel-function-howto-use-iserror/">ISERROR関数</a>を組み合わせていました。</p>



<pre class="wp-block-code"><code>IFERROR版    : =IFERROR(VLOOKUP(A2, B:C, 2, FALSE), &quot;未登録&quot;)
IF+ISERROR版 : =IF(ISERROR(VLOOKUP(A2, B:C, 2, FALSE)), &quot;未登録&quot;, VLOOKUP(A2, B:C, 2, FALSE))</code></pre>



<p class="wp-block-paragraph">IF+ISERRORだとVLOOKUPを2回書く必要があり、読みづらくなります。計算負荷も2倍になるので、Excel 2007以降ならIFERROR関数を使いましょう。</p>



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



<p class="wp-block-paragraph">迷ったときは、次の基準で選んでみてください。</p>



<ul class="wp-block-list"><li><strong>すべてのエラーをまとめて非表示にしたい</strong> → IFERROR関数</li><li><strong>#N/Aだけを処理し、他のエラーは残したい</strong> → <a href="https://mashukabu.com/excel-function-howto-use-ifna/">IFNA関数</a></li><li><strong>エラーの種類を判定して処理を分けたい</strong> → <a href="https://mashukabu.com/excel-function-howto-use-if/">IF関数</a> + <a href="https://mashukabu.com/excel-function-howto-use-error-type/">ERROR.TYPE関数</a></li><li><strong>エラーの有無だけをTRUE/FALSEで判定したい</strong> → <a href="https://mashukabu.com/excel-function-howto-use-iserror/">ISERROR関数</a></li></ul>



<p class="wp-block-paragraph">これらの関数の使い分けは<a href="https://mashukabu.com/excel-if-ifs-iferror-ifna-comparison/">IF・IFS・IFERROR・IFNAの使い分け</a>でも整理しています。</p>



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



<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>IFERROR関数が全エラーをキャッチするため</td><td><a href="https://mashukabu.com/excel-function-howto-use-ifna/">IFNA関数</a>で#N/Aだけを対象にする</td></tr><tr><td>エラー時に意図しない「0」が表示される</td><td>第2引数を省略している</td><td>空白にしたい場合は <code>""</code> を明示的に指定する</td></tr><tr><td>#NAME?エラーが出る</td><td>第2引数の文字列にダブルクォーテーションがない</td><td>文字列は必ず <code>"文字列"</code> で囲む</td></tr><tr><td>数式の結果が正しくない</td><td>IFERRORの中の数式自体に誤りがある</td><td>IFERRORを外して元の数式だけで動作確認する</td></tr><tr><td>空白セルなのに0と表示される</td><td>エラーではなく空白セルの参照が原因</td><td>IFERROR関数はエラーのみ対象。空白の処理は<a href="https://mashukabu.com/excel-function-howto-use-if/">IF関数</a>で分岐する</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>デバッグのコツ</strong></p><p>IFERRORを使っている数式のトラブルシューティングでは、まずIFERRORを外して中の数式だけをテストしましょう。エラーの原因が見えるようになりますよ。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc22">エラーを隠しすぎる問題への対策</span></h3>



<p class="wp-block-paragraph">IFERROR関数の最大の注意点は、すべてのエラーを非表示にしてしまうことです。本来気づくべき参照ミスや数式の誤りまで隠れてしまうリスクがあります。</p>



<p class="wp-block-paragraph">たとえば、VLOOKUPの範囲指定を間違えて#REF!が出ていても、IFERRORが「未登録」と表示してしまいます。数式のバグに気づけないまま、間違ったデータで資料を作ってしまう可能性があるんです。</p>



<p class="wp-block-paragraph">対策としては、以下の使い分けがおすすめです。</p>



<ul class="wp-block-list"><li><strong>作成中のシート</strong>: IFERRORを外しておき、エラーを確認しながら作業する</li><li><strong>完成版の資料</strong>: IFERRORで見た目を整える</li><li><strong>検索系のエラーだけ処理したい</strong>: <a href="https://mashukabu.com/excel-function-howto-use-ifna/">IFNA関数</a>を使う</li></ul>



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



<p class="wp-block-paragraph">IFERROR関数は、Excelのエラー処理をシンプルにしてくれる便利な関数です。</p>



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



<ul class="wp-block-list"><li>IFERROR関数の構文は <code>=IFERROR(値, エラーの場合の値)</code> の2つの引数だけ</li><li>エラーを空白にしたり、メッセージや数値を表示したりできる</li><li>VLOOKUP+IFERRORの組み合わせが実務で最も頻出</li><li>XLOOKUPなら第4引数でIFERRORが不要になるケースも</li><li>INDEX+MATCH+IFERRORで検索列の左側も取得できる</li><li>IF関数と組み合わせれば空白セルとエラーを同時に処理できる</li><li>すべてのエラーをキャッチするため、エラーの隠しすぎに注意</li><li>#N/Aだけを処理したい場合は<a href="https://mashukabu.com/excel-function-howto-use-ifna/">IFNA関数</a>の方が安全</li></ul>



<p class="wp-block-paragraph">まずはVLOOKUP+IFERRORの組み合わせから試してみてください。エラーだらけだった集計表が、一気にスッキリしますよ。</p>



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



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-vlookup/">VLOOKUP関数の使い方</a> &#8212; 検索の基本</li><li><a href="https://mashukabu.com/excel-function-howto-use-xlookup/">XLOOKUP関数の使い方</a> &#8212; 次世代の検索関数</li><li><a href="https://mashukabu.com/excel-function-howto-use-index/">INDEX関数の使い方</a> &#8212; 柔軟なセル参照</li><li><a href="https://mashukabu.com/excel-function-howto-use-match/">MATCH関数の使い方</a> &#8212; 位置を検索する</li><li><a href="https://mashukabu.com/excel-function-howto-use-if/">IF関数の使い方</a> &#8212; 条件分岐の基本</li><li><a href="https://mashukabu.com/excel-function-howto-use-ifna/">IFNA関数の使い方</a> &#8212; #N/A専用のエラー処理</li><li><a href="https://mashukabu.com/excel-function-howto-use-iserror/">ISERROR関数の使い方</a> &#8212; エラー判定</li><li><a href="https://mashukabu.com/excel-function-howto-use-error-type/">ERROR.TYPE関数の使い方</a> &#8212; エラー種類の特定</li><li><a href="https://mashukabu.com/excel-error-value-list/">Excelエラーの種類と原因</a> &#8212; エラー値の一覧</li><li><a href="https://mashukabu.com/excel-if-ifs-iferror-ifna-comparison/">IF・IFS・IFERROR・IFNAの使い分け</a> &#8212; 条件分岐関数の比較</li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-iferror/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 class="wp-block-paragraph">「VLOOKUP関数を使いたいけど、引数の意味がわからない」「#N/Aエラーが出て困っている」という声はよく聞きます。VLOOKUPはExcel関数の中でもトップクラスの検索数を誇る人気関数です。ただ、引数が4つあるぶん最初はとっつきにくいですよね。</p>



<p class="wp-block-paragraph">この記事では、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-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関数とは？</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 class="wp-block-paragraph">VLOOKUPは「ブイルックアップ」と読みます。Vertical（垂直）+ Lookup（検索）が名前の由来です。</p>



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



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



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



<p class="wp-block-paragraph">VLOOKUPが活躍するのは、次のような場面です。</p>



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



<p class="wp-block-paragraph">「検索したい値が表の一番左にある」なら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 class="wp-block-paragraph">VLOOKUPの構文はこちらです。</p>



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



<p class="wp-block-paragraph">引数は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 class="wp-block-paragraph">ポイントは「範囲の左端列」で検索が行われることです。検索したい値が左端にない場合は、範囲の取り方を見直してください。</p>



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



<p class="wp-block-paragraph">ここがVLOOKUPで一番つまずきやすい部分です。</p>



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



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



<p class="wp-block-paragraph"><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 class="wp-block-paragraph">商品コードから商品名を取得する例で見てみましょう。</p>



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



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



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



<p class="wp-block-paragraph">各引数の意味は次のとおりです。</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 class="wp-block-paragraph">実務では検索先が別シートにあることがほとんどです。シート名のあとに「!」をつけて範囲を指定します。</p>



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



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



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



<p class="wp-block-paragraph">別ブックのデータを参照する場合は、ブック名を角括弧で囲みます。</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 class="wp-block-paragraph">VLOOKUPを下方向にコピーすると、範囲がズレることがあります。範囲は絶対参照で固定しましょう。</p>



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



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



<p class="wp-block-paragraph">検索値の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 class="wp-block-paragraph">VLOOKUPは検索値が見つからないと#N/Aエラーを返します。資料の見栄えが悪いですし、後続の計算にも影響します。</p>



<p class="wp-block-paragraph"><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 class="wp-block-paragraph">実務では「該当なし」や空文字「&#8221;&#8221;」を指定するケースが多いです。</p>



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



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



<p class="wp-block-paragraph">たとえば、ランク表が次のようになっているとします。</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 class="wp-block-paragraph">この表をF2:G5に置いたとします。B2の売上金額に対してランクを返すにはこう書きます。</p>



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



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



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



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



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



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



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



<p class="wp-block-paragraph">セル参照を使う場合は「&#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 class="wp-block-paragraph">VLOOKUPは検索値をひとつしか指定できません。「部署」と「役職」の2条件で検索したい場合は、補助列を作りましょう。</p>



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



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



<p class="wp-block-paragraph">VLOOKUPの検索値も同じように連結します。</p>



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



<p class="wp-block-paragraph">補助列を増やしたくない場合は、<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 class="wp-block-paragraph">「検索値が見つからない」という意味のエラーです。主な原因は次の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 class="wp-block-paragraph">列番号が範囲の列数を超えているときに出ます。</p>



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



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



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



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



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



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



<p class="wp-block-paragraph">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 class="wp-block-paragraph">判断基準はシンプルです。</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 class="wp-block-paragraph">VLOOKUPは「古い関数」と言われることもありますが、多くの場面で今も問題なく使えます。無理に乗り換える必要はありません。</p>



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



<p class="wp-block-paragraph">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 class="wp-block-paragraph">まずは基本の完全一致検索をマスターしましょう。そこから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 class="wp-block-paragraph">関数でエラーが発生した際に表示されるエラーの種類と対処方法は、以下の記事でまとめています。</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>
