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

<channel>
	<title>XLOOKUP関数 &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/xlookup%E9%96%A2%E6%95%B0/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Fri, 12 Jun 2026 21:55:21 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://mashukabu.com/wp-content/uploads/2022/04/cropped-site-icon-32x32.png</url>
	<title>XLOOKUP関数 &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>VLOOKUP・XLOOKUP・INDEX MATCH使い分け完全ガイド｜もう迷わない選び方フロー付き</title>
		<link>https://mashukabu.com/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-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">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>
		<item>
		<title>XLOOKUP関数の使い方｜VLOOKUP移行フローと数式書き換えチートシート</title>
		<link>https://mashukabu.com/excel-function-howto-use-xlookup/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-xlookup/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sun, 27 Mar 2022 12:47:30 +0000</pubDate>
				<category><![CDATA[Excel関数]]></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=1469</guid>

					<description><![CDATA[ExcelのXLOOKUP関数をVLOOKUP経験者向けに解説。移行判断フロー（3問）とVLOOKUP→XLOOKUPの数式書き換えチートシート6パターンを掲載。引数の実務シーン別使い分けと#N/Aなどエラー対処も網羅。今日から既存シートを書き換えられます。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「VLOOKUPは普通に使えるのに、XLOOKUPにはなかなか踏み出せない」。Microsoft 365に移行済みなのに、手元の社員名簿や商品マスタは相変わらずVLOOKUPのまま。そんな状態ではないでしょうか。</p>



<p class="wp-block-paragraph">基本構文を眺めても、自分のシートをどう書き換えればいいのか、そもそも全部書き換えていいのかが見えてこない。それがVLOOKUP経験者がXLOOKUP関数に乗り換えられない一番の理由です。</p>



<p class="wp-block-paragraph">この記事では、ExcelのXLOOKUP関数を「移行判断フロー」と「VLOOKUP→XLOOKUP 数式書き換えチートシート」を軸に解説します。読んだその日に既存シートを書き換えられる構成にしました。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>この記事は次のような人におすすめ</strong><br>&#8211; VLOOKUPは使えるがXLOOKUPにまだ移行できていない人<br>&#8211; 既存のVLOOKUP数式をどう書き換えればいいか知りたい人<br>&#8211; 複数条件や末尾検索など、応用の壁で止まっている人</p></blockquote>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">XLOOKUP関数とは？（読み方・役割・対応バージョン）</a><ol><li><a href="#toc2" tabindex="0">読み方と基本的な役割</a></li><li><a href="#toc3" tabindex="0">対応バージョン（Excel 2021 / Microsoft 365）</a></li></ol></li><li><a href="#toc4" tabindex="0">XLOOKUP関数の書き方（基本構文と引数の使い分け）</a><ol><li><a href="#toc5" tabindex="0">基本構文と必須3引数</a></li><li><a href="#toc6" tabindex="0">第4引数：見つからない場合の指定</a></li><li><a href="#toc7" tabindex="0">第5引数：一致モードの実務シーン別使い分け</a></li><li><a href="#toc8" tabindex="0">第6引数：検索モードの実務シーン別使い分け</a></li></ol></li><li><a href="#toc9" tabindex="0">VLOOKUPからの移行ガイド｜判断フローと数式書き換えチートシート</a><ol><li><a href="#toc10" tabindex="0">移行判断フロー（3問で決まる）</a></li><li><a href="#toc11" tabindex="0">完全移行してよいケース・見送るケース</a></li><li><a href="#toc12" tabindex="0">古いExcelユーザーとの共有がある場合の対処</a></li><li><a href="#toc13" tabindex="0">VLOOKUP→XLOOKUP 数式書き換えチートシート（6パターン）</a></li></ol></li><li><a href="#toc14" tabindex="0">実務活用パターン集</a><ol><li><a href="#toc15" tabindex="0">スピルで複数列を一括取得する</a></li><li><a href="#toc16" tabindex="0">末尾から検索して最新データを取得する</a></li><li><a href="#toc17" tabindex="0">ネストして2段階検索する</a></li><li><a href="#toc18" tabindex="0">ワイルドカードで部分一致検索する</a></li><li><a href="#toc19" tabindex="0">複数条件で検索する</a></li></ol></li><li><a href="#toc20" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc21" tabindex="0">#N/Aエラー（原因別対処表）</a></li><li><a href="#toc22" tabindex="0">#VALUE!エラー（範囲サイズの不一致）</a></li><li><a href="#toc23" tabindex="0">#SPILL!エラー（出力先にデータが存在）</a></li><li><a href="#toc24" tabindex="0">#NAME?エラー（バージョン非対応）</a></li><li><a href="#toc25" tabindex="0">間違った値が返るケース</a></li></ol></li><li><a href="#toc26" tabindex="0">まとめ</a><ol><li><a href="#toc27" tabindex="0">関連記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">XLOOKUP関数とは？（読み方・役割・対応バージョン）</span></h2>



<p class="wp-block-paragraph">ExcelのXLOOKUP関数は、VLOOKUPの弱点をまとめて解消した次世代の検索関数です。まずは読み方と役割、使える環境を押さえておきましょう。</p>



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



<p class="wp-block-paragraph">XLOOKUPは「エックスルックアップ」と読みます。名前の「X」には「次世代」「拡張」という意味が込められています。</p>



<p class="wp-block-paragraph">やっていることはVLOOKUPと同じです。「この値を検索して、対応するデータを持ってきて」という指示を出す関数です。</p>



<p class="wp-block-paragraph">ただし使い勝手が大きく進化しています。列番号の指定が不要になり、左方向の検索もできます。エラー処理も引数ひとつで完結します。</p>



<p class="wp-block-paragraph">VLOOKUPで感じていた「列がズレて壊れる」「左の列が検索できない」といった不満が、ほぼ解消されると考えてください。</p>



<h3 class="wp-block-heading"><span id="toc3">対応バージョン（Excel 2021 / Microsoft 365）</span></h3>



<p class="wp-block-paragraph">XLOOKUP関数が使えるのは、次の環境です。</p>



<ul class="wp-block-list"><li>Excel for Microsoft 365</li><li>Excel 2024</li><li>Excel 2021（Mac版を含む）</li><li>Excel for Web / iPad / iPhone / Android</li></ul>



<p class="wp-block-paragraph">一方でExcel 2016・2019では使えません。これらの古いバージョンで開くと、関数として認識されずエラーになります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>会社のパソコンがExcel 2019以前なら、<a href="https://mashukabu.com/excel-function-howto-use-vlookup/">VLOOKUP関数</a>や<a href="https://mashukabu.com/excel-function-howto-use-index/">INDEX関数</a> + <a href="https://mashukabu.com/excel-function-howto-use-match/">MATCH関数</a>で同じことができます。</p></blockquote>



<p class="wp-block-paragraph">なお、GoogleスプレッドシートでもXLOOKUPは使えます。2022年8月から対応し、引数の構成もExcelとほぼ同じです。Sheetsでの使い方は<a href="https://mashukabu.com/spreadsheet-xlookup/">スプレッドシートのXLOOKUP関数の解説記事</a>を参照してください。</p>



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



<p class="wp-block-paragraph">ここではXLOOKUP関数の書き方を、必須の3引数から実務シーン別の使い分けまで解説します。引数は全部で6つありますが、最初に覚えるのは3つだけで十分です。</p>



<h3 class="wp-block-heading"><span id="toc5">基本構文と必須3引数</span></h3>



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



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



<p class="wp-block-paragraph">引数は6つありますが、必須は最初の3つだけです。残り3つは省略できます。</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>A2:A100</td></tr><tr><td>戻り配列</td><td>必須</td><td>結果として返したい範囲</td><td>B2:B100</td></tr><tr><td>見つからない場合</td><td>省略可</td><td>該当なし時に表示する値</td><td>&#8220;該当なし&#8221;</td></tr><tr><td>一致モード</td><td>省略可</td><td>検索の一致方法（0/-1/1/2）</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">具体例で見てみましょう。次のような社員マスタがA〜C列にあるとします。</p>



<figure class="wp-block-table"><table><thead><tr><th>A列（社員番号）</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">社員番号「E002」から氏名を取得するには、こう書きます。</p>



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



<p class="wp-block-paragraph">この数式の結果は「鈴木」です。「A列で探して、B列を返す」と直感的に読めます。</p>



<p class="wp-block-paragraph">VLOOKUPの「列番号」がなくなったのが最大の変化です。検索範囲と戻り配列を別々に指定するため、列の挿入や削除で数式が壊れません。</p>



<h3 class="wp-block-heading"><span id="toc6">第4引数：見つからない場合の指定</span></h3>



<p class="wp-block-paragraph">検索値が見つからなかったときに返す値を、第4引数で指定できます。</p>



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



<p class="wp-block-paragraph">「E999」は社員マスタに存在しないため、この数式の結果は「不明」になります。</p>



<p class="wp-block-paragraph">VLOOKUPでは見つからない場合の処理を<a href="https://mashukabu.com/excel-function-howto-use-iferror/">IFERROR関数</a>で囲む必要がありました。XLOOKUPなら引数ひとつで済むので、数式がすっきりします。</p>



<p class="wp-block-paragraph">なお第4引数を省略すると、見つからないときは#N/Aエラーが返ります。実務では「該当なし」や空文字 <code>""</code> を指定しておくのがおすすめです。</p>



<h3 class="wp-block-heading"><span id="toc7">第5引数：一致モードの実務シーン別使い分け</span></h3>



<p class="wp-block-paragraph">第5引数の一致モードでは、検索の一致方法を4種類から選べます。</p>



<figure class="wp-block-table"><table><thead><tr><th>値</th><th>動作</th><th>実務シーン例</th></tr></thead><tbody><tr><td>0（既定）</td><td>完全一致。なければ#N/A</td><td>社員番号・商品コード検索（実務の9割）</td></tr><tr><td>-1</td><td>完全一致。なければ次に小さい値</td><td>料金表の下限マッチ・在庫照合</td></tr><tr><td>1</td><td>完全一致。なければ次に大きい値</td><td>しきい値の上限マッチ</td></tr><tr><td>2</td><td>ワイルドカード一致（<code>*</code> / <code>?</code> / <code>~</code>）</td><td>「東京を含む」などの部分一致検索</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">省略時は完全一致（0）になります。ここはVLOOKUPと正反対なので要注意です。</p>



<p class="wp-block-paragraph">VLOOKUPの第4引数の既定値はTRUE（近似一致＝だいたい近い値を拾う動作）でした。XLOOKUPは既定で完全一致なので、「指定を忘れて変な値が返る」トラブルが減ります。</p>



<p class="wp-block-paragraph"><code>-1</code>（次に小さい値）が活きるのは、価格帯テーブルの照合です。たとえば「3000円以上は送料無料」のような区切りを、しきい値の表から拾うときに使います。</p>



<h3 class="wp-block-heading"><span id="toc8">第6引数：検索モードの実務シーン別使い分け</span></h3>



<p class="wp-block-paragraph">第6引数の検索モードでは、検索する方向を指定できます。</p>



<figure class="wp-block-table"><table><thead><tr><th>値</th><th>動作</th><th>実務シーン例</th></tr></thead><tbody><tr><td>1（既定）</td><td>先頭から末尾へ検索</td><td>通常の検索</td></tr><tr><td>-1</td><td>末尾から先頭へ逆方向検索</td><td>更新履歴から最新データを取得</td></tr><tr><td>2</td><td>バイナリ検索（昇順前提）</td><td>大量データの高速検索</td></tr><tr><td>-2</td><td>バイナリ検索（降順前提）</td><td>大量データの高速検索</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">VLOOKUPは常に上から下への一方向検索でした。XLOOKUPなら <code>-1</code> を指定すると末尾から検索できます。</p>



<p class="wp-block-paragraph">これが効くのは、同じキーが何度も登場するデータです。受注履歴や更新ログから「いちばん新しい1件」を取りたいとき、<code>-1</code> だけで最新行を拾えます。</p>



<p class="wp-block-paragraph"><code>2</code> / <code>-2</code> のバイナリ検索は、データが並べ替え済みであることが前提です。数万行を超えるような大量データの検索を高速化したいときに検討します。並べ替えていないデータに使うと誤った値が返るので注意してください。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>実務の9割は第4引数（見つからない場合）までで足ります。第5・第6引数は「近似で拾いたい」「最新を取りたい」「大量データを速くしたい」という明確な目的があるときだけ使えば十分です。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc9">VLOOKUPからの移行ガイド｜判断フローと数式書き換えチートシート</span></h2>



<p class="wp-block-paragraph">XLOOKUPが優れていると分かっても、「いま使っているVLOOKUPを全部書き換えていいのか」は別の問題です。ここでは移行してよいかどうかを判断するフローを示します。</p>



<h3 class="wp-block-heading"><span id="toc10">移行判断フロー（3問で決まる）</span></h3>



<p class="wp-block-paragraph">次の3問に順番に答えると、移行してよいかが決まります。</p>



<p class="wp-block-paragraph"><strong>質問1：使っているExcelはどのバージョンですか？</strong></p>



<ul class="wp-block-list"><li>Microsoft 365 / Excel 2024 / Excel 2021 → 質問2へ</li><li>Excel 2019以前 → XLOOKUPは使えません。VLOOKUPまたはINDEX+MATCHを維持してください</li></ul>



<p class="wp-block-paragraph"><strong>質問2：このファイルを古いExcelの人と共有しますか？</strong></p>



<ul class="wp-block-list"><li>共有しない（自分専用・全員365） → 質問3へ。基本的に移行OK</li><li>共有する → 後述の「古いExcelユーザーとの共有がある場合」を参照</li></ul>



<p class="wp-block-paragraph"><strong>質問3：いまの用途はどれですか？</strong></p>



<ul class="wp-block-list"><li>左方向の検索が必要 → XLOOKUPに移行する価値が大きい</li><li>複数条件や複数列の一括取得が必要 → XLOOKUPに移行する価値が大きい</li><li>右方向の単純な検索だけ → どちらでも可。新規作成分から徐々に移行でOK</li></ul>



<p class="wp-block-paragraph">この3問で「完全移行してよいか」「部分的にとどめるか」が見えてきます。</p>



<h3 class="wp-block-heading"><span id="toc11">完全移行してよいケース・見送るケース</span></h3>



<p class="wp-block-paragraph">判断の目安を整理します。</p>



<p class="wp-block-paragraph"><strong>完全移行してよいケース</strong></p>



<ul class="wp-block-list"><li>関係者全員がMicrosoft 365 / Excel 2021以降</li><li>左方向検索や複数列取得を頻繁に使う</li><li>列の挿入・削除が多く、VLOOKUPの列番号ズレに悩まされている</li></ul>



<p class="wp-block-paragraph"><strong>移行を見送る・部分的にとどめるケース</strong></p>



<ul class="wp-block-list"><li>古いExcelの人とファイルを共有する</li><li>既存シートにVLOOKUPが大量にあり、書き換えコストが見合わない</li><li>右方向の単純検索だけで完結していて困っていない</li></ul>



<p class="wp-block-paragraph">困っていないなら、無理に全部書き換える必要はありません。新規に作る数式からXLOOKUPに切り替えるだけでも十分です。</p>



<h3 class="wp-block-heading"><span id="toc12">古いExcelユーザーとの共有がある場合の対処</span></h3>



<p class="wp-block-paragraph">ファイルの共有相手にExcel 2019以前の人がいる場合、XLOOKUPで作った数式は相手の環境で#NAME?エラーになります。</p>



<p class="wp-block-paragraph">対処の選択肢は次の3つです。</p>



<ul class="wp-block-list"><li>そのシートだけVLOOKUPまたはINDEX+MATCHで作る（互換性を最優先）</li><li>共有相手に365へのアップグレードを依頼する（中長期の解決）</li><li>計算結果を「値貼り付け」で固定してから共有する（数式を渡さない）</li></ul>



<p class="wp-block-paragraph">どこまで割り切るかは運用次第です。なお、VLOOKUP・XLOOKUP・INDEX+MATCHの使い分けに迷ったら、<a href="https://mashukabu.com/excel-vlookup-xlookup-index-match-comparison/">使い分け完全ガイド</a>で選び方フローを確認してください。</p>



<h3 class="wp-block-heading"><span id="toc13">VLOOKUP→XLOOKUP 数式書き換えチートシート（6パターン）</span></h3>



<p class="wp-block-paragraph">ここがこの記事の核心です。よくあるVLOOKUP数式を、XLOOKUPにどう書き換えるかをパターン別に並べました。手元のシートと照らし合わせて、そのまま書き換えてください。</p>



<p class="wp-block-paragraph">前提となるデータは次のとおりです。A列＝社員番号、B列＝氏名、C列＝部署、D列＝内線とします。検索値はF2セルに入れる想定です。</p>



<h4 class="wp-block-heading">パターン1：単純置換（基本の書き換え）</h4>



<p class="wp-block-paragraph">最も多い「社員番号から氏名を引く」パターンです。</p>



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



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



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



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



<p class="wp-block-paragraph">列番号「2」が、戻り配列「B:B」に置き換わります。完全一致を表す <code>FALSE</code> も不要です。XLOOKUPは既定が完全一致だからです。</p>



<h4 class="wp-block-heading">パターン2：左方向検索への書き換え</h4>



<p class="wp-block-paragraph">VLOOKUPでは不可能だった「氏名から社員番号を引く」検索です。検索キーが戻したい列より右にあるケースです。</p>



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



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



<p class="wp-block-paragraph">VLOOKUP単体ではできず、INDEX+MATCHを使うしかありませんでした。</p>



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



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



<p class="wp-block-paragraph">検索範囲と戻り配列を入れ替えるだけです。左でも右でも同じ書き方で検索できます。</p>



<h4 class="wp-block-heading">パターン3：IFERROR統合（第4引数に移行）</h4>



<p class="wp-block-paragraph">「見つからないときは空欄にする」処理です。VLOOKUPではIFERRORで囲んでいました。</p>



<p class="wp-block-paragraph"><strong>Before（VLOOKUP）</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>After（XLOOKUP）</strong></p>



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



<p class="wp-block-paragraph">IFERRORで囲む構造が消え、第4引数 <code>""</code> に統合されます。数式が短く読みやすくなります。</p>



<h4 class="wp-block-heading">パターン4：スピルで複数列を一括取得</h4>



<p class="wp-block-paragraph">「氏名・部署・内線を3つ並べて取得する」処理です。VLOOKUPでは列ごとに3本の数式が必要でした。</p>



<p class="wp-block-paragraph"><strong>Before（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>After（XLOOKUP・1本）</strong></p>



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



<p class="wp-block-paragraph">戻り配列に複数列（B:D）を指定すると、結果が隣のセルへ自動的にあふれ出ます。これがスピル（1つの数式の結果が複数セルに展開される動作）です。1本の数式で3列ぶんを取得できます。</p>



<h4 class="wp-block-heading">パターン5：複数条件検索（&#038;連結）</h4>



<p class="wp-block-paragraph">「社員番号と部署の両方が一致する行」を探す処理です。VLOOKUPでは補助列が必須でした。</p>



<p class="wp-block-paragraph"><strong>Before（VLOOKUP・補助列が必要）</strong></p>



<pre class="wp-block-code"><code>補助列 G2 =A2&amp;&quot;,&quot;&amp;C2 を全行に用意し、隣のH列に氏名を並べ、I2に部署の検索条件を入力したうえで
=VLOOKUP(F2&amp;&quot;,&quot;&amp;I2, G:H, 2, FALSE)</code></pre>



<p class="wp-block-paragraph"><strong>After（XLOOKUP・補助列不要）</strong></p>



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



<p class="wp-block-paragraph">検索値と検索範囲をそれぞれ <code>&</code> で連結します。間に区切り文字（ここでは <code>,</code>）を挟むのがポイントです。</p>



<p class="wp-block-paragraph">区切り文字を入れないと「AA」＋「B」と「A」＋「AB」が同じ文字列になります。別の行を誤ってヒットさせる恐れがあるので、区切り文字を挟んで衝突を防ぎます。</p>



<h4 class="wp-block-heading">パターン6：末尾検索で最新データを取得</h4>



<p class="wp-block-paragraph">「更新履歴の中から最新の1件を取得する」処理です。同じキーが複数回出てくるデータで使います。</p>



<p class="wp-block-paragraph"><strong>Before（VLOOKUP・最新が取れない）</strong></p>



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



<p class="wp-block-paragraph">VLOOKUPは先頭から検索するため、最初に登場した（＝最も古い）行しか返せませんでした。</p>



<p class="wp-block-paragraph"><strong>After（XLOOKUP・末尾から検索）</strong></p>



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



<p class="wp-block-paragraph">第6引数に <code>-1</code> を指定すると末尾から検索します。これで最新行を取得できます。第5引数の <code>0</code> は完全一致の指定です。</p>



<h2 class="wp-block-heading"><span id="toc14">実務活用パターン集</span></h2>



<p class="wp-block-paragraph">チートシートの応用として、実務で頻出する活用パターンを掘り下げます。手元のシートに当てはめながら読んでください。</p>



<h3 class="wp-block-heading"><span id="toc15">スピルで複数列を一括取得する</span></h3>



<p class="wp-block-paragraph">戻り配列に複数列を指定すると、結果がスピルで展開されます。先ほどの社員マスタで氏名と部署を同時に取得してみます。</p>



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



<p class="wp-block-paragraph">この数式の結果は「鈴木」「総務部」の2セルにスピルします。VLOOKUPでは列ごとに数式を分けていた作業が、1本で済みます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>スピル先のセルにすでにデータがあると#SPILL!エラーになります。出力先のセルは空けておいてください。複数結果をすべて抽出したい場合は<a href="https://mashukabu.com/excel-function-howto-use-filter/">FILTER関数</a>も検討すると良いでしょう。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc16">末尾から検索して最新データを取得する</span></h3>



<p class="wp-block-paragraph">同じ検索値が複数回登場するデータで、最新のレコードを取得したい場面です。受注履歴や更新ログで役立ちます。</p>



<pre class="wp-block-code"><code>=XLOOKUP(F2, A2:A1000, B2:B1000, &quot;データなし&quot;, 0, -1)</code></pre>



<p class="wp-block-paragraph">第6引数の <code>-1</code> で末尾から検索します。データを新しい順に追記している表なら、これで最新の1件を拾えます。</p>



<h3 class="wp-block-heading"><span id="toc17">ネストして2段階検索する</span></h3>



<p class="wp-block-paragraph">部署コードから部署名を引き、さらに担当者を引く。こうした2段階の検索もネスト（関数の入れ子）で対応できます。</p>



<pre class="wp-block-code"><code>=XLOOKUP(XLOOKUP(A2, 部署!A:A, 部署!B:B), 担当者!A:A, 担当者!B:B)</code></pre>



<p class="wp-block-paragraph">内側のXLOOKUPの結果を、外側のXLOOKUPの検索値として渡しています。中継のマスタをまたいで検索したいときに便利です。</p>



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



<p class="wp-block-paragraph">第5引数に <code>2</code> を指定すると、ワイルドカードが使えます。「東京を含む住所」のような部分一致検索が可能です。</p>



<pre class="wp-block-code"><code>=XLOOKUP(&quot;*東京*&quot;, A2:A100, B2:B100, &quot;該当なし&quot;, 2)</code></pre>



<p class="wp-block-paragraph"><code>*</code> は任意の文字列、<code>?</code> は任意の1文字にマッチします。セルの値で検索する場合は <code>&</code> で連結します。</p>



<pre class="wp-block-code"><code>=XLOOKUP(&quot;*&quot;&amp;E2&amp;&quot;*&quot;, A2:A100, B2:B100, &quot;該当なし&quot;, 2)</code></pre>



<h3 class="wp-block-heading"><span id="toc19">複数条件で検索する</span></h3>



<p class="wp-block-paragraph">複数条件の検索は、チートシートのパターン5で扱った <code>&</code> 連結が基本です。区切り文字を挟む形を再掲します。</p>



<pre class="wp-block-code"><code>=XLOOKUP(E2&amp;&quot;,&quot;&amp;F2, A2:A100&amp;&quot;,&quot;&amp;B2:B100, C2:C100, &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">Microsoft 365ならそのままEnterで動作します。VLOOKUPのように補助列を作る必要はありません。XLOOKUPの内部動作をさらに理解したい場合は、位置を返す<a href="https://mashukabu.com/excel-function-howto-use-xmatch/">XMATCH関数</a>もあわせて確認すると理解が深まります。</p>



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



<p class="wp-block-paragraph">最後に、XLOOKUPでつまずきやすいエラーと対処法をまとめます。原因の切り分けができれば、ほとんどはすぐ解決します。</p>



<h3 class="wp-block-heading"><span id="toc21">#N/Aエラー（原因別対処表）</span></h3>



<p class="wp-block-paragraph">「検索値が見つからない」という意味のエラーです。原因はいくつかあります。</p>



<figure class="wp-block-table"><table><thead><tr><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>検索値がデータに存在しない</td><td>第4引数で「該当なし」等を指定する</td></tr><tr><td>データ型の不一致（数値と文字列）</td><td><a href="https://mashukabu.com/excel-function-howto-use-value/">VALUE関数</a>で型を統一する</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></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>第4引数を設定しておけば#N/Aエラーそのものを回避できます。VLOOKUPでIFERRORを使っていた方にはうれしいポイントです。</p></blockquote>



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



<p class="wp-block-paragraph">検索範囲と戻り配列のサイズが揃っていないと発生します。</p>



<pre class="wp-block-code"><code>=XLOOKUP(A2, B2:B100, C2:C50)</code></pre>



<p class="wp-block-paragraph">この例は検索範囲が99行なのに、戻り配列が49行です。両方の行数を揃えれば解消します。</p>



<h3 class="wp-block-heading"><span id="toc23">#SPILL!エラー（出力先にデータが存在）</span></h3>



<p class="wp-block-paragraph">スピルの出力先にすでにデータがあると発生します。結果が展開されるセルをすべて空けてください。</p>



<p class="wp-block-paragraph">なお、テーブル（ListObject）の中でスピルする数式を使った場合にも#SPILL!が出ることがあります。その場合はテーブルの外で使うか、戻り配列を単一列に絞ってください。</p>



<h3 class="wp-block-heading"><span id="toc24">#NAME?エラー（バージョン非対応）</span></h3>



<p class="wp-block-paragraph">対応していないバージョンで使うと表示されます。Excel 2019以前ではXLOOKUPが未定義の関数として扱われるためです。</p>



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



<ul class="wp-block-list"><li>Excel 2021またはMicrosoft 365にアップグレードする</li><li><a href="https://mashukabu.com/excel-function-howto-use-vlookup/">VLOOKUP関数</a>やINDEX+<a href="https://mashukabu.com/excel-function-howto-use-match/">MATCH関数</a>で代替する</li></ul>



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



<p class="wp-block-paragraph">エラーにはならないのに、期待と違う値が返ることがあります。</p>



<figure class="wp-block-table"><table><thead><tr><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>検索範囲に絶対参照をつけ忘れている</td><td>F4キーで$記号を付ける</td></tr><tr><td>戻り配列の指定が間違っている</td><td>返したい列をもう一度確認する</td></tr><tr><td>一致モードの指定ミス</td><td>通常は0（完全一致）を使う</td></tr><tr><td>検索モード2/-2を未ソートで使った</td><td>並べ替えるか、既定の1に戻す</td></tr></tbody></table></figure>



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



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



<ul class="wp-block-list"><li>基本は <code>=XLOOKUP(検索値, 検索範囲, 戻り配列)</code> の3引数</li><li>列番号が不要なので、列の追加・削除で壊れない</li><li>検索範囲と戻り配列を入れ替えれば左方向検索もできる</li><li>第4引数でエラー時の表示を指定でき、IFERRORが不要</li><li>スピル対応で複数列を1本の数式で一括取得できる</li><li>対応バージョンはExcel 2021 / 2024 / Microsoft 365</li></ul>



<p class="wp-block-paragraph">移行に迷ったら、まず3問の移行判断フローでバージョン・共有相手・用途を確認してください。そのうえでチートシートを見ながら、手元のVLOOKUPを1つずつ書き換えていけば大丈夫です。</p>



<p class="wp-block-paragraph">全部を一度に書き換える必要はありません。新規に作る数式からXLOOKUPに切り替えるだけでも、シートは着実に壊れにくくなっていきます。</p>



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-vlookup-xlookup-index-match-comparison/">VLOOKUP・XLOOKUP・INDEX MATCH使い分け完全ガイド｜もう迷わない選び方フロー付き</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-vlookup/">ExcelのVLOOKUP関数の使い方｜引数・エラー対処・INDEX+MATCHとの使い分けまで</a></li><li><a href="https://mashukabu.com/spreadsheet-xlookup/">スプレッドシートのXLOOKUP関数の使い方｜VLOOKUPとの違い・逆方向検索・スピル活用まで実例解説</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-xmatch/">ExcelのXMATCH関数の使い方｜MATCHとの違いを解説</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-iferror/">ExcelのIFERROR関数の使い方｜エラー処理の基本と実務活用</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-filter/">【Excel】FILTER関数の使い方完全ガイド – 初心者から中級者まで役立つデータ抽出テクニック</a></li><li><a href="https://mashukabu.com/excel-error-value-list/">【Excel】セルに表示されるエラーの種類と原因、対処方法を解説</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-xlookup/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
