<?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/%E6%95%B0%E5%BC%8F%E6%9B%B8%E3%81%8D%E6%8F%9B%E3%81%88/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.1</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>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-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">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>
