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

<channel>
	<title>検索関数 &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/lookup-function/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Thu, 04 Jun 2026 14:45:53 +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>検索関数 &#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>スプレッドシートのVLOOKUP完全ガイド｜基本から応用まで使い方を解説</title>
		<link>https://mashukabu.com/sheets-vlookup-guide/</link>
					<comments>https://mashukabu.com/sheets-vlookup-guide/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Mon, 13 Apr 2026 07:22:30 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[#N/Aエラー]]></category>
		<category><![CDATA[IFERROR]]></category>
		<category><![CDATA[VLOOKUP]]></category>
		<category><![CDATA[スプレッドシート]]></category>
		<category><![CDATA[完全ガイド]]></category>
		<category><![CDATA[検索関数]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=5933</guid>

					<description><![CDATA[GoogleスプレッドシートのVLOOKUP関数を基本構文から応用まで完全解説。4つの引数の意味、#N/Aエラーの対処法、IFERRORとの組み合わせ、複数条件での活用、INDEX/MATCHへの移行判断まで実務例で学べます。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「社員番号を入れたら、部署名が自動で表示される」。こうした仕組みをGoogleスプレッドシートで作るなら、VLOOKUP関数が定番の選択肢です。Excelで使ったことがある方なら、ほぼ同じ感覚で使えます。</p>



<p class="wp-block-paragraph">この記事ではスプレッドシートのVLOOKUPを基本から応用まで解説します。4つの引数の意味、#N/Aエラーの原因と対処法まで、実務例を交えて説明します。INDEX/MATCHやXLOOKUPへの移行判断フローも掲載しているので、ぜひ参考にしてください。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">スプレッドシートのVLOOKUP関数とは？</a><ol><li><a href="#toc2" tabindex="0">VLOOKUPの読み方・意味</a></li><li><a href="#toc3" tabindex="0">VLOOKUPでできること</a></li></ol></li><li><a href="#toc4" tabindex="0">VLOOKUPの書き方（構文と4つの引数）</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></ol></li><li><a href="#toc11" tabindex="0">VLOOKUPの応用テクニック</a><ol><li><a href="#toc12" tabindex="0">IFERRORで#N/Aエラーに対処する</a></li><li><a href="#toc13" tabindex="0">ワイルドカードで部分一致検索する</a></li><li><a href="#toc14" tabindex="0">ARRAYFORMULAで複数セルに一括適用する</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">#N/Aエラー（値が見つからない）</a></li><li><a href="#toc18" tabindex="0">#REF!エラー（列番号が範囲外）</a></li><li><a href="#toc19" tabindex="0">#VALUE!エラー（引数の型が不正）</a></li></ol></li><li><a href="#toc20" tabindex="0">ExcelのVLOOKUPとの違い</a><ol><li><a href="#toc21" tabindex="0">動作仕様の違い</a></li><li><a href="#toc22" tabindex="0">移行時の注意点</a></li></ol></li><li><a href="#toc23" tabindex="0">VLOOKUP以外の選択肢｜INDEX/MATCH・XLOOKUPとの使い分け</a><ol><li><a href="#toc24" tabindex="0">VLOOKUPの限界</a></li><li><a href="#toc25" tabindex="0">INDEX/MATCHの強み</a></li><li><a href="#toc26" tabindex="0">XLOOKUPという新しい選択肢</a></li><li><a href="#toc27" tabindex="0">どれを使えばいい？選び方の目安</a></li></ol></li><li><a href="#toc28" tabindex="0">まとめ</a><ol><li><a href="#toc29" 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">VLOOKUPの読み方・意味</span></h3>



<p class="wp-block-paragraph">VLOOKUPは「Vertical Lookup（垂直検索）」の略です。読み方は「ブイルックアップ」です。</p>



<p class="wp-block-paragraph">VLOOKUP関数は、表の先頭列（左端の列）を縦方向に検索します。一致した行から、指定した列の値を返す仕組みです。</p>



<p class="wp-block-paragraph">たとえば「社員番号E001に対応する部署名を取得する」。こうした「表引き」作業を、数式1つで片付けられます。</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>近似一致（TRUE）で料金ランクや評価判定をする</li><li>ワイルドカードを使って部分一致検索をする</li></ul>



<p class="wp-block-paragraph">横方向（水平方向）に検索したい場合は、<a href="https://mashukabu.com/spreadsheet-hlookup-function/">HLOOKUP関数</a>が対応します。</p>



<p class="wp-block-paragraph">スプレッドシートの基本操作から確認したい方は、Googleスプレッドシートの使い方入門もご覧ください。</p>



<h2 class="wp-block-heading"><span id="toc4">VLOOKUPの書き方（構文と4つの引数）</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>A:D</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>Googleスプレッドシートの公式ヘルプでは「検索キー・番号・並べ替え済み」と表記されます。Excelの「検索値・列番号・検索の型」と呼び名は違いますが、動作は同じです。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc7">完全一致（FALSE）と近似一致（TRUE）の違い</span></h3>



<p class="wp-block-paragraph">第4引数「検索の型」の使い分けを説明します。</p>



<p class="wp-block-paragraph"><strong>完全一致（FALSE）</strong></p>



<p class="wp-block-paragraph">検索値と完全に一致するデータだけを探します。一致するデータがなければ#N/Aエラーが返ります。コードや名前の検索など、実務の多くの場面でFALSEを使います。</p>



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



<p class="wp-block-paragraph"><strong>近似一致（TRUE）</strong></p>



<p class="wp-block-paragraph">検索値以下の最大値を返します。料金表や成績ランクの判定などに使います。先頭列が昇順（小→大）でソートされている必要があります。</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>第4引数を省略するとデフォルトはTRUE（近似一致）です。「なぜか違う値が返る」の原因の多くはこの省略です。迷ったらFALSEを明示してください。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc8">VLOOKUPの基本的な使い方【実務例で解説】</span></h2>



<p class="wp-block-paragraph">この記事では「社員名簿」を例に使います。シートには社員番号（A列）・氏名（B列）・部署（C列）・役職（D列）が入力されています。</p>



<h3 class="wp-block-heading"><span id="toc9">社員番号から部署名を取得する</span></h3>



<p class="wp-block-paragraph">F2セルに社員番号を入力し、G2セルに数式を書きます。</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>



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



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



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



<ul class="wp-block-list"><li>F2: 検索値（入力した社員番号）</li><li>A:D: 範囲（社員名簿全体）</li><li>3: 範囲の左から3列目（C列の部署）を返す</li><li>FALSE: 完全一致で検索</li></ul>



<p class="wp-block-paragraph">F2に「E001」と入力すると、A列からE001を探します。一致した行のC列（部署）の値がG2に表示されます。</p>



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



<p class="wp-block-paragraph">役職（D列）を取得したい場合は、列番号を4に変えます。</p>



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



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



<p class="wp-block-paragraph">実務では社員名簿が別シートにあるケースが多いです。別シートの範囲は <code>シート名!範囲</code> の形式で指定します。</p>



<pre class="wp-block-code"><code>=VLOOKUP(F2, 社員名簿!A:D, 3, FALSE)</code></pre>



<p class="wp-block-paragraph">シート名に空白や特殊文字がある場合は、シングルクォーテーションで囲みます。</p>



<pre class="wp-block-code"><code>=VLOOKUP(F2, '社員 名簿'!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>



<p class="wp-block-paragraph"><strong>数式を下方向にコピーする場合</strong></p>



<p class="wp-block-paragraph">数式を複数行にコピーするときは、範囲を絶対参照（$）で固定します。F4キーを押すと<code>$</code>マークが付きます。</p>



<pre class="wp-block-code"><code>=VLOOKUP(F2, $A$1:$D$100, 3, FALSE)</code></pre>



<p class="wp-block-paragraph">検索値F2は相対参照のまま、範囲だけ固定するのがポイントです。</p>



<h2 class="wp-block-heading"><span id="toc11">VLOOKUPの応用テクニック</span></h2>



<h3 class="wp-block-heading"><span id="toc12">IFERRORで#N/Aエラーに対処する</span></h3>



<p class="wp-block-paragraph">VLOOKUPは検索値が見つからないと#N/Aエラーを返します。IFERROR関数（エラー時に代わりの値を返す関数）で囲むと、エラーを別の値に置き換えられます。</p>



<pre class="wp-block-code"><code>=IFERROR(VLOOKUP(F2, 社員名簿!A:D, 3, FALSE), &quot;該当なし&quot;)</code></pre>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/04/04_formula_vlookup-iferror.png" alt="04 formula vlookup iferror" /></figure>



<p class="wp-block-paragraph">第2引数に「該当なし」を指定すると、エラー時にその文字列が表示されます。空欄にしたい場合は <code>""</code> を指定します。</p>



<pre class="wp-block-code"><code>=IFERROR(VLOOKUP(F2, 社員名簿!A:D, 3, FALSE), &quot;&quot;)</code></pre>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/04/05_result_vlookup-iferror.png" alt="05 result vlookup iferror" /></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>IFERROR関数はすべてのエラーを捕捉します。#N/Aだけに対処したい場合は、<a href="https://mashukabu.com/spreadsheet-ifna-function/">IFNA関数</a>が適しています。IFNAは#N/A以外のエラー（#REF!など）はそのまま表示します。</p></blockquote>



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



<p class="wp-block-paragraph">検索の型をFALSEにした状態でワイルドカードが使えます。ワイルドカードとは、任意の文字に一致する特殊記号です。</p>



<ul class="wp-block-list"><li><code>*</code>（アスタリスク）: 任意の文字列に一致</li><li><code>?</code>（クエスチョンマーク）: 任意の1文字に一致</li></ul>



<p class="wp-block-paragraph">「営業」を含む部署の社員を検索する例です。</p>



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



<p class="wp-block-paragraph">セル参照と組み合わせる場合は <code>&</code> で連結します。</p>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>ワイルドカード検索は、最初に一致した1件だけを返します。複数件すべてを取得したい場合はFILTER関数が向いています。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc14">ARRAYFORMULAで複数セルに一括適用する</span></h3>



<p class="wp-block-paragraph">ARRAYFORMULA関数（配列数式を一括処理する関数）とVLOOKUPを組み合わせます。1つの数式を入力するだけで、複数行に結果を出力できます。</p>



<pre class="wp-block-code"><code>=ARRAYFORMULA(VLOOKUP(F2:F10, 社員名簿!A:D, 3, FALSE))</code></pre>



<p class="wp-block-paragraph">F2:F10に入力した社員番号に対して、G列に部署名を一括表示します。</p>



<p class="wp-block-paragraph">IFERRORと組み合わせてエラーも一括処理できます。</p>



<pre class="wp-block-code"><code>=ARRAYFORMULA(IFERROR(VLOOKUP(F2:F10, 社員名簿!A:D, 3, FALSE), &quot;&quot;))</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>Googleスプレッドシートでは検索値に範囲を指定するとスピル（自動展開）する場合があります。ただし明示的にARRAYFORMULAで囲むほうが安全です。</p></blockquote>



<p class="wp-block-paragraph">ARRAYFORMULAの詳しい使い方は、<a href="https://mashukabu.com/spreadsheet-arrayformula-function/">ARRAYFORMULA関数の使い方</a>をご覧ください。</p>



<h3 class="wp-block-heading"><span id="toc15">複数条件で検索する（ヘルパー列を使う）</span></h3>



<p class="wp-block-paragraph">VLOOKUPは1つの検索列しか指定できません。「部署と役職の両方が一致する社員を取得する」など、複数の条件を組み合わせたい場合は、ヘルパー列（作業列）で条件を結合する方法が定番です。</p>



<p class="wp-block-paragraph"><strong>手順1</strong>: 社員名簿にヘルパー列を追加し、部署（C列）と役職（D列）を <code>&</code> で結合します。</p>



<pre class="wp-block-code"><code>=C2&amp;&quot;-&quot;&amp;D2</code></pre>



<p class="wp-block-paragraph">C2が「営業部」、D2が「部長」であれば「営業部-部長」という値になります。</p>



<p class="wp-block-paragraph"><strong>手順2</strong>: VLOOKUPの検索値でも同じ形式で条件を結合して渡します。</p>



<pre class="wp-block-code"><code>=VLOOKUP(G2&amp;&quot;-&quot;&amp;H2, ヘルパー列を先頭にした検索テーブル, 2, FALSE)</code></pre>



<p class="wp-block-paragraph">G2に「営業部」、H2に「部長」を入力すると、一致する社員を検索できます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>ヘルパー列方式はシートの構成が複雑になります。新規で組む場合は、複数条件を直接指定できるXLOOKUPやQUERY関数の使用も検討してください。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc16">VLOOKUPでよくあるエラーと対処法</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>LEN関数で文字数を確認</td><td>TRIM関数（余分なスペースを除去する関数）で前処理</td></tr><tr><td>データ型が違う（数値と文字列）</td><td>セルの表示形式を確認</td><td>VALUE関数（文字列を数値に変換する関数）で型を統一</td></tr><tr><td>近似一致で昇順でない</td><td>先頭列の並び順を確認</td><td>データを昇順ソートするかFALSEを指定</td></tr><tr><td>範囲の先頭列に検索値がない</td><td>VLOOKUPの第2引数を確認</td><td>範囲を正しく設定し直す</td></tr></tbody></table></figure>



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



<h3 class="wp-block-heading"><span id="toc18">#REF!エラー（列番号が範囲外）</span></h3>



<p class="wp-block-paragraph">列番号が範囲の列数を超えると発生します。たとえば3列の範囲（A:C）に対して列番号4を指定した場合です。</p>



<pre class="wp-block-code"><code>=VLOOKUP(F2, A:C, 4, FALSE)  → #REF!エラー</code></pre>



<p class="wp-block-paragraph">列の削除後にも発生しやすいため、列番号と範囲の列数を確認してください。</p>



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



<p class="wp-block-paragraph">列番号に0以下の数値を指定した場合に発生します。</p>



<pre class="wp-block-code"><code>=VLOOKUP(F2, A:D, 0, FALSE)  → #VALUE!エラー</code></pre>



<p class="wp-block-paragraph">列番号は1以上の整数を指定してください。</p>



<h2 class="wp-block-heading"><span id="toc20">ExcelのVLOOKUPとの違い</span></h2>



<p class="wp-block-paragraph">ExcelとGoogleスプレッドシートのVLOOKUPは、基本構文が完全互換です。Excelファイル（.xlsx形式）をスプレッドシートで開いても、VLOOKUPはそのまま動作します。</p>



<p class="wp-block-paragraph">ただし、細かい点でいくつか違いがあります。</p>



<h3 class="wp-block-heading"><span id="toc21">動作仕様の違い</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>Googleスプレッドシート</th><th>Excel</th></tr></thead><tbody><tr><td>配列検索（スピル）</td><td>検索値に範囲を指定すると自動でスピル</td><td>Excel 365以降で対応</td></tr><tr><td>XLOOKUP関数</td><td>2022年から利用可能</td><td>Microsoft 365・Excel 2021以降</td></tr><tr><td>正規表現マッチ</td><td>REGEXMATCH関数との組み合わせが可能</td><td>非対応（VBAが必要）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">スピルとは、数式1つで複数セルに結果を自動展開する機能です。</p>



<h3 class="wp-block-heading"><span id="toc22">移行時の注意点</span></h3>



<p class="wp-block-paragraph">ExcelからスプレッドシートにVLOOKUPを移行する際の注意点です。</p>



<ul class="wp-block-list"><li>引数の名称は違うが、動作・構文は同一</li><li><code>Ctrl+Shift+Enter</code> で入力した配列数式は不要（スプレッドシートでは自動スピル）</li><li>絶対参照（$）はそのまま引き継がれる</li></ul>



<p class="wp-block-paragraph">詳しい比較はExcelとGoogleスプレッドシートの違い・使い分けガイドをご覧ください。</p>



<h2 class="wp-block-heading"><span id="toc23">VLOOKUP以外の選択肢｜INDEX/MATCH・XLOOKUPとの使い分け</span></h2>



<h3 class="wp-block-heading"><span id="toc24">VLOOKUPの限界</span></h3>



<p class="wp-block-paragraph">VLOOKUPにはいくつかの制約があります。</p>



<ol class="wp-block-list"><li><strong>左方向への検索ができない</strong>: 検索値は必ず範囲の先頭列（左端）に必要</li><li><strong>列番号がハードコード</strong>: 列を挿入・削除すると番号がズレる</li><li><strong>先頭の1件しか返さない</strong>: 同じ検索値が複数行あっても最初の行だけ</li></ol>



<h3 class="wp-block-heading"><span id="toc25">INDEX/MATCHの強み</span></h3>



<p class="wp-block-paragraph">INDEX/MATCHはINDEX関数とMATCH関数を組み合わせた手法です。INDEX関数（指定した行・列の値を返す関数）とMATCH関数（検索値の行番号を返す関数）を組み合わせます。</p>



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



<p class="wp-block-paragraph">社員番号からC列（部署）を取得する例です。</p>



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



<p class="wp-block-paragraph">VLOOKUPとの主な違いをまとめます。</p>



<ul class="wp-block-list"><li>検索列が左端でなくてもよい（右→左の検索が可能）</li><li>列参照を使うため、列の挿入・削除でズレない</li><li>10万行超の大量データでは処理が速い傾向がある</li></ul>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-index-function/">INDEX関数</a>と<a href="https://mashukabu.com/spreadsheet-match-function/">MATCH関数</a>の詳しい使い方は各記事をご覧ください。</p>



<h3 class="wp-block-heading"><span id="toc26">XLOOKUPという新しい選択肢</span></h3>



<p class="wp-block-paragraph">XLOOKUPはGoogleスプレッドシートに2022年に追加された関数です。VLOOKUPとINDEX/MATCHの両方の制約を解消しています。</p>



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



<p class="wp-block-paragraph">社員番号から部署を取得する例です。</p>



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



<p class="wp-block-paragraph">VLOOKUPと比べた優位点をまとめます。</p>



<ul class="wp-block-list"><li>検索列は先頭（左端）でなくてもよい</li><li>第4引数でエラー時の値を指定できる（IFERROR不要）</li><li>右→左、下→上の逆方向検索が可能</li><li>複数列をまとめて返せる</li></ul>



<h3 class="wp-block-heading"><span id="toc27">どれを使えばいい？選び方の目安</span></h3>



<p class="wp-block-paragraph">用途に応じて関数を選びましょう。</p>



<ol class="wp-block-list"><li><strong>シンプルな右方向検索</strong> → VLOOKUPで十分</li><li><strong>左方向の検索が必要</strong> → XLOOKUPを使う</li><li><strong>列の追加・削除が多い</strong> → XLOOKUPまたはINDEX/MATCHを使う</li><li><strong>大量データ（10万行超）</strong> → INDEX/MATCHが高速になる傾向</li><li><strong>既存のVLOOKUP数式</strong> → 正常に動いているなら書き換えは不要</li></ol>



<p class="wp-block-paragraph">新規で数式を組む場合は、XLOOKUPを選ぶのが現在のベストプラクティスです。</p>



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



<p class="wp-block-paragraph">スプレッドシートのVLOOKUP関数の要点をまとめます。</p>



<ul class="wp-block-list"><li>構文は <code>=VLOOKUP(検索値, 範囲, 列番号, [検索の型])</code> の4引数</li><li>第4引数はFALSEを明示する（省略するとTRUEがデフォルト）</li><li>数式を下方向にコピーするときは範囲を絶対参照で固定する</li><li>エラー対処はIFERROR関数で囲むのが定番</li><li>#N/Aエラーの主な原因はスペース混入・データ型の不一致</li><li>複数条件の検索はヘルパー列で条件を結合して対応する</li><li>左方向の検索が必要な場合はXLOOKUPを検討する</li></ul>



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



<p class="wp-block-paragraph">基本構文だけ確認したい方は、<a href="https://mashukabu.com/spreadsheet-vlookup-function/">スプレッドシートのVLOOKUP関数の使い方</a>もご覧ください。</p>



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/spreadsheet-vlookup-function/">スプレッドシートのVLOOKUP関数の使い方｜別シート参照・エラー対処まで解説</a></li><li>Googleスプレッドシートの使い方入門（Excelユーザー向け）</li><li>ExcelとGoogleスプレッドシートの違い・使い分けガイド</li><li><a href="https://mashukabu.com/spreadsheet-index-function/">スプレッドシートのINDEX関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-match-function/">スプレッドシートのMATCH関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-hlookup-function/">スプレッドシートのHLOOKUP関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-arrayformula-function/">スプレッドシートのARRAYFORMULA関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-ifna-function/">スプレッドシートのIFNA関数の使い方</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/sheets-vlookup-guide/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-3" checked><label class="toc-title" for="toc-checkbox-3">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">Excelの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>スプレッドシートのLOOKUP関数の使い方｜VLOOKUPとの違いも解説</title>
		<link>https://mashukabu.com/spreadsheet-lookup-function/</link>
					<comments>https://mashukabu.com/spreadsheet-lookup-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 21 Mar 2026 11:32:50 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[LOOKUP]]></category>
		<category><![CDATA[VLOOKUP]]></category>
		<category><![CDATA[スプレッドシート]]></category>
		<category><![CDATA[使い分け]]></category>
		<category><![CDATA[検索関数]]></category>
		<category><![CDATA[近似一致]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4815</guid>

					<description><![CDATA[スプレッドシートのLOOKUP関数の使い方を基本から解説。ベクトル形式・配列形式の構文、近似一致を活かしたランク判定・料金区分の実務例、VLOOKUPとの使い分け・FAQまで紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「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>は便利ですが、引数が多くて構文もやや長めです。もっとシンプルに書きたいときがありますよね。</p>



<p class="wp-block-paragraph">そんなときに使えるのがLOOKUP関数です。1行または1列の範囲をサッと検索して、対応する値を返してくれます。この記事ではスプレッドシートのLOOKUP関数の基本から、VLOOKUPとの違い・使い分け・よくある質問までわかりやすく紹介します。</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">スプレッドシートのLOOKUP関数とは？</a></li><li><a href="#toc2" tabindex="0">LOOKUP関数の書き方（構文と引数）</a><ol><li><a href="#toc3" tabindex="0">ベクトル形式（基本）</a></li><li><a href="#toc4" tabindex="0">配列形式</a></li></ol></li><li><a href="#toc5" tabindex="0">LOOKUP関数の基本的な使い方</a></li><li><a href="#toc6" tabindex="0">LOOKUP関数の実践的な使い方・応用例</a><ol><li><a href="#toc7" tabindex="0">成績ランク判定（近似一致の活用）</a></li><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><li><a href="#toc11" tabindex="0">最後に一致した値を取得する</a></li><li><a href="#toc12" tabindex="0">担当者ごとの最新ステータスを取り出す</a></li></ol></li><li><a href="#toc13" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc14" tabindex="0">一番多いミス: 検索範囲が昇順でない</a></li></ol></li><li><a href="#toc15" tabindex="0">LOOKUP関数とVLOOKUP関数の違いを徹底比較</a><ol><li><a href="#toc16" tabindex="0">違い1: 検索方向の柔軟性</a></li><li><a href="#toc17" tabindex="0">違い2: 完全一致と近似一致</a></li><li><a href="#toc18" tabindex="0">違い3: 結果の指定方法</a></li><li><a href="#toc19" tabindex="0">違い4: 並べ替えの必要性</a></li><li><a href="#toc20" tabindex="0">検索関数の比較表（HLOOKUP・XLOOKUPも含む）</a></li><li><a href="#toc21" tabindex="0">どの関数を選べばいい？ 判断フロー</a></li></ol></li><li><a href="#toc22" tabindex="0">LOOKUP関数のよくある質問（FAQ）</a><ol><li><a href="#toc23" tabindex="0">Q1. LOOKUP関数とVLOOKUP関数のどちらを覚えればいいですか？</a></li><li><a href="#toc24" tabindex="0">Q2. LOOKUP関数は廃止予定の関数ですか？</a></li><li><a href="#toc25" tabindex="0">Q3. LOOKUP関数で完全一致の検索はできますか？</a></li><li><a href="#toc26" tabindex="0">Q4. LOOKUP関数で大文字・小文字を区別できますか？</a></li><li><a href="#toc27" tabindex="0">Q5. 検索範囲が並べ替えできない場合はどうすればいいですか？</a></li><li><a href="#toc28" tabindex="0">Q6. ExcelのLOOKUP関数と同じように使えますか？</a></li></ol></li><li><a href="#toc29" tabindex="0">まとめ</a><ol><li><a href="#toc30" tabindex="0">関連記事</a></li></ol></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">LOOKUP関数（読み方：ルックアップ関数）は、1行または1列の範囲を検索して対応する値を返す関数です。関数名は英語の「Lookup（検索・照合する）」がそのまま由来になっています。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-vlookup-function/">VLOOKUP関数</a>が「縦方向（Vertical）の表検索」、<a href="https://mashukabu.com/spreadsheet-hlookup-function/">HLOOKUP関数</a>が「横方向（Horizontal）の表検索」に特化しています。一方、LOOKUP関数は<strong>1行/1列のシンプルな範囲</strong>を検索するのが特徴です。</p>



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



<ul class="wp-block-list"><li>1列のデータから対応する値を取得する</li><li>1行のデータから対応する値を取得する</li><li>近似一致でランク判定や料金区分を行う</li><li>検索方向（縦・横）を意識せずに書ける</li></ul>



<p class="wp-block-paragraph">検索範囲が小さい場面では、VLOOKUPより短い数式で済むのがメリットですよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>LOOKUP関数はGoogleスプレッドシートの全バージョンで使えます。Excelとの互換性も完全なので、ファイルのやり取りでも安心です。</p></blockquote>



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



<p class="wp-block-paragraph">LOOKUP関数には2つの書き方があります。実務でよく使うのは「ベクトル形式」です。</p>



<h3 class="wp-block-heading"><span id="toc3">ベクトル形式（基本）</span></h3>



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



<p class="wp-block-paragraph">検索範囲から検索キーを探し、結果範囲の同じ位置にある値を返します。VLOOKUPの「列番号」の代わりに、結果範囲を直接指定するイメージです。</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:B100</td></tr><tr><td>結果範囲</td><td>必須</td><td>結果を返す1行または1列の範囲</td><td>C2:C100</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc4">配列形式</span></h3>



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



<p class="wp-block-paragraph">配列（複数行×複数列の範囲）の最初の行または列を検索し、<strong>最後の行または列</strong>の対応する値を返します。</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>複数行×複数列の範囲</td><td>B2:D10</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>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>WARNING</strong></p><p>LOOKUP関数は<strong>近似一致</strong>で検索します。検索範囲は<strong>昇順に並べ替え済み</strong>であることが前提です。完全一致で検索したい場合は<a href="https://mashukabu.com/spreadsheet-vlookup-function/">VLOOKUP関数</a>（第4引数にFALSE）を使ってください。</p></blockquote>



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



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



<p class="wp-block-paragraph">A列に商品コード（昇順）、B列に商品名が並んでいるとします。D2に入力したコードから商品名を取得するにはこう書きます。</p>



<pre class="wp-block-code"><code>=LOOKUP(D2, A2:A10, B2:B10)</code></pre>



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



<ul class="wp-block-list"><li>D2: 検索キー（入力した商品コード）</li><li>A2:A10: 検索範囲（商品コードの列）</li><li>B2:B10: 結果範囲（商品名の列）</li></ul>



<p class="wp-block-paragraph">D2に「P-003」と入力すると、A列から「P-003」以下の最大値を探します。そして同じ行のB列の値を返してくれます。</p>



<p class="wp-block-paragraph">配列形式で書くと、さらに短くなります。</p>



<pre class="wp-block-code"><code>=LOOKUP(D2, A2:B10)</code></pre>



<p class="wp-block-paragraph">A2:B10の最初の列（A列）を検索し、最後の列（B列）の値を返します。結果は同じですが、引数が1つ減ってスッキリしますよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>検索範囲が昇順でないと、正しい結果が返りません。データを事前に並べ替えておくか、<a href="https://mashukabu.com/spreadsheet-vlookup-function/">VLOOKUP関数</a>（完全一致）を使いましょう。</p></blockquote>



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



<h3 class="wp-block-heading"><span id="toc7">成績ランク判定（近似一致の活用）</span></h3>



<p class="wp-block-paragraph">LOOKUP関数の近似一致は、スコアに応じたランク判定で力を発揮します。</p>



<p class="wp-block-paragraph">F列に境界値（昇順）、G列にランクを用意します。</p>



<figure class="wp-block-table"><table><thead><tr><th>F列（境界値）</th><th>G列（ランク）</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><tr><td>90</td><td>S</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">点数が入ったB2セルからランクを判定するにはこう書きます。</p>



<pre class="wp-block-code"><code>=LOOKUP(B2, F2:F6, G2:G6)</code></pre>



<p class="wp-block-paragraph">B2が「75」なら、F列から75以下の最大値「70」を見つけます。そして対応するG列の「B」を返してくれます。</p>



<p class="wp-block-paragraph">VLOOKUPで同じことをするには <code>=VLOOKUP(B2, F2:G6, 2, TRUE)</code> と書きます。LOOKUP関数のほうが引数が少なくて直感的ですね。</p>



<h3 class="wp-block-heading"><span id="toc8">送料区分の自動判定</span></h3>



<p class="wp-block-paragraph">ECサイトの管理シートなどで、注文金額に応じた送料を自動判定する場面にも使えます。</p>



<figure class="wp-block-table"><table><thead><tr><th>H列（金額の境界値）</th><th>I列（送料）</th></tr></thead><tbody><tr><td>0</td><td>800</td></tr><tr><td>3000</td><td>500</td></tr><tr><td>5000</td><td>300</td></tr><tr><td>10000</td><td>0</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">注文金額がC2セルに入っているとき、送料を求めるにはこう書きます。</p>



<pre class="wp-block-code"><code>=LOOKUP(C2, H2:H5, I2:I5)</code></pre>



<p class="wp-block-paragraph">C2が「4500」なら、H列から4500以下の最大値「3000」を見つけます。対応するI列の「500」（送料500円）が返ります。<a href="https://mashukabu.com/spreadsheet-if-function/">IF関数</a>をネストして書くより、はるかにシンプルですよ。</p>



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



<p class="wp-block-paragraph">LOOKUP関数は検索キーが検索範囲の最小値より小さいと#N/Aエラーを返します。<a href="https://mashukabu.com/spreadsheet-iferror-function/">IFERROR関数</a>で囲めば、エラー時に代わりの値を表示できます。</p>



<pre class="wp-block-code"><code>=IFERROR(LOOKUP(D2, A2:A10, B2:B10), &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">実務では「該当なし」や空文字「&#8221;&#8221;」を指定するケースが多いです。検索系の数式には、IFERRORをセットで使う習慣をつけておくと安心ですよ。</p>



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



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



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



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



<pre class="wp-block-code"><code>=LOOKUP(A2, '商品 マスタ'!B:B, '商品 マスタ'!C:C)</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>別シートを参照する検索は、<a href="https://mashukabu.com/spreadsheet-vlookup-function/">VLOOKUP関数</a>でも同じ書き方です。マスタテーブルを別シートに置いて管理するのは、スプレッドシートの定番パターンですよ。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc11">最後に一致した値を取得する</span></h3>



<p class="wp-block-paragraph">LOOKUP関数には「検索キー以下の最大値を返す」という特性があります。これを利用すると、重複データの中から<strong>最後に一致した値</strong>を取得できます。</p>



<p class="wp-block-paragraph">たとえばA列に担当者名、B列に対応日付が並んでいるとします。担当者「田中」の最新の対応日付を取得するにはこう書きます。</p>



<pre class="wp-block-code"><code>=LOOKUP(2, 1/(A2:A100=&quot;田中&quot;), B2:B100)</code></pre>



<p class="wp-block-paragraph">ちょっとむずかしく見えますが、やっていることはシンプルです。</p>



<ul class="wp-block-list"><li><code>A2:A100="田中"</code> → 条件に一致するセルはTRUE（1）、それ以外はFALSE（0）</li><li><code>1/TRUE</code> → 1、<code>1/FALSE</code> → エラー（ゼロ除算）</li><li>LOOKUP関数はエラーをスキップして、最後の「1」の位置に対応するB列の値を返す</li></ul>



<p class="wp-block-paragraph">この使い方はVLOOKUPでは実現できません。LOOKUP関数ならではのテクニックです。特定の条件に合う最新データを取り出したいときに重宝しますよ。</p>



<h3 class="wp-block-heading"><span id="toc12">担当者ごとの最新ステータスを取り出す</span></h3>



<p class="wp-block-paragraph">「最後に一致した値を取得する」テクニックは、進捗管理シートでも便利です。A列に担当者、B列にステータス（着手前/対応中/完了）が時系列で並んでいるとします。</p>



<p class="wp-block-paragraph">担当者「鈴木」の最新ステータスを取り出すにはこう書きます。</p>



<pre class="wp-block-code"><code>=LOOKUP(2, 1/(A2:A100=&quot;鈴木&quot;), B2:B100)</code></pre>



<p class="wp-block-paragraph">新しい行が下に追加されていく前提の表なら、ピボットテーブルを作らなくても1行の数式で最新値が拾えます。日々のデータ更新が多い管理シートで重宝するテクニックですよ。</p>



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



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



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>#N/A</td><td>検索キーが検索範囲の最小値より小さい</td><td>データを確認するか、IFERRORで囲む</td></tr><tr><td>#N/A</td><td>検索範囲が昇順でない</td><td>検索範囲を昇順に並べ替える</td></tr><tr><td>#REF!</td><td>検索範囲と結果範囲のサイズが異なる</td><td>両方の範囲を同じ行数（または列数）に揃える</td></tr><tr><td>#VALUE!</td><td>検索キーが空白</td><td>検索キーのセルにデータを入力する</td></tr><tr><td>間違った値が返る</td><td>検索範囲が昇順でない</td><td>昇順に並べ替えるか、VLOOKUPの完全一致を使う</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc14">一番多いミス: 検索範囲が昇順でない</span></h3>



<p class="wp-block-paragraph">LOOKUP関数でもっとも多いトラブルが「検索範囲が昇順になっていない」ケースです。近似一致専用の関数なので、昇順でないと<strong>間違った値を返すことがあります</strong>。</p>



<p class="wp-block-paragraph">厄介なのは、エラーにならず誤った結果が返る場合があること。見た目上は正常に動いているように見えるため、気づきにくい点に注意してください。</p>



<p class="wp-block-paragraph">対処法は2つあります。</p>



<ol class="wp-block-list"><li><strong>検索範囲を昇順に並べ替える</strong>: データ入力時にルール化しておくのがおすすめです</li><li><strong>完全一致の関数に切り替える</strong>: 以下の関数を使いましょう</li></ol>



<ul class="wp-block-list"><li><strong>1列の表を縦方向に検索</strong> → <a href="https://mashukabu.com/spreadsheet-vlookup-function/">VLOOKUP関数</a>（第4引数にFALSE）</li><li><strong>1行の表を横方向に検索</strong> → <a href="https://mashukabu.com/spreadsheet-hlookup-function/">HLOOKUP関数</a>（第4引数にFALSE）</li><li><strong>方向を問わず柔軟に検索</strong> → <a href="https://mashukabu.com/spreadsheet-xlookup/">XLOOKUP関数</a></li></ul>



<h2 class="wp-block-heading"><span id="toc15">LOOKUP関数とVLOOKUP関数の違いを徹底比較</span></h2>



<p class="wp-block-paragraph">「LOOKUPとVLOOKUPはどう違うの？」という疑問は、検索関数を学び始めた方からよく聞かれます。両者の違いを4つの観点で整理します。</p>



<h3 class="wp-block-heading"><span id="toc16">違い1: 検索方向の柔軟性</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-vlookup-function/">VLOOKUP関数</a>は<strong>縦方向（列方向）の検索専用</strong>です。一方、LOOKUP関数は1行でも1列でも検索できます。</p>



<p class="wp-block-paragraph">配列形式を使えば、検索範囲の形に応じて方向が自動で切り替わるのが特徴です。横方向のデータを検索したい場合、VLOOKUPでは対応できません。LOOKUP関数なら範囲指定を変えるだけでOKです。</p>



<h3 class="wp-block-heading"><span id="toc17">違い2: 完全一致と近似一致</span></h3>



<p class="wp-block-paragraph">VLOOKUPは第4引数で<strong>完全一致（FALSE）</strong>と<strong>近似一致（TRUE）</strong>を選べます。商品コードや社員番号のような「ピッタリ一致するものだけを探したい」場面に向いています。</p>



<p class="wp-block-paragraph">LOOKUP関数は<strong>近似一致のみ</strong>です。検索キーと完全に一致しなくても、検索キー以下の最大値を返します。「○○以上△△未満」の区間判定が得意な反面、完全一致が必要な場面では使えません。</p>



<h3 class="wp-block-heading"><span id="toc18">違い3: 結果の指定方法</span></h3>



<pre class="wp-block-code"><code>=LOOKUP(D2, A2:A10, C2:C10)
=VLOOKUP(D2, A2:C10, 3, FALSE)</code></pre>



<p class="wp-block-paragraph">LOOKUPは結果範囲（C2:C10）を直接指定します。VLOOKUPは検索範囲全体（A2:C10）を指定して、3列目を番号で指定します。</p>



<p class="wp-block-paragraph">列の挿入・削除があったとき、VLOOKUPは列番号がずれるリスクがあります。LOOKUPは結果範囲を直接指定するので、列の増減に強いのがメリットです。</p>



<h3 class="wp-block-heading"><span id="toc19">違い4: 並べ替えの必要性</span></h3>



<p class="wp-block-paragraph">LOOKUPは近似一致専用のため、検索範囲を<strong>昇順に並べ替えておく必要があります</strong>。データの順序がそのまま結果に影響します。</p>



<p class="wp-block-paragraph">VLOOKUPは完全一致（FALSE）を指定すれば、検索範囲が並べ替えられていなくても正しい結果を返します。実務では完全一致が基本なので、この点はVLOOKUPの大きなメリットです。</p>



<h3 class="wp-block-heading"><span id="toc20">検索関数の比較表（HLOOKUP・XLOOKUPも含む）</span></h3>



<p class="wp-block-paragraph">スプレッドシートには検索関数が複数あります。「どれを使えばいいの？」と迷う方も多いですよね。それぞれの特徴を比較表で整理します。</p>



<figure class="wp-block-table"><table><thead><tr><th>特徴</th><th>LOOKUP</th><th><a href="https://mashukabu.com/spreadsheet-vlookup-function/">VLOOKUP</a></th><th><a href="https://mashukabu.com/spreadsheet-hlookup-function/">HLOOKUP</a></th><th><a href="https://mashukabu.com/spreadsheet-xlookup/">XLOOKUP</a></th></tr></thead><tbody><tr><td>検索方向</td><td>1行/1列（自動判定）</td><td>縦方向のみ</td><td>横方向のみ</td><td>縦・横どちらも可</td></tr><tr><td>一致方式</td><td>近似一致のみ</td><td>完全一致/近似一致</td><td>完全一致/近似一致</td><td>完全一致/近似一致</td></tr><tr><td>結果の指定方法</td><td>結果範囲を直接指定</td><td>列番号で指定</td><td>行番号で指定</td><td>戻り範囲を直接指定</td></tr><tr><td>左方向・上方向の検索</td><td>可能（範囲指定次第）</td><td>不可</td><td>不可</td><td>可能</td></tr><tr><td>エラー時の既定値</td><td>IFERROR必要</td><td>IFERROR必要</td><td>IFERROR必要</td><td>引数で指定可</td></tr><tr><td>複数列を一括で返す</td><td>不可</td><td>不可</td><td>不可</td><td>可能</td></tr><tr><td>数式の長さ</td><td>短い</td><td>普通</td><td>普通</td><td>やや長い</td></tr><tr><td>並べ替えの前提</td><td>必要（昇順）</td><td>FALSEなら不要</td><td>FALSEなら不要</td><td>不要</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc21">どの関数を選べばいい？ 判断フロー</span></h3>



<p class="wp-block-paragraph">検索関数を選ぶときは、次の順番で考えるとスムーズです。</p>



<p class="wp-block-paragraph"><strong>ステップ1: 完全一致か近似一致か？</strong></p>



<p class="wp-block-paragraph">まず「探している値とピッタリ一致するものを見つけたいか」を考えます。商品コードや社員番号など、一致するものだけを探したい場合は<strong>完全一致</strong>です。実務の9割はこちらに該当します。</p>



<p class="wp-block-paragraph">完全一致なら → <a href="https://mashukabu.com/spreadsheet-vlookup-function/">VLOOKUP関数</a>（第4引数にFALSE）が最も一般的です。</p>



<p class="wp-block-paragraph"><strong>ステップ2: 近似一致ならLOOKUP関数</strong></p>



<p class="wp-block-paragraph">ランク判定や料金区分など「○○以上△△未満」の区間で判定したい場合は<strong>近似一致</strong>です。LOOKUP関数の出番ですよ。</p>



<p class="wp-block-paragraph"><strong>ステップ3: 特殊な要件があるか？</strong></p>



<ul class="wp-block-list"><li>横方向のデータを検索 → <a href="https://mashukabu.com/spreadsheet-hlookup-function/">HLOOKUP関数</a></li><li>左方向の検索や複数列の取得 → <a href="https://mashukabu.com/spreadsheet-xlookup/">XLOOKUP関数</a></li><li>検索位置を柔軟に指定 → <a href="https://mashukabu.com/spreadsheet-index-function/">INDEX関数</a> + <a href="https://mashukabu.com/spreadsheet-match-function/">MATCH関数</a>の組み合わせ</li></ul>



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



<h3 class="wp-block-heading"><span id="toc23">Q1. LOOKUP関数とVLOOKUP関数のどちらを覚えればいいですか？</span></h3>



<p class="wp-block-paragraph">実務でまず覚えるべきは<a href="https://mashukabu.com/spreadsheet-vlookup-function/">VLOOKUP関数</a>です。完全一致で検索できるので、商品コードや社員番号といったID検索の場面で使えます。</p>



<p class="wp-block-paragraph">LOOKUP関数は「近似一致でランクや区分を判定する」という特定の場面に強い関数です。VLOOKUPに慣れてから、必要に応じて使い分けていけば十分ですよ。</p>



<h3 class="wp-block-heading"><span id="toc24">Q2. LOOKUP関数は廃止予定の関数ですか？</span></h3>



<p class="wp-block-paragraph">廃止予定ではありません。LOOKUP関数はGoogleスプレッドシート・Excel双方で標準サポートされており、引き続き利用できます。</p>



<p class="wp-block-paragraph">ただし、より柔軟な<a href="https://mashukabu.com/spreadsheet-xlookup/">XLOOKUP関数</a>が登場した現在、新規にデータ参照を組むなら XLOOKUP を選ぶ方がメリットが多いケースもあります。既存シートの保守ではLOOKUPをそのまま使い、新規ならXLOOKUPを検討する、という使い分けがおすすめです。</p>



<h3 class="wp-block-heading"><span id="toc25">Q3. LOOKUP関数で完全一致の検索はできますか？</span></h3>



<p class="wp-block-paragraph">LOOKUP関数だけでは完全一致は実現できません。LOOKUPは構造上、近似一致専用の関数です。</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-xlookup/">XLOOKUP関数</a>のいずれかを使ってください。これらは引数で完全一致を指定できます。</p>



<h3 class="wp-block-heading"><span id="toc26">Q4. LOOKUP関数で大文字・小文字を区別できますか？</span></h3>



<p class="wp-block-paragraph">LOOKUP関数は大文字・小文字を区別しません。「APPLE」と「apple」は同じ値として扱われます。</p>



<p class="wp-block-paragraph">大文字・小文字を区別して検索したい場合は、別途EXACT関数などを組み合わせる方法があります。区別が必要な場面はあまり多くありませんが、システムIDなど大文字小文字に意味があるデータでは注意しましょう。</p>



<h3 class="wp-block-heading"><span id="toc27">Q5. 検索範囲が並べ替えできない場合はどうすればいいですか？</span></h3>



<p class="wp-block-paragraph">並べ替えができない（元データを並び替えたくない）場合は、LOOKUP関数の使用は避けましょう。代わりに<a href="https://mashukabu.com/spreadsheet-vlookup-function/">VLOOKUP関数</a>（完全一致FALSE）や<a href="https://mashukabu.com/spreadsheet-xlookup/">XLOOKUP関数</a>を使うのがおすすめです。</p>



<p class="wp-block-paragraph">これらは並べ替え不要で正しく動作します。元の表の並びを保ったまま検索したいときに重宝しますよ。</p>



<h3 class="wp-block-heading"><span id="toc28">Q6. ExcelのLOOKUP関数と同じように使えますか？</span></h3>



<p class="wp-block-paragraph">はい、ExcelとGoogleスプレッドシートのLOOKUP関数は構文・動作ともにほぼ同じです。ExcelファイルとGoogleスプレッドシートでデータをやり取りしても、LOOKUP関数の数式はそのまま動作します。</p>



<p class="wp-block-paragraph">互換性の高さは、検索関数の中でもLOOKUPの強みのひとつです。</p>



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



<p class="wp-block-paragraph">スプレッドシートのLOOKUP関数のポイントを振り返ります。</p>



<ul class="wp-block-list"><li>構文は <code>=LOOKUP(検索キー, 検索範囲, 結果範囲)</code> の3引数が基本</li><li>近似一致専用のため、検索範囲は<strong>昇順に並べ替え済み</strong>が前提</li><li>ランク判定や料金区分など、近似一致が必要な場面で活躍する</li><li>完全一致で検索したい場合は<a href="https://mashukabu.com/spreadsheet-vlookup-function/">VLOOKUP関数</a>や<a href="https://mashukabu.com/spreadsheet-xlookup/">XLOOKUP関数</a>を使う</li><li>「最後に一致した値を取得する」テクニックはLOOKUP関数ならではの活用法</li><li><a href="https://mashukabu.com/spreadsheet-iferror-function/">IFERROR関数</a>とセットで使うとエラー対策も安心</li></ul>



<p class="wp-block-paragraph">まずはランク判定のような近似一致の場面で使ってみてください。VLOOKUPとの使い分けがわかると、検索関数の選択肢がグッと広がりますよ。</p>



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/spreadsheet-vlookup-function/">スプレッドシートのVLOOKUP関数の使い方｜別シート参照・エラー対処まで解説</a></li><li><a href="https://mashukabu.com/spreadsheet-hlookup-function/">スプレッドシートのHLOOKUP関数の使い方｜横方向検索の基本と応用</a></li><li><a href="https://mashukabu.com/spreadsheet-xlookup/">スプレッドシートのXLOOKUP関数の使い方｜VLOOKUPとの違いも解説</a></li><li><a href="https://mashukabu.com/spreadsheet-index-function/">スプレッドシートのINDEX関数の使い方｜行列指定で値取得</a></li><li><a href="https://mashukabu.com/spreadsheet-match-function/">スプレッドシートのMATCH関数の使い方｜相対位置を返す</a></li><li><a href="https://mashukabu.com/spreadsheet-iferror-function/">スプレッドシートのIFERROR関数の使い方｜エラー処理</a></li><li><a href="https://mashukabu.com/spreadsheet-if-function/">スプレッドシートのIF関数の使い方｜条件分岐の基本</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-lookup-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのXMATCH関数の使い方｜MATCHとの違い・逆方向検索まで解説</title>
		<link>https://mashukabu.com/spreadsheet-xmatch-function/</link>
					<comments>https://mashukabu.com/spreadsheet-xmatch-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 21 Mar 2026 11:28:53 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[INDEX+XMATCH]]></category>
		<category><![CDATA[MATCH関数]]></category>
		<category><![CDATA[XMATCH関数]]></category>
		<category><![CDATA[スプレッドシート]]></category>
		<category><![CDATA[検索関数]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4725</guid>

					<description><![CDATA[スプレッドシートのXMATCH関数の使い方を基本から解説。MATCH関数との違いを比較表で整理し、一致モード4種・検索モード4種の使い分け、逆方向検索・ワイルドカード・バイナリサーチの活用法、INDEX+XMATCHの組み合わせまで網羅。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">スプレッドシートで <a href="https://mashukabu.com/spreadsheet-match-function/">MATCH関数</a> を使っていて、「末尾から検索できたらラクなのに」と思ったことはありませんか？日報や作業ログのように下へ追記していく台帳で、同じ担当者名が並んでいると、最新（最後）のエントリだけ拾いたいのに先頭側がヒットしてしまいますよね。</p>



<p class="wp-block-paragraph">そんなときに頼りになるのが <strong>XMATCH関数</strong> です。MATCH関数の上位互換にあたる検索系関数で、<strong>逆方向検索・ワイルドカード専用モード・並べ替え不要の近似一致・バイナリサーチ・正規表現</strong>まで、MATCHにはない機能が一通り揃っています。</p>



<p class="wp-block-paragraph">この記事では、XMATCH関数の構文と引数の基本から、一致モード4種・検索モード4種の早見表、実務シーン別の応用例（最新ロット取得・INDEX+XMATCHで左方向検索・行列クロス検索・IFERRORでエラー回避）、MATCH関数との比較表、よくあるエラーの対処法までまとめて解説します。MATCH関数からの乗り換えを検討している方はもちろん、INDEX+MATCHの式に慣れている方ほど効果を実感しやすい関数ですよ。</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">スプレッドシートのXMATCH関数とは？MATCHの上位互換にあたる位置検索関数</a><ol><li><a href="#toc2" tabindex="0">XMATCH関数で何ができる？</a></li><li><a href="#toc3" tabindex="0">XMATCH関数とMATCH関数の違い（ざっくり）</a></li></ol></li><li><a href="#toc4" tabindex="0">XMATCH関数の構文と引数</a><ol><li><a href="#toc5" tabindex="0">基本構文</a></li><li><a href="#toc6" tabindex="0">引数の説明</a></li><li><a href="#toc7" tabindex="0">一致モード5種の早見表</a></li><li><a href="#toc8" tabindex="0">検索モード4種の早見表</a></li></ol></li><li><a href="#toc9" tabindex="0">XMATCH関数の基本的な使い方</a><ol><li><a href="#toc10" tabindex="0">完全一致で位置を取得する（一致モード 0）</a></li><li><a href="#toc11" tabindex="0">ワイルドカードで部分一致検索する（一致モード 2）</a></li><li><a href="#toc12" tabindex="0">近似一致で最も近い値を取得する（一致モード -1 / 1）</a></li><li><a href="#toc13" tabindex="0">正規表現で柔軟に一致させる（一致モード 3・スプレッドシート独自）</a></li></ol></li><li><a href="#toc14" tabindex="0">XMATCH関数の実践的な使い方・応用例</a><ol><li><a href="#toc15" tabindex="0">逆方向検索で最新データの位置を取得する</a></li><li><a href="#toc16" tabindex="0">INDEX+XMATCHで左方向の列を検索する</a></li><li><a href="#toc17" tabindex="0">INDEX+XMATCHで行列クロス検索する</a></li><li><a href="#toc18" tabindex="0">IFERRORと組み合わせてエラーを防ぐ</a></li><li><a href="#toc19" tabindex="0">バイナリサーチで大量データを高速検索する</a></li><li><a href="#toc20" tabindex="0">実務シナリオ: 在庫表で最新ロットの位置を取得する</a></li></ol></li><li><a href="#toc21" tabindex="0">XMATCH関数のよくあるエラーと対処法</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">大文字小文字・全角半角の表記ゆれ対策</a></li></ol></li><li><a href="#toc25" tabindex="0">XMATCH関数とMATCH関数の違い・使い分け</a><ol><li><a href="#toc26" tabindex="0">MATCH→XMATCHへの書き換え（Before/After）</a></li><li><a href="#toc27" tabindex="0">どちらを選ぶべき？シーン別の判断基準</a></li><li><a href="#toc28" tabindex="0">XMATCH関数とXLOOKUP関数の使い分け</a></li><li><a href="#toc29" tabindex="0">INDEX+MATCHとの違い</a></li></ol></li><li><a href="#toc30" tabindex="0">まとめ：XMATCH関数で位置検索を一段ラクにする</a><ol><li><a href="#toc31" tabindex="0">関連記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">スプレッドシートのXMATCH関数とは？MATCHの上位互換にあたる位置検索関数</span></h2>



<p class="wp-block-paragraph">XMATCH関数（読み方: エックスマッチ関数）は、<strong>検索範囲から指定した値を探し、その値が何番目にあるかを数値で返す関数</strong>です。関数名の「X」はExtended（拡張）の意味で、<a href="https://mashukabu.com/spreadsheet-match-function/">MATCH関数</a> を強化した上位互換にあたります。位置番号を返す点はMATCHと同じですが、検索の方向や一致の仕方を細かく指定できるのが特徴です。</p>



<p class="wp-block-paragraph">たとえば部署列（C2:C6）から「総務部」が何番目にあるかを調べると、<code>=XMATCH("総務部", C2:C6)</code> で「3」が返ります。返るのは値そのものではなく、あくまで位置（インデックス）です。</p>



<h3 class="wp-block-heading"><span id="toc2">XMATCH関数で何ができる？</span></h3>



<p class="wp-block-paragraph">XMATCH関数が活躍するのは、おもに次のような場面です。</p>



<ul class="wp-block-list"><li>検索値が範囲の <strong>何番目にあるか</strong> を数値で取得したい（INDEX関数と組み合わせる前提のケース）</li><li>日報・作業ログなどの追記型データから <strong>最新のエントリ位置</strong> だけを拾いたい</li><li>検索列が範囲の左端にない表で、<a href="https://mashukabu.com/spreadsheet-vlookup-function/">VLOOKUP関数</a> では届かない <strong>左方向の検索</strong> をしたい</li><li>大きな表で <strong>行と列の見出しを同時に検索</strong> して、クロス検索を組みたい</li><li>「ぴったり85点はないけれど80点台のランクは何位か」のような <strong>近似一致</strong> を、並べ替えなしで実現したい</li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>XMATCH関数が返すのは「位置番号」であって値そのものではありません。値を直接取得したい場合は、<a href="https://mashukabu.com/spreadsheet-index-function/">INDEX関数</a> や <a href="https://mashukabu.com/spreadsheet-xlookup/">XLOOKUP関数</a> と組み合わせて使います。XMATCH関数は「位置」を返す部品として、INDEX関数との組み合わせで真価を発揮します。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc3">XMATCH関数とMATCH関数の違い（ざっくり）</span></h3>



<p class="wp-block-paragraph">詳しい比較は後半の「XMATCH関数とMATCH関数の違い・使い分け」で解説しますが、ざっくり押さえておきたい違いは次の3点です。</p>



<ul class="wp-block-list"><li><strong>デフォルトが完全一致</strong>（MATCHは近似一致）なので、引数の指定ミスが起きにくい</li><li><strong>逆方向検索（末尾から検索）が可能</strong> で、追記型の台帳と相性がよい</li><li><strong>近似一致でデータの並べ替えが不要</strong> になり、事前のソート作業が要らない</li></ul>



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



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



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



<pre class="wp-block-code"><code>=XMATCH(検索値, 検索範囲, [一致モード], [検索モード])</code></pre>



<p class="wp-block-paragraph">引数は4つあります。第3引数（一致モード）と第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>&#8220;営業部&#8221;、E001、A1</td></tr><tr><td>検索範囲</td><td>必須</td><td>検索対象の <strong>1行または1列</strong> の範囲</td><td>A2:A6、B1:F1</td></tr><tr><td>一致モード</td><td>省略可</td><td>一致の判定方法（0, -1, 1, 2, 3）</td><td>0</td></tr><tr><td>検索モード</td><td>省略可</td><td>検索する方向（1, -1, 2, -2）</td><td>1</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">省略した場合は「先頭から完全一致で検索」という最もシンプルな動作になります。MATCH関数とは異なりデフォルトが完全一致なので、第3引数の書き忘れによる事故が起きにくいのがメリットです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>検索範囲には <strong>1行または1列</strong> だけを指定します。<code>A1:C5</code> のような2次元の範囲を渡すと <code>#VALUE!</code> エラーになります。複数列を横断して検索したい場合は、後述の「INDEX+XMATCHでクロス検索する」パターンを使いましょう。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc7">一致モード5種の早見表</span></h3>



<p class="wp-block-paragraph">一致モードは、検索値と範囲内の値をどう照合するかを決める引数です。</p>



<figure class="wp-block-table"><table><thead><tr><th>一致モード</th><th>動作</th><th>データの並び順</th><th>主な用途</th></tr></thead><tbody><tr><td>0（デフォルト）</td><td><strong>完全一致</strong>。値がぴったり一致する位置を返す</td><td>不問</td><td>通常の検索</td></tr><tr><td>-1</td><td><strong>検索値以下の最大値</strong> の位置を返す</td><td>不問</td><td>価格帯・点数のランク判定</td></tr><tr><td>1</td><td><strong>検索値以上の最小値</strong> の位置を返す</td><td>不問</td><td>在庫の繰上げ判定</td></tr><tr><td>2</td><td><strong>ワイルドカード一致</strong>（<code>*</code>、<code>?</code>、<code>~</code> を使用）</td><td>不問</td><td>部分一致検索</td></tr><tr><td>3</td><td><strong>正規表現一致</strong>（スプレッドシート独自）</td><td>不問</td><td>複雑なパターン照合</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">MATCH関数の近似一致ではデータの並べ替えが必須でしたが、XMATCHなら並べ替え不要で近似一致ができます。一致モード3の正規表現は <strong>Googleスプレッドシート独自の拡張</strong> で、Excelには無い機能です。</p>



<h3 class="wp-block-heading"><span id="toc8">検索モード4種の早見表</span></h3>



<p class="wp-block-paragraph">検索モードは、範囲をどの方向から探すかを決める引数です。</p>



<figure class="wp-block-table"><table><thead><tr><th>検索モード</th><th>動作</th><th>条件</th><th>主な用途</th></tr></thead><tbody><tr><td>1（デフォルト）</td><td><strong>先頭から検索</strong></td><td>不問</td><td>通常の検索</td></tr><tr><td>-1</td><td><strong>末尾から逆方向検索</strong></td><td>不問</td><td>最新エントリの取得</td></tr><tr><td>2</td><td><strong>昇順バイナリサーチ</strong></td><td>昇順にソート済み必須</td><td>大量データの高速検索</td></tr><tr><td>-2</td><td><strong>降順バイナリサーチ</strong></td><td>降順にソート済み必須</td><td>大量データの高速検索</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">通常は先頭から検索（1）で問題ありません。末尾から検索（-1）はXMATCH関数の目玉機能で、MATCH関数にはない便利な動作です。</p>



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



<p class="wp-block-paragraph">ここからは具体例で動きを見ていきます。以下の社員管理表（A1:D6）を使って説明します。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A</th><th>B</th><th>C</th><th>D</th></tr></thead><tbody><tr><td>1</td><td>社員番号</td><td>氏名</td><td>部署</td><td>役職</td></tr><tr><td>2</td><td>E001</td><td>田中太郎</td><td>営業部</td><td>課長</td></tr><tr><td>3</td><td>E002</td><td>鈴木花子</td><td>経理部</td><td>主任</td></tr><tr><td>4</td><td>E003</td><td>佐藤一郎</td><td>総務部</td><td>部長</td></tr><tr><td>5</td><td>E004</td><td>山田美咲</td><td>営業部</td><td>主任</td></tr><tr><td>6</td><td>E005</td><td>高橋健一</td><td>開発部</td><td>課長</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc10">完全一致で位置を取得する（一致モード 0）</span></h3>



<p class="wp-block-paragraph">部署列（C2:C6）の中で「総務部」が何番目にあるかを調べる、いちばんシンプルな使い方です。</p>



<pre class="wp-block-code"><code>=XMATCH(&quot;総務部&quot;, C2:C6)</code></pre>



<p class="wp-block-paragraph">結果は「3」になります。C2:C6 の中で「総務部」は C4 にあり、先頭から数えて3番目の位置だからです。</p>



<p class="wp-block-paragraph">一致モードを省略しても完全一致で検索してくれます。MATCH関数では <code>=MATCH("総務部", C2:C6, 0)</code> のように第3引数に <code>0</code> を書く必要がありましたが、XMATCHなら省略できる分シンプルです。</p>



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



<p class="wp-block-paragraph">部分一致で検索したいときは、一致モードに <code>2</code> を指定します。<code>*</code>（任意の文字列）と <code>?</code>（任意の1文字）が使えます。</p>



<figure class="wp-block-table"><table><thead><tr><th>ワイルドカード</th><th>意味</th><th>使用例</th></tr></thead><tbody><tr><td><code>*</code>（アスタリスク）</td><td>任意の文字列（0文字以上）</td><td><code>"*太郎"</code> → 太郎で終わる値</td></tr><tr><td><code>?</code>（クエスチョン）</td><td>任意の1文字</td><td><code>"E00?"</code> → E001〜E009</td></tr><tr><td><code>~</code>（チルダ）</td><td><code>*</code> や <code>?</code> 自体をエスケープ</td><td><code>"~<em>"</code> → <code></em></code> を検索</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">たとえば氏名列から「鈴木」で始まる人の位置を調べるには、こう書きます。</p>



<pre class="wp-block-code"><code>=XMATCH(&quot;鈴木*&quot;, B2:B6, 2)</code></pre>



<p class="wp-block-paragraph">結果は「2」です。B2:B6 の中で「鈴木花子」が2番目にあるため、その位置が返ります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>MATCH関数では完全一致モード（0）でワイルドカードが使えましたが、XMATCHではワイルドカード専用の一致モード（2）に分離されています。完全一致モード（0）のままだと <code><em></code> や <code>?</code> は <strong>ただの文字</strong> として扱われるので、<code>"鈴木</em>"</code> を検索しても #N/A になります。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc12">近似一致で最も近い値を取得する（一致モード -1 / 1）</span></h3>



<p class="wp-block-paragraph">数値データに対して「ぴったり一致する値がなければ、近い値で代用する」モードです。</p>



<ul class="wp-block-list"><li><strong>-1（以下の最大値）</strong>: 検索値以下で最も大きい値の位置を返す</li><li><strong>1（以上の最小値）</strong>: 検索値以上で最も小さい値の位置を返す</li></ul>



<p class="wp-block-paragraph">たとえば、点数テーブル <code>{60, 70, 80, 90}</code> に対して85点のランクを調べたいとします。テーブルに85はありませんが、以下のように書けば80の位置が返ります。</p>



<pre class="wp-block-code"><code>=XMATCH(85, {60,70,80,90}, -1)</code></pre>



<p class="wp-block-paragraph">この式は「3」を返します。85以下の最大値は80で、テーブルの3番目だからです。逆に「85以上で最も小さい値」を取りたい場合は <code>=XMATCH(85, {60,70,80,90}, 1)</code> と書くと、90の位置である「4」が返ります。</p>



<p class="wp-block-paragraph">MATCH関数の近似一致ではデータの昇順・降順ソートが必須でしたが、XMATCHなら <strong>並べ替え不要</strong> で近似一致ができます。価格帯テーブルや評価テーブルのように、後から行を追加することがある表で特に便利です。</p>



<h3 class="wp-block-heading"><span id="toc13">正規表現で柔軟に一致させる（一致モード 3・スプレッドシート独自）</span></h3>



<p class="wp-block-paragraph">Googleスプレッドシート版のXMATCH関数には、Excelには無い <strong>正規表現一致モード（3）</strong> があります。<code>*</code> や <code>?</code> よりも複雑なパターンを書きたいときに使います。</p>



<pre class="wp-block-code"><code>=XMATCH(&quot;E00[1-3]&quot;, A2:A6, 3)</code></pre>



<p class="wp-block-paragraph"><code>E001</code>〜<code>E003</code> のいずれかにマッチする最初の位置を返します。上記の例では A2 の「E001」が最初に該当するので「1」が返ります。<code>[1-3]</code> は文字クラスで、<code>1</code> か <code>2</code> か <code>3</code> のいずれか1文字を表します。</p>



<p class="wp-block-paragraph">正規表現を使うと「3桁の数字で終わる商品コード」「特定の接頭辞＋数字」のような <strong>構造的な検索</strong> が一発で書けます。ただし正規表現に慣れていないと読みにくくなりがちなので、シンプルな部分一致ならワイルドカード（一致モード2）で十分です。</p>



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



<h3 class="wp-block-heading"><span id="toc15">逆方向検索で最新データの位置を取得する</span></h3>



<p class="wp-block-paragraph">XMATCH関数の目玉機能が、<strong>逆方向検索（検索モード -1）</strong> です。末尾から先頭に向かって検索し、最初に見つかった位置を返します。</p>



<p class="wp-block-paragraph">これが活躍するのは、日報や作業ログのような <strong>追記型の台帳</strong> です。下へどんどん行を追加していくシートで、同じ担当者名が何度も登場するとき、「最新（最後）のエントリだけ拾いたい」というニーズに刺さります。</p>



<pre class="wp-block-code"><code>=XMATCH(&quot;田中太郎&quot;, B2:B100, 0, -1)</code></pre>



<p class="wp-block-paragraph">第3引数の <code>0</code> は完全一致、第4引数の <code>-1</code> が末尾からの逆方向検索です。MATCH関数では逆順検索ができなかったので、<code>MAX</code> と <code>IF</code> の配列数式を組み合わせるような回りくどい式が必要でした。XMATCHなら検索モードに <code>-1</code> を渡すだけで解決します。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>逆方向検索でも返る値は <strong>「先頭からの位置番号」</strong> です。たとえば B2:B100 の80番目に該当データがあれば、検索方向に関係なく「80」が返ります。INDEX関数に渡せばそのまま該当行の値を取り出せるので、計算ロジックを変える必要はありません。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc16">INDEX+XMATCHで左方向の列を検索する</span></h3>



<p class="wp-block-paragraph">XMATCH関数が最も活躍するのは、<a href="https://mashukabu.com/spreadsheet-index-function/">INDEX関数</a> と組み合わせる <strong>INDEX+XMATCH</strong> のパターンです。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-vlookup-function/">VLOOKUP関数</a> は検索列が範囲の <strong>左端</strong> にある必要があり、左方向の検索ができません。一方、INDEX+XMATCHなら、検索列と戻り値の列を別々に指定できるので、左方向の検索も問題なく書けます。</p>



<p class="wp-block-paragraph">たとえば「営業部の社員の社員番号を知りたい」とします。部署（C列）で検索して、社員番号（A列）を返す数式です。</p>



<pre class="wp-block-code"><code>=INDEX(A2:A6, XMATCH(&quot;営業部&quot;, C2:C6))</code></pre>



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



<ol class="wp-block-list"><li><code>XMATCH("営業部", C2:C6)</code> → C2:C6 で「営業部」は1番目 → 「1」を返す</li><li><code>INDEX(A2:A6, 1)</code> → A2:A6 の1番目 → 「E001」を返す</li></ol>



<p class="wp-block-paragraph">検索範囲（C列）と戻り値の範囲（A列）を別々に指定できるため、左方向だけでなく <strong>離れた列同士</strong> の参照も自由自在です。</p>



<h3 class="wp-block-heading"><span id="toc17">INDEX+XMATCHで行列クロス検索する</span></h3>



<p class="wp-block-paragraph">INDEX+XMATCH最大の見せ場が、<strong>行と列を同時に検索するクロス検索</strong> です。行の位置も列の位置もXMATCHで動的に取得することで、表のどこを参照するかを完全に数式で組み立てられます。</p>



<p class="wp-block-paragraph">「社員番号 E003 の役職を取得したい」というケースで見てみましょう。</p>



<pre class="wp-block-code"><code>=INDEX(A2:D6, XMATCH(&quot;E003&quot;, A2:A6), XMATCH(&quot;役職&quot;, A1:D1))</code></pre>



<p class="wp-block-paragraph">処理の流れはこうなります。</p>



<ol class="wp-block-list"><li><code>XMATCH("E003", A2:A6)</code> → 「3」（A列で3番目）</li><li><code>XMATCH("役職", A1:D1)</code> → 「4」（見出し行で4番目）</li><li><code>INDEX(A2:D6, 3, 4)</code> → 表の3行4列目 → 「部長」を返す</li></ol>



<p class="wp-block-paragraph">列の見出し名で位置を検索するので、<strong>途中に列が追加・移動されても数式が壊れません</strong>。大きな表や、列構成が変わる可能性があるテンプレートで特に重宝するパターンです。</p>



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



<p class="wp-block-paragraph">XMATCH関数は検索値が見つからないと <code>#N/A</code> エラーを返します。共有シートで他の人にも触らせる表では、<a href="https://mashukabu.com/spreadsheet-iferror-function/">IFERROR関数</a> で囲んでエラー表示を避けるのが定番です。</p>



<pre class="wp-block-code"><code>=IFERROR(XMATCH(&quot;マーケ部&quot;, C2:C6), &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">「マーケ部」はデータに存在しないため、<code>#N/A</code> ではなく「該当なし」が表示されます。</p>



<p class="wp-block-paragraph">INDEX+XMATCH の式と組み合わせる場合は、<strong>全体をIFERRORで囲む</strong> のがポイントです。</p>



<pre class="wp-block-code"><code>=IFERROR(INDEX(B2:B6, XMATCH(&quot;E010&quot;, A2:A6)), &quot;見つかりません&quot;)</code></pre>



<p class="wp-block-paragraph">XMATCH側にだけIFERRORを掛けると、INDEX関数に「該当なし」が渡されて別のエラーになります。エラーの起点となる関数ではなく、最終的な数式全体をIFERRORで包みましょう。</p>



<h3 class="wp-block-heading"><span id="toc19">バイナリサーチで大量データを高速検索する</span></h3>



<p class="wp-block-paragraph">データが数万行を超えていて、かつ <strong>すでに昇順または降順にソート済み</strong> の場合は、バイナリサーチ（検索モード <code>2</code> または <code>-2</code>）が使えます。</p>



<pre class="wp-block-code"><code>=XMATCH(&quot;E003&quot;, A2:A10000, 0, 2)</code></pre>



<p class="wp-block-paragraph">二分探索のアルゴリズムで検索するので、線形検索よりも処理が高速です。ただし <strong>データが正しくソートされていないと誤った結果を返す</strong> ので注意が必要です。</p>



<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="toc20">実務シナリオ: 在庫表で最新ロットの位置を取得する</span></h3>



<p class="wp-block-paragraph">応用パターンとして、入出庫履歴から特定の商品の <strong>最新ロット行</strong> を取り出すケースを見てみましょう。A列に商品コード、B列にロット番号、C列に入庫日が並んでいる入庫履歴を想定します。</p>



<pre class="wp-block-code"><code>=INDEX(B2:B500, XMATCH(&quot;APPLE-01&quot;, A2:A500, 0, -1))</code></pre>



<p class="wp-block-paragraph"><code>XMATCH("APPLE-01", A2:A500, 0, -1)</code> で「APPLE-01」の <strong>末尾側の出現位置</strong> を取得し、その位置のロット番号を INDEX で取り出しています。逆方向検索（-1）を使うことで、最後に入庫されたロット番号だけを拾えます。</p>



<p class="wp-block-paragraph">「最新の単価」「最終更新日」など、追記型データから最新値を取り出す処理は実務で頻出です。INDEX+XMATCH+逆方向検索の3点セットは覚えておくと応用が利きます。</p>



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



<p class="wp-block-paragraph">XMATCH関数で発生しやすいエラーと、その原因・対処法を早見表にまとめます。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>主な原因</th><th>対処法</th></tr></thead><tbody><tr><td>#N/A</td><td>検索値が範囲内に存在しない</td><td>データの有無を確認する。IFERRORで囲む</td></tr><tr><td>#N/A</td><td>データ型の不一致（数値と文字列の混在）</td><td>検索値と範囲のデータ型を揃える</td></tr><tr><td>#N/A</td><td>ワイルドカードを一致モード0で使っている</td><td>一致モードを2に変更する</td></tr><tr><td>#VALUE!</td><td>検索範囲に2次元の範囲を指定（例: A1:C5）</td><td>1行または1列の範囲に変更する</td></tr><tr><td>#VALUE!</td><td>一致モードや検索モードに無効な値を指定</td><td>0, -1, 1, 2, 3（一致モード）/ 1, -1, 2, -2（検索モード）</td></tr><tr><td>期待と違う結果</td><td>全角/半角・大文字小文字の不一致</td><td>ASC関数・UPPER関数などで事前に正規化</td></tr></tbody></table></figure>



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



<p class="wp-block-paragraph">XMATCH関数でいちばん多いエラーです。データ自体が存在しない場合と、<strong>型の不一致</strong> で見つからない場合の2パターンがあります。</p>



<p class="wp-block-paragraph">セルの見た目は同じ数字でも、片方が数値・もう片方が文字列だと別物と判定されます。確認するには、対象セルを選択して数式バーの表示をチェックしてください。文字列として入力された数字はセル内で <strong>左寄せ</strong> で表示されます（数値は右寄せ）。VALUE関数で文字列を数値に変換すれば、型を揃えられます。</p>



<pre class="wp-block-code"><code>=XMATCH(VALUE(A2), B2:B100, 0)</code></pre>



<p class="wp-block-paragraph">逆に範囲側が数値で検索値が文字列なら、検索値を <code>VALUE("123")</code> のように変換します。どちらに揃えるかはデータの実体に合わせて選びましょう。</p>



<h3 class="wp-block-heading"><span id="toc23">#VALUE!エラー（範囲指定が不正）の対処法</span></h3>



<p class="wp-block-paragraph">検索範囲に2次元の範囲（A1:C5など）を指定すると発生します。XMATCH関数は <strong>1行または1列のみ</strong> を受け付けます。</p>



<pre class="wp-block-code"><code>=XMATCH(&quot;総務部&quot;, C2:D6)</code></pre>



<p class="wp-block-paragraph">このように2列を渡すと <code>#VALUE!</code> になります。複数列を横断して検索したい場合は、前述の「INDEX+XMATCHで行列クロス検索する」のように、行用と列用の2つのXMATCHに分けてください。</p>



<h3 class="wp-block-heading"><span id="toc24">大文字小文字・全角半角の表記ゆれ対策</span></h3>



<p class="wp-block-paragraph">XMATCH関数の値の照合は <strong>大文字と小文字を区別しません</strong>（&#8221;ABC&#8221; と &#8220;abc&#8221; は同じ）。一方で <strong>全角と半角は別物</strong> として扱います（&#8221;E001&#8243; と &#8220;Ｅ００１&#8221; は別）。</p>



<p class="wp-block-paragraph">データに全角の英数字や記号が紛れ込んでいる場合は、事前に ASC関数で半角に統一しておくと安心です。</p>



<pre class="wp-block-code"><code>=XMATCH(ASC(A2), ARRAYFORMULA(ASC(C2:C100)), 0)</code></pre>



<p class="wp-block-paragraph">検索値と範囲の両方を ASC で半角化することで、表記ゆれを吸収できます。範囲側に ARRAYFORMULA を使うのは、関数を範囲全体に適用するためです。</p>



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



<p class="wp-block-paragraph">XMATCHはMATCH関数の上位互換です。主な違いを比較表で整理します。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>MATCH</th><th>XMATCH</th></tr></thead><tbody><tr><td>デフォルトの一致モード</td><td>近似一致（1）</td><td><strong>完全一致（0）</strong></td></tr><tr><td>近似一致の並べ替え</td><td>昇順/降順が必須</td><td><strong>不要</strong></td></tr><tr><td>逆方向検索（末尾から検索）</td><td>不可</td><td><strong>可能（検索モード -1）</strong></td></tr><tr><td>ワイルドカード</td><td>完全一致モード（0）で使用</td><td><strong>専用モード（2）で使用</strong></td></tr><tr><td>バイナリサーチ</td><td>不可</td><td><strong>可能（検索モード 2 / -2）</strong></td></tr><tr><td>正規表現</td><td>不可</td><td><strong>一致モード 3（スプレッドシート独自）</strong></td></tr><tr><td>引数の数</td><td>3つ（検索値・範囲・一致モード）</td><td>4つ（検索値・範囲・一致モード・検索モード）</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc26">MATCH→XMATCHへの書き換え（Before/After）</span></h3>



<p class="wp-block-paragraph">実務でよく使う完全一致のパターンを、書き換え例で見てみましょう。</p>



<p class="wp-block-paragraph"><strong>Before（MATCH関数）:</strong></p>



<pre class="wp-block-code"><code>=MATCH(&quot;総務部&quot;, C2:C6, 0)</code></pre>



<p class="wp-block-paragraph"><strong>After（XMATCH関数）:</strong></p>



<pre class="wp-block-code"><code>=XMATCH(&quot;総務部&quot;, C2:C6)</code></pre>



<p class="wp-block-paragraph">第3引数の <code>0</code> を省略できる分、XMATCHのほうがシンプルです。完全一致がデフォルトなので、書き忘れによるエラーの心配もありません。</p>



<h3 class="wp-block-heading"><span id="toc27">どちらを選ぶべき？シーン別の判断基準</span></h3>



<p class="wp-block-paragraph">判断基準はシンプルに次のとおりです。</p>



<ul class="wp-block-list"><li><strong>新しく数式を作る場合</strong> → XMATCH関数がおすすめ。デフォルト完全一致で安全</li><li><strong>既存シートを部分修正する場合</strong> → 既存のMATCH関数に合わせて統一感を優先</li><li><strong>末尾側の一致を取得したい場合</strong> → XMATCH関数の逆方向検索（-1）一択</li><li><strong>大量データを高速検索したい場合</strong> → XMATCH関数のバイナリサーチ（2/-2）</li><li><strong>正規表現で複雑なパターンを検索したい場合</strong> → XMATCH関数の一致モード3</li></ul>



<h3 class="wp-block-heading"><span id="toc28">XMATCH関数とXLOOKUP関数の使い分け</span></h3>



<p class="wp-block-paragraph">「値そのものを取得したいだけ」なら、<a href="https://mashukabu.com/spreadsheet-xlookup/">XLOOKUP関数</a> のほうがシンプルに書けます。</p>



<pre class="wp-block-code"><code>=XLOOKUP(&quot;E003&quot;, A2:A6, D2:D6)</code></pre>



<p class="wp-block-paragraph">XLOOKUPは検索範囲と戻り値範囲を直接指定するので、INDEX+XMATCHの2段構えが不要です。一方で <strong>位置番号自体が必要</strong> なケース（行番号を別の計算に流したい・複数列を一度に取りたい・行列クロス検索したいなど）では、XMATCH関数のほうが柔軟性で勝ります。</p>



<figure class="wp-block-table"><table><thead><tr><th>やりたいこと</th><th>おすすめ関数</th></tr></thead><tbody><tr><td>1列のテーブルから値を取り出すだけ</td><td>XLOOKUP関数</td></tr><tr><td>位置番号を別の計算に使いたい</td><td>XMATCH関数</td></tr><tr><td>行と列の見出しから値を取り出したい（クロス検索）</td><td>INDEX + XMATCH</td></tr><tr><td>検索列の左側の値を取り出したい</td><td>XLOOKUP関数 または INDEX + XMATCH</td></tr><tr><td>検索値が末尾側のものを取得したい</td><td>XMATCH関数（検索モード -1）</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc29">INDEX+MATCHとの違い</span></h3>



<p class="wp-block-paragraph">長年の定番である <code>INDEX+MATCH</code> の式も、<code>INDEX+XMATCH</code> に置き換えるだけで動きます。</p>



<p class="wp-block-paragraph"><strong>Before（INDEX+MATCH）:</strong></p>



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



<p class="wp-block-paragraph"><strong>After（INDEX+XMATCH）:</strong></p>



<pre class="wp-block-code"><code>=INDEX(A2:A6, XMATCH(&quot;営業部&quot;, C2:C6))</code></pre>



<p class="wp-block-paragraph">XMATCH側で <code>0</code> を省略できるだけで、ほぼ同じ感覚で使えます。逆方向検索や正規表現が必要になったとき、XMATCHのほうが拡張余地が大きいのが強みです。</p>



<h2 class="wp-block-heading"><span id="toc30">まとめ：XMATCH関数で位置検索を一段ラクにする</span></h2>



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



<ul class="wp-block-list"><li>構文は <code>=XMATCH(検索値, 検索範囲, [一致モード], [検索モード])</code> の4引数で、第3・第4引数は省略可</li><li><strong>デフォルトが完全一致</strong> なので、引数の指定ミスが起きにくい</li><li><strong>逆方向検索（検索モード -1）</strong> で、追記型の台帳から最新エントリの位置を一発取得できる</li><li><strong>近似一致で並べ替え不要</strong> になり、価格帯や評価テーブルの参照が手軽に</li><li>ワイルドカードは <strong>専用の一致モード（2）</strong> で使う。完全一致モード（0）では文字として扱われる</li><li>スプレッドシート版には <strong>正規表現の一致モード（3）</strong> もあり、複雑なパターンも検索できる</li><li><a href="https://mashukabu.com/spreadsheet-index-function/">INDEX関数</a> と組み合わせれば、<strong>左方向の検索・行列クロス検索</strong> が自由自在</li></ul>



<p class="wp-block-paragraph">まずは <code>=XMATCH("検索値", 範囲)</code> の完全一致パターンから試してみてください。MATCH関数を使っている方は、XMATCHに切り替えるだけで検索の自由度がぐっと広がりますよ。INDEX+MATCH派の方は、<code>MATCH</code> を <code>XMATCH</code> に置き換えるところから始めるのがおすすめです。</p>



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/spreadsheet-match-function/">スプレッドシートのMATCH関数の使い方｜INDEX+MATCHで左側も検索できる</a></li><li><a href="https://mashukabu.com/spreadsheet-index-function/">スプレッドシートのINDEX関数の使い方｜行列指定で値を取得する方法</a></li><li><a href="https://mashukabu.com/spreadsheet-xlookup/">スプレッドシートのXLOOKUP関数の使い方｜VLOOKUPとの違いも解説</a></li><li><a href="https://mashukabu.com/spreadsheet-vlookup-function/">スプレッドシートのVLOOKUP関数の使い方｜別シート参照・エラー対処まで解説</a></li><li><a href="https://mashukabu.com/spreadsheet-iferror-function/">スプレッドシートのIFERROR関数の使い方｜エラーを別の値に置き換える</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-xmatch-function/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-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></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>スプレッドシートのINDEX関数の使い方｜行列指定で値を取得する方法</title>
		<link>https://mashukabu.com/spreadsheet-index-function/</link>
					<comments>https://mashukabu.com/spreadsheet-index-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 19 Mar 2026 15:13:16 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[INDEX+MATCH]]></category>
		<category><![CDATA[INDEX関数]]></category>
		<category><![CDATA[MATCH関数]]></category>
		<category><![CDATA[VLOOKUP]]></category>
		<category><![CDATA[スプレッドシート]]></category>
		<category><![CDATA[検索関数]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4660</guid>

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



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



<p class="wp-block-paragraph">そんなときに頼りになるのがINDEX関数です。行番号と列番号を指定するだけで、表のどこからでも値を取得できます。この記事では、INDEX関数の基本から実践的な使い方まで解説します。MATCH関数との組み合わせやVLOOKUPとの使い分けもカバーします。</p>




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

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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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

					<description><![CDATA[スプレッドシートのMATCH関数の使い方を実務目線で解説。基本の書き方から、INDEX+MATCHでVLOOKUPの左側制限を超えるテクニック、照合の種類0・1・-1の違い、#N/Aエラー対処法まで網羅。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「検索した値が表の何番目にあるか知りたい」。スプレッドシートでデータを扱っていると、そんな場面がよくありますよね。</p>



<p class="wp-block-paragraph">VLOOKUPで値を引っ張ることはできても、位置番号そのものは取得できません。検索列より左にある値を取りたいときも、VLOOKUPだけではお手上げです。</p>



<p class="wp-block-paragraph">そこで活躍するのがMATCH関数です。検索値が範囲の何番目にあるかを数値で返してくれます。この記事では、MATCH関数の基本から実践的な使い方まで解説します。INDEX関数との組み合わせで左側の列を検索する方法や、エラー対策もカバーしていきます。</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">スプレッドシートのMATCH関数とは？</a></li><li><a href="#toc2" tabindex="0">MATCH関数の書き方（構文と引数）</a><ol><li><a href="#toc3" tabindex="0">基本構文</a></li><li><a href="#toc4" tabindex="0">引数の説明</a></li><li><a href="#toc5" tabindex="0">検索の種類 0・1・-1 の違い</a></li></ol></li><li><a href="#toc6" tabindex="0">MATCH関数の基本的な使い方</a><ol><li><a href="#toc7" tabindex="0">完全一致で位置を取得する（検索の種類 0）</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">INDEX+MATCHで左側の列を検索する（VLOOKUPの制限を超える）</a></li><li><a href="#toc11" tabindex="0">INDEX+MATCHでクロス検索する（行と列を同時に指定）</a></li><li><a href="#toc12" tabindex="0">IFERRORと組み合わせてエラーを防ぐ</a></li></ol></li><li><a href="#toc13" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc14" tabindex="0">MATCH関数とXMATCH関数の違い・使い分け</a><ol><li><a href="#toc15" tabindex="0">どちらを選ぶべき？</a></li></ol></li><li><a href="#toc16" tabindex="0">まとめ</a><ol><li><a href="#toc17" tabindex="0">関連記事</a></li></ol></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">MATCH関数（読み方: マッチ関数）は、指定した値が範囲の中で何番目にあるかを返す関数です。名前はMatch（一致する）が由来で、「探している値の位置番号を教えてくれる」イメージです。</p>



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



<ul class="wp-block-list"><li>検索値が範囲の何番目にあるかを数値で返す</li><li>完全一致・近似一致（以下/以上）の3種類の検索モードに対応する</li><li>ワイルドカードを使った部分一致検索ができる</li><li><a href="https://mashukabu.com/spreadsheet-index-function/">INDEX関数</a>と組み合わせて柔軟な表引きを実現する</li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>MATCH関数が返すのは値そのものではなく「位置番号」です。値を直接取得したい場合は、INDEX関数やVLOOKUP関数と組み合わせて使います。</p></blockquote>



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



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



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



<pre class="wp-block-code"><code>=MATCH(検索キー, 範囲, [検索の種類])</code></pre>



<p class="wp-block-paragraph">引数は3つあります。検索の種類は省略できます。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/省略可</th><th>意味</th><th>指定例</th></tr></thead><tbody><tr><td>検索キー</td><td>必須</td><td>探したい値</td><td>&#8220;営業部&#8221;、E001</td></tr><tr><td>範囲</td><td>必須</td><td>検索対象の1行または1列の範囲</td><td>A2:A6</td></tr><tr><td>検索の種類</td><td>省略可</td><td>検索モードの指定（0, 1, -1）</td><td>0</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">範囲には1行または1列のみ指定できます。2次元の範囲（A1:C5など）を指定すると#VALUE!エラーになるので注意してください。</p>



<h3 class="wp-block-heading"><span id="toc5">検索の種類 0・1・-1 の違い</span></h3>



<p class="wp-block-paragraph">検索の種類は3つのモードから選べます。</p>



<figure class="wp-block-table"><table><thead><tr><th>検索の種類</th><th>動作</th><th>データの並び順</th></tr></thead><tbody><tr><td>0</td><td>完全一致。値がぴったり一致する位置を返す</td><td>不問</td></tr><tr><td>1（省略時のデフォルト）</td><td>検索キー以下の最大値の位置を返す</td><td>昇順が必須</td></tr><tr><td>-1</td><td>検索キー以上の最小値の位置を返す</td><td>降順が必須</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">実務では完全一致（0）を使うケースがほとんどです。省略すると1（近似一致・昇順）になるため、意図しない結果を防ぐためにも明示的に0を指定するのがおすすめです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>WARNING</strong></p><p>検索の種類を1または-1にするときは、データが正しくソートされている必要があります。ソートされていないと正しい結果が返りません。</p></blockquote>



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



<h3 class="wp-block-heading"><span id="toc7">完全一致で位置を取得する（検索の種類 0）</span></h3>



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



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A</th><th>B</th><th>C</th><th>D</th></tr></thead><tbody><tr><td>1</td><td>社員番号</td><td>氏名</td><td>部署</td><td>役職</td></tr><tr><td>2</td><td>E001</td><td>田中太郎</td><td>営業部</td><td>課長</td></tr><tr><td>3</td><td>E002</td><td>鈴木花子</td><td>経理部</td><td>主任</td></tr><tr><td>4</td><td>E003</td><td>佐藤一郎</td><td>総務部</td><td>部長</td></tr><tr><td>5</td><td>E004</td><td>山田美咲</td><td>営業部</td><td>主任</td></tr><tr><td>6</td><td>E005</td><td>高橋健一</td><td>開発部</td><td>課長</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">部署列（C2:C6）の中で「総務部」が何番目にあるか調べるにはこう書きます。</p>



<pre class="wp-block-code"><code>=MATCH(&quot;総務部&quot;, C2:C6, 0)</code></pre>



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



<p class="wp-block-paragraph">結果は「3」です。C2:C6の中で「総務部」はC4にあり、先頭から数えて3番目の位置です。</p>



<p class="wp-block-paragraph">もう1つ試してみましょう。氏名列（B2:B6）の中で「高橋健一」の位置を調べます。</p>



<pre class="wp-block-code"><code>=MATCH(&quot;高橋健一&quot;, B2:B6, 0)</code></pre>



<p class="wp-block-paragraph">結果は「5」です。範囲の先頭から1始まりで数える点がポイントです。</p>



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



<p class="wp-block-paragraph">なお、MATCH関数は大文字と小文字を区別しません。社員番号で検索する場合、「e003」と入力しても「E003」と同じ結果が返ります。</p>



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



<p class="wp-block-paragraph">検索の種類を0にすると、ワイルドカードが使えます。名前の一部だけで検索したいときに便利です。</p>



<figure class="wp-block-table"><table><thead><tr><th>ワイルドカード</th><th>意味</th><th>例</th></tr></thead><tbody><tr><td>*（アスタリスク）</td><td>任意の文字列（0文字以上）</td><td>&#8220;田中*&#8221; → 田中で始まる値</td></tr><tr><td>?（クエスチョン）</td><td>任意の1文字</td><td>&#8220;E00?&#8221; → E001〜E009</td></tr><tr><td>~（チルダ）</td><td>*や?自体をエスケープ</td><td>&#8220;~<em>&#8221; → </em>を検索</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">たとえば、氏名列から「鈴木」で始まる人の位置を調べるにはこう書きます。</p>



<pre class="wp-block-code"><code>=MATCH(&quot;鈴木*&quot;, B2:B6, 0)</code></pre>



<p class="wp-block-paragraph">結果は「2」です。B2:B6の中で「鈴木花子」が2番目にあるため、その位置が返ります。</p>



<p class="wp-block-paragraph">複数一致する場合は最初に見つかった位置が返ります。たとえば「営業部」が2つあるデータで検索すると、先頭側の位置が返る仕組みです。</p>



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



<h3 class="wp-block-heading"><span id="toc10">INDEX+MATCHで左側の列を検索する（VLOOKUPの制限を超える）</span></h3>



<p class="wp-block-paragraph">MATCH関数が最も活躍するのは、<a href="https://mashukabu.com/spreadsheet-index-function/">INDEX関数</a>との組み合わせです。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-vlookup-function/">VLOOKUP関数</a>は検索列が範囲の左端にある必要があります。しかしINDEX+MATCHなら、検索列と戻り値の列を自由に指定できます。</p>



<p class="wp-block-paragraph">たとえば「営業部の課長の社員番号を知りたい」とします。部署（C列）と役職（D列）で検索して、社員番号（A列）を返す数式です。</p>



<p class="wp-block-paragraph">まずは、部署列から「営業部」の位置を取得するシンプルな例を見てみましょう。</p>



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



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



<ol class="wp-block-list"><li>MATCH(&#8220;営業部&#8221;, C2:C6, 0) → C2:C6の中で「営業部」は1番目 → 「1」を返す</li><li>INDEX(A2:A6, 1) → A2:A6の1番目 → 「E001」を返す</li></ol>



<p class="wp-block-paragraph">検索範囲（C列）と戻り値の範囲（A列）を別々に指定できるため、左方向の検索も問題ありません。VLOOKUPでは実現できない逆引き検索です。</p>



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



<h3 class="wp-block-heading"><span id="toc11">INDEX+MATCHでクロス検索する（行と列を同時に指定）</span></h3>



<p class="wp-block-paragraph">ちょっとむずかしく見えますが、やっていることはシンプルです。行と列の両方をMATCHで動的に指定することで、クロス検索ができます。</p>



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



<pre class="wp-block-code"><code>=INDEX(A2:D6, MATCH(&quot;E003&quot;, A2:A6, 0), MATCH(&quot;役職&quot;, A1:D1, 0))</code></pre>



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



<ol class="wp-block-list"><li>MATCH(&#8220;E003&#8221;, A2:A6, 0) → 「3」（3行目）</li><li>MATCH(&#8220;役職&#8221;, A1:D1, 0) → 「4」（4列目）</li><li>INDEX(A2:D6, 3, 4) → 「部長」を返す</li></ol>



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



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



<p class="wp-block-paragraph">MATCH関数は検索値が見つからないと#N/Aエラーを返します。IFERROR関数（エラー時に別の値を返す関数）で囲めば、エラー表示を防げます。</p>



<pre class="wp-block-code"><code>=IFERROR(MATCH(&quot;マーケ部&quot;, C2:C6, 0), &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">「マーケ部」はデータに存在しないため、「該当なし」が表示されます。</p>



<p class="wp-block-paragraph">INDEX+MATCHと組み合わせる場合は、全体をIFERRORで囲みます。</p>



<pre class="wp-block-code"><code>=IFERROR(INDEX(B2:B6, MATCH(&quot;E010&quot;, A2:A6, 0)), &quot;見つかりません&quot;)</code></pre>



<p class="wp-block-paragraph">社員番号E010はデータに存在しないため、「見つかりません」が表示されます。共有シートなど他の人が使う表では、IFERRORを付けておくのがおすすめです。</p>



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



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



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



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>主な原因</th><th>対処法</th></tr></thead><tbody><tr><td>#N/A</td><td>検索値が範囲内に存在しない</td><td>データの有無を確認する。IFERRORで囲む</td></tr><tr><td>#N/A</td><td>検索の種類1/-1でデータが正しくソートされていない</td><td>データを昇順/降順に並べ替えるか、検索の種類を0にする</td></tr><tr><td>#N/A</td><td>データ型の不一致（数値と文字列の混在）</td><td>検索値と範囲のデータ型を揃える</td></tr><tr><td>#VALUE!</td><td>範囲に2次元の範囲を指定した（例: A1:C5）</td><td>1行または1列の範囲に変更する</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">特にありがちなのが、データ型の不一致です。セルの見た目は同じ数字でも、片方が数値・もう片方が文字列だとMATCH関数は一致と判定しません。</p>



<p class="wp-block-paragraph">確認するにはセルを選択して、数式バーの表示をチェックしてください。文字列として入力された数字には左寄せ表示になる特徴があります。VALUE関数（文字列を数値に変換する関数）で型を揃えると解決します。</p>



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



<p class="wp-block-paragraph">Googleスプレッドシートでは2022年以降、XMATCH関数が使えるようになりました。MATCH関数の上位互換にあたる新しい関数です。</p>



<figure class="wp-block-table"><table><thead><tr><th>特徴</th><th>MATCH</th><th>XMATCH</th></tr></thead><tbody><tr><td>デフォルトの検索モード</td><td>近似一致（1）</td><td>完全一致（0）</td></tr><tr><td>近似一致のソート要件</td><td>昇順/降順が必須</td><td>ソート不要</td></tr><tr><td>逆方向検索（末尾から検索）</td><td>不可</td><td>可能（検索モード-1）</td></tr><tr><td>ワイルドカード</td><td>検索の種類0で使用可</td><td>ワイルドカードモード（2）で使用可</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">XMATCHの大きなメリットは2つあります。</p>



<ul class="wp-block-list"><li><strong>デフォルトが完全一致</strong>。検索の種類を省略しても正確な結果が返ります</li><li><strong>逆方向検索ができる</strong>。同じ値が複数ある場合、末尾側の位置を取得できます</li></ul>



<pre class="wp-block-code"><code>=XMATCH(&quot;営業部&quot;, C2:C6)</code></pre>



<p class="wp-block-paragraph">上の数式はMATCH関数で書くと次のようになります。</p>



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



<p class="wp-block-paragraph">XMATCHのほうが引数を省略できる分、シンプルに書けます。</p>



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



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



<ul class="wp-block-list"><li><strong>新しく数式を作る場合</strong> → XMATCHがおすすめ。デフォルト完全一致で安全</li><li><strong>既存のシートを修正する場合</strong> → 既存のMATCHに合わせるのが無難</li><li><strong>末尾側の一致を取得したい場合</strong> → XMATCHの逆方向検索を使う</li></ul>



<p class="wp-block-paragraph">なお、ExcelファイルをGoogleスプレッドシートで開く場合、XMATCHはExcel 2021以降でしか対応していません。互換性が気になるならMATCH関数を使っておくのが安心です。</p>



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



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



<ul class="wp-block-list"><li>構文は =MATCH(検索キー, 範囲, 検索の種類) の3引数。検索の種類は省略可</li><li>検索の種類は0（完全一致）を明示するのがおすすめ。省略時は1（近似一致）</li><li>戻り値は「位置番号」。値そのものを取得するにはINDEX関数と組み合わせる</li><li>INDEX+MATCHで<a href="https://mashukabu.com/spreadsheet-vlookup-function/">VLOOKUP関数</a>では不可能な左方向の検索ができる</li><li>ワイルドカード（*、?）を使えば部分一致検索にも対応</li><li>エラー対策にはIFERROR関数を組み合わせるのが定番</li></ul>



<p class="wp-block-paragraph">まずは=MATCH(&#8220;検索値&#8221;, 範囲, 0)の完全一致パターンから試してみてください。位置番号の仕組みがわかれば、INDEX+MATCHの応用もスムーズに進みます。</p>



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/spreadsheet-index-function/">スプレッドシートのINDEX関数の使い方｜行列指定で値を取得する方法</a></li><li><a href="https://mashukabu.com/spreadsheet-vlookup-function/">スプレッドシートのVLOOKUP関数の使い方｜別シート参照・エラー対処まで解説</a></li><li><a href="https://mashukabu.com/spreadsheet-hlookup-function/">スプレッドシートのHLOOKUP関数の使い方</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-match-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-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">スプレッドシートの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>VLOOKUP・XLOOKUP・INDEX MATCH使い分け完全ガイド｜もう迷わない選び方フロー付き</title>
		<link>https://mashukabu.com/excel-vlookup-xlookup-index-match-comparison/</link>
					<comments>https://mashukabu.com/excel-vlookup-xlookup-index-match-comparison/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Wed, 18 Mar 2026 12:29:57 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[INDEX関数]]></category>
		<category><![CDATA[MATCH関数]]></category>
		<category><![CDATA[VLOOKUP関数]]></category>
		<category><![CDATA[XLOOKUP関数]]></category>
		<category><![CDATA[検索関数]]></category>
		<category><![CDATA[関数比較]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4029</guid>

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



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



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



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




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

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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



<p class="wp-block-paragraph">機能は同じです。XLOOKUPのほうが短いですが、INDEX+MATCHなら全バージョンで動きます。</p>



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



<p class="wp-block-paragraph">VLOOKUP・XLOOKUP・INDEX/MATCHの違いを振り返ります。</p>



<figure class="wp-block-table"><table><thead><tr><th>選ぶ基準</th><th>おすすめの関数</th></tr></thead><tbody><tr><td>Excel 2021 / 365 でシンプルに使いたい</td><td>XLOOKUP</td></tr><tr><td>全バージョン対応 + 左方向検索が必要</td><td>INDEX+MATCH</td></tr><tr><td>シンプルな右方向検索だけ</td><td>VLOOKUP</td></tr></tbody></table></figure>



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



<p class="wp-block-paragraph">3つとも「表からデータを探す」という目的は同じです。環境と用途に合った関数を選んでいきましょう。</p>



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-vlookup/">ExcelのVLOOKUP関数の使い方｜引数・エラー対処・INDEX+MATCHとの使い分けまで</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-xlookup/">ExcelのXLOOKUP関数の使い方｜VLOOKUPとの違い・エラー対処まで解説</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-index/">INDEX関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-match/">ExcelのMATCH関数の使い方｜検索値の位置を取得する方法</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-xmatch/">XMATCH関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-iferror/">IFERROR関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-ifna/">IFNA関数の使い方</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-vlookup-xlookup-index-match-comparison/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
