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

<image>
	<url>https://mashukabu.com/wp-content/uploads/2022/04/cropped-site-icon-32x32.png</url>
	<title>XMATCH関数 &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<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>スプレッドシートで<a href="https://mashukabu.com/spreadsheet-match-function/">MATCH関数</a>を使っていて、「末尾から検索できたらいいのに」と感じたことはありませんか？</p>



<p>追記型のリストで同じ名前が並んでいると、最新のデータだけ拾いたいのに先頭側がヒットしてしまいますよね。</p>



<p>そこで活躍するのがXMATCH関数です。逆方向検索やワイルドカード専用モードなど、MATCHにはない機能が揃っています。</p>



<p>この記事では、XMATCH関数の基本から実務活用まで解説します。</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">スプレッドシートのXMATCH関数とは？</a></li><li><a href="#toc2" tabindex="0">XMATCH関数の書き方（構文と引数）</a><ol><li><a href="#toc3" tabindex="0">基本構文</a></li><li><a href="#toc4" tabindex="0">引数の説明</a></li><li><a href="#toc5" tabindex="0">一致モード4種の違い</a></li><li><a href="#toc6" tabindex="0">検索モード4種の違い</a></li></ol></li><li><a href="#toc7" tabindex="0">XMATCH関数の基本的な使い方</a><ol><li><a href="#toc8" tabindex="0">完全一致で位置を取得する（一致モード 0）</a></li><li><a href="#toc9" tabindex="0">ワイルドカードで部分一致検索する（一致モード 2）</a></li><li><a href="#toc10" tabindex="0">近似一致で最も近い値を取得する（一致モード -1 / 1）</a></li></ol></li><li><a href="#toc11" tabindex="0">実践的な使い方・応用例</a><ol><li><a href="#toc12" tabindex="0">逆方向検索で最新データの位置を取得する</a></li><li><a href="#toc13" tabindex="0">INDEX+XMATCHで左側の列を検索する</a></li><li><a href="#toc14" tabindex="0">INDEX+XMATCHでクロス検索する（行と列を同時に指定）</a></li><li><a href="#toc15" tabindex="0">IFERRORと組み合わせてエラーを防ぐ</a></li><li><a href="#toc16" tabindex="0">バイナリサーチで大量データを高速検索する</a></li></ol></li><li><a href="#toc17" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc18" tabindex="0">XMATCH関数とMATCH関数の違い・使い分け</a><ol><li><a href="#toc19" tabindex="0">どちらを選ぶべき？</a></li></ol></li><li><a href="#toc20" tabindex="0">まとめ</a><ol><li><a href="#toc21" tabindex="0">関連記事</a></li></ol></li></ol>
    </div>
  </div>

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



<p>XMATCH関数（読み方: エックスマッチ関数）は、検索範囲から指定した値を探し、その位置（何番目か）を数値で返す関数です。「X」はExtended（拡張）の意味で、<a href="https://mashukabu.com/spreadsheet-match-function/">MATCH関数</a>を強化した上位互換にあたります。</p>



<p>XMATCH関数にできることをまとめると、次のとおりです。</p>



<ul class="wp-block-list"><li>検索値が範囲の何番目にあるかを数値で返す</li><li>完全一致・近似一致・ワイルドカード・正規表現の4種類の一致モードに対応する</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>XMATCH関数が返すのは値そのものではなく「位置番号」です。値を直接取得したい場合は、INDEX関数や<a href="https://mashukabu.com/spreadsheet-xlookup/">XLOOKUP関数</a>と組み合わせて使います。</p></blockquote>



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



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



<p>XMATCH関数の構文はこちらです。</p>



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



<p>引数は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;営業部&#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, 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>省略した場合は「先頭から完全一致で検索」という最もシンプルな動作になります。MATCH関数とは異なり、デフォルトが完全一致です。引数の指定ミスが起きにくいのがメリットです。</p>



<h3 class="wp-block-heading"><span id="toc5">一致モード4種の違い</span></h3>



<p>一致モードは検索値と範囲内の値をどう照合するかを決めます。</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><tr><td>2</td><td>ワイルドカード一致（*、?、~）</td><td>不問</td></tr></tbody></table></figure>



<p>MATCH関数の近似一致ではデータの並べ替えが必須でしたが、XMATCHなら並べ替え不要で近似一致ができます。</p>



<h3 class="wp-block-heading"><span id="toc6">検索モード4種の違い</span></h3>



<p>検索モードは範囲をどの方向から探すかを決めます。</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>通常は先頭から検索（1）で問題ありません。末尾から検索（-1）はXMATCH関数の目玉機能で、MATCH関数にはない機能です。</p>



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



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



<p>次の社員管理表を例に見てみましょう。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>



<p>部署列（C2:C6）の中で「総務部」が何番目にあるか調べるにはこう書きます。</p>



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



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



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



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



<p>部分一致で検索したいときは、一致モードに「2」を指定します。<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>*（アスタリスク）</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>たとえば、氏名列から「鈴木」で始まる人の位置を調べるにはこう書きます。</p>



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



<p>結果は「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）ではワイルドカードは文字として扱われるので注意してください。</p></blockquote>



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



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



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



<p>たとえば、点数テーブルで85点のランクを調べたいとします。テーブルに85がなくても、以下のように書けます。80の位置を返してくれます。</p>



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



<p>この式は「3」を返します。85以下の最大値は80で、3番目だからです。</p>



<p>MATCH関数の近似一致ではデータの昇順・降順ソートが必須でした。XMATCHなら並べ替え不要で近似一致ができます。</p>



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



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



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



<p>これが活躍するのは「追記型の台帳」です。日報や作業ログのように下へ追記していくシートを想像してください。同じ担当者名が複数行にあるとき、最新（最後）のエントリの位置を取得できます。</p>



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



<p>MATCH関数では逆順検索ができなかったため、回りくどい数式が必要でした。XMATCHなら検索モードに-1を指定するだけで解決です。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>逆方向検索でも返る値は「先頭からの位置番号」です。たとえばB2:B100の80番目に該当データがあれば、検索方向に関係なく「80」が返ります。</p></blockquote>



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



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



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



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



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



<p>処理の流れを順に見ていきます。</p>



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



<p>検索範囲（C列）と戻り値の範囲（A列）を別々に指定できるため、左方向の検索も問題ありません。</p>



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



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



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



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



<p>処理の流れを見てみましょう。</p>



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



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



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



<p>XMATCH関数は検索値が見つからないと#N/Aエラーを返します。IFERROR関数で囲めば、エラー表示を防げます。</p>



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



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



<p>INDEX+XMATCHと組み合わせる場合は、全体をIFERRORで囲みます。</p>



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



<p>共有シートなど他の人が使う表では、IFERRORを付けておくのがおすすめです。</p>



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



<p>データが大量（数万行以上）で、すでに並べ替え済みの場合は、バイナリサーチが使えます。</p>



<ul class="wp-block-list"><li><strong>検索モード 2</strong>: 昇順ソート済みデータに対して二分探索</li><li><strong>検索モード -2</strong>: 降順ソート済みデータに対して二分探索</li></ul>



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



<p>通常の検索より高速ですが、データが正しくソートされていないと誤った結果を返します。少量データなら通常検索で十分です。無理に使う必要はありません。</p>



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



<p>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）を確認する</td></tr></tbody></table></figure>



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



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



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



<p>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></tbody></table></figure>



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



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



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



<p>なお、値そのものを取得したい場合は<a href="https://mashukabu.com/spreadsheet-xlookup/">XLOOKUP関数</a>のほうがシンプルに書けます。XMATCH関数は位置番号が必要なケースや、INDEX関数との組み合わせでクロス検索をしたいケースで特に威力を発揮します。</p>



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



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



<ul class="wp-block-list"><li>構文は =XMATCH(検索値, 検索範囲, 一致モード, 検索モード) の4引数。第3・第4引数は省略可</li><li>デフォルトが完全一致なので、引数の指定ミスが起きにくい</li><li>逆方向検索（検索モード-1）で最新データの位置を簡単に取得できる</li><li>近似一致で並べ替え不要になり、手間が減った</li><li>ワイルドカード一致は専用モード（一致モード2）で使用する</li><li><a href="https://mashukabu.com/spreadsheet-index-function/">INDEX関数</a>と組み合わせれば、縦横同時のクロス検索が可能</li></ul>



<p>まずは <code>=XMATCH("検索値", 範囲)</code> の完全一致パターンから試してみてください。MATCH関数を使っている方は、XMATCHに切り替えるだけで検索がグッと楽になりますよ。</p>



<h3 class="wp-block-heading"><span id="toc21">関連記事</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-lookup-function/">スプレッドシートのLOOKUP関数の使い方｜検索（1行/1列）</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-xmatch-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのXMATCH関数の使い方｜MATCHとの違いを解説</title>
		<link>https://mashukabu.com/excel-function-howto-use-xmatch/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-xmatch/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Fri, 22 Jul 2022 07:33:10 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[INDEX関数]]></category>
		<category><![CDATA[MATCH関数]]></category>
		<category><![CDATA[XMATCH関数]]></category>
		<category><![CDATA[ワイルドカード]]></category>
		<category><![CDATA[完全一致]]></category>
		<category><![CDATA[検索関数]]></category>
		<category><![CDATA[逆順検索]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=2418</guid>

					<description><![CDATA[ExcelのXMATCH関数の使い方を解説。MATCH関数との違いを比較表で整理し、一致モード4種・検索モード4種の使い分けをわかりやすく紹介。ワイルドカード検索・逆順検索の実務活用例、INDEX+XMATCHの組み合わせ技まで収録。]]></description>
										<content:encoded><![CDATA[
<p>ExcelでMATCH関数を使っていて、「逆順に検索できたらいいのに」と感じたことはありませんか？ データが増えるほど、検索の柔軟性が欲しくなりますよね。</p>



<p>XMATCH関数なら、その悩みをまるっと解決できます。 逆順検索やワイルドカード検索など、MATCHにはない機能が使えるんです。 この記事では、XMATCH関数の使い方を基本から実務活用まで解説します。</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">XMATCH関数とは？MATCHとの違いを比較表で整理</a><ol><li><a href="#toc2" tabindex="0">XMATCH関数の基本情報（対応バージョン）</a></li><li><a href="#toc3" tabindex="0">MATCHとXMATCHの違い一覧（比較表）</a></li></ol></li><li><a href="#toc4" tabindex="0">XMATCH関数の使い方：書式と引数</a><ol><li><a href="#toc5" tabindex="0">各引数の意味と省略時の挙動</a></li></ol></li><li><a href="#toc6" tabindex="0">一致モード4種の使い分け</a><ol><li><a href="#toc7" tabindex="0">完全一致（デフォルト・0）</a></li><li><a href="#toc8" tabindex="0">以下で一致（-1）／以上で一致（1）</a></li><li><a href="#toc9" tabindex="0">ワイルドカード一致（2）の実用例</a></li></ol></li><li><a href="#toc10" tabindex="0">検索モード4種の使い分け</a><ol><li><a href="#toc11" tabindex="0">先頭から検索（デフォルト・1）</a></li><li><a href="#toc12" tabindex="0">末尾から逆順検索（-1）の実務ユースケース</a></li><li><a href="#toc13" tabindex="0">バイナリサーチ（2・-2）の使いどき</a></li></ol></li><li><a href="#toc14" tabindex="0">INDEX+XMATCHで表引きをもっと柔軟に</a><ol><li><a href="#toc15" tabindex="0">VLOOKUPより優れている理由</a></li><li><a href="#toc16" tabindex="0">INDEX+XMATCHの実務サンプル</a></li></ol></li><li><a href="#toc17" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc18" tabindex="0">#N/Aが出るケースと回避方法</a></li></ol></li><li><a href="#toc19" tabindex="0">まとめ｜XMATCHはMATCHの上位互換</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">XMATCH関数とは？MATCHとの違いを比較表で整理</span></h2>



<p>XMATCH関数は、検索範囲から指定した値を探し出し、その位置（何番目か）を数値で返す関数です。 読み方は「エックスマッチ」。「X」は Extended（拡張）を意味し、MATCH関数を強化した拡張版であることを示しています。 従来の<a href="https://mashukabu.com/excel-function-howto-use-match/">MATCH関数</a>の上位互換にあたります。</p>



<p>「位置を返す」というのがポイントです。 値そのものではなく、「上から何番目にあるか」を教えてくれます。 この位置情報を<a href="https://mashukabu.com/excel-function-howto-use-index/">INDEX関数</a>と組み合わせると、強力な表引きができます。</p>



<h3 class="wp-block-heading"><span id="toc2">XMATCH関数の基本情報（対応バージョン）</span></h3>



<p>XMATCH関数が使えるバージョンは以下のとおりです。</p>



<ul class="wp-block-list"><li>Microsoft 365（Windows / Mac）</li><li>Excel 2024（Windows / Mac）</li><li>Excel 2021（Windows / Mac）</li><li>Excel for the web（Web版）</li></ul>



<p>Excel 2019以前では使えません。 その場合はMATCH関数で代用してください。</p>



<h3 class="wp-block-heading"><span id="toc3">MATCHとXMATCHの違い一覧（比較表）</span></h3>



<p>「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>できる（search_mode=-1）</strong></td></tr><tr><td>255文字の制限</td><td>あり</td><td><strong>なし</strong></td></tr></tbody></table></figure>



<p>特に大きいのは「デフォルトが完全一致」になった点です。 MATCH関数は引数を省略すると近似一致になり、意図しない結果を返すことがありました。 XMATCHなら引数を省略しても完全一致で検索してくれます。</p>



<h2 class="wp-block-heading"><span id="toc4">XMATCH関数の使い方：書式と引数</span></h2>



<p>XMATCH関数の基本構文は次のとおりです。</p>



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



<h3 class="wp-block-heading"><span id="toc5">各引数の意味と省略時の挙動</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須</th><th>説明</th><th>省略時</th></tr></thead><tbody><tr><td>検索値（lookup_value）</td><td>○</td><td>探したい値</td><td>—</td></tr><tr><td>検索範囲（lookup_array）</td><td>○</td><td>検索する1行または1列の範囲</td><td>—</td></tr><tr><td>一致モード（match_mode）</td><td>×</td><td>一致の判定方法を指定</td><td>0（完全一致）</td></tr><tr><td>検索モード（search_mode）</td><td>×</td><td>検索する方向を指定</td><td>1（先頭から検索）</td></tr></tbody></table></figure>



<p>第3・第4引数は省略可能です。 省略すると「先頭から完全一致で検索」という最もシンプルな動作になります。</p>



<h2 class="wp-block-heading"><span id="toc6">一致モード4種の使い分け</span></h2>



<p>一致モード（match_mode）は、検索値と範囲内の値をどう照合するかを決めます。 4種類あるので、用途に合わせて選びましょう。</p>



<h3 class="wp-block-heading"><span id="toc7">完全一致（デフォルト・0）</span></h3>



<p>最も基本的なモードです。 検索値と完全に一致するセルだけを探します。</p>



<p>たとえば、社員名簿から「佐藤」の位置を調べる場合はこうなります。</p>



<pre class="wp-block-code"><code>=XMATCH(&quot;佐藤&quot;, A2:A10)</code></pre>



<p>一致モードを省略しても「0（完全一致）」になります。 見つからなければ <code>#N/A</code> エラーが返ります。</p>



<h3 class="wp-block-heading"><span id="toc8">以下で一致（-1）／以上で一致（1）</span></h3>



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



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



<p>たとえば、点数テーブルで85点のランクを調べたいとします。 テーブルに85がなくても、以下のように書けば80の位置を返してくれます。</p>



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



<p>この式は「3」を返します。85以下の最大値は80で、3番目だからです。</p>



<p>MATCH関数の近似一致ではデータの並べ替えが必須でした。 XMATCHなら並べ替え不要で近似一致ができます。 これは地味ですが、実務では大きなメリットです。</p>



<h3 class="wp-block-heading"><span id="toc9">ワイルドカード一致（2）の実用例</span></h3>



<p>部分一致で検索したいときは、一致モード「2」を使います。 <code>*</code>（任意の文字列）と <code>?</code>（任意の1文字）、<code>~</code>（ワイルドカード文字そのものを検索するエスケープ）が使えます。</p>



<p>たとえば、「田中」を含む名前を探す場合はこう書きます。</p>



<pre class="wp-block-code"><code>=XMATCH(&quot;*田中*&quot;, A2:A20, 2)</code></pre>



<p>これで「田中太郎」「田中花子」など、「田中」を含む最初のセルの位置を返します。 商品名や部署名のあいまい検索に便利ですよ。</p>



<h2 class="wp-block-heading"><span id="toc10">検索モード4種の使い分け</span></h2>



<p>検索モード（search_mode）は、範囲をどの方向から探すかを決めます。</p>



<h3 class="wp-block-heading"><span id="toc11">先頭から検索（デフォルト・1）</span></h3>



<p>上から順に検索し、最初に見つかった位置を返します。 省略時はこのモードになるので、通常はそのままでOKです。</p>



<h3 class="wp-block-heading"><span id="toc12">末尾から逆順検索（-1）の実務ユースケース</span></h3>



<p>XMATCH関数の目玉機能ともいえるのが、逆順検索です。 search_mode に「-1」を指定すると、末尾から先頭に向かって検索します。</p>



<p>これが活躍するのは「追記型の台帳」です。 たとえば、日報や作業ログのように下へ追記していくシートがあるとします。 同じ担当者名が複数行にあるとき、最新（最後）のエントリの位置を取得できます。</p>



<pre class="wp-block-code"><code>=XMATCH(&quot;佐藤&quot;, A2:A100, 0, -1)</code></pre>



<p>MATCH関数では逆順検索ができなかったため、回りくどい数式が必要でした。 XMATCHなら引数ひとつで解決です。</p>



<h3 class="wp-block-heading"><span id="toc13">バイナリサーチ（2・-2）の使いどき</span></h3>



<p>データが大量（数万行以上）で、すでに並べ替え済みの場合に使います。</p>



<ul class="wp-block-list"><li><strong>2</strong>: 昇順ソート済みデータに対して二分探索</li><li><strong>-2</strong>: 降順ソート済みデータに対して二分探索</li></ul>



<p>通常の検索より高速ですが、データが正しくソートされていないと誤った結果を返します。 少量データなら通常検索で十分なので、無理に使う必要はありません。</p>



<h2 class="wp-block-heading"><span id="toc14">INDEX+XMATCHで表引きをもっと柔軟に</span></h2>



<p>XMATCH関数の真価は、INDEX関数との組み合わせで発揮されます。</p>



<h3 class="wp-block-heading"><span id="toc15">VLOOKUPより優れている理由</span></h3>



<p><a href="https://mashukabu.com/excel-function-howto-use-vlookup/">VLOOKUP関数</a>は便利ですが、いくつかの制約があります。</p>



<ul class="wp-block-list"><li>検索列が範囲の左端にないと使えない</li><li>列番号を数値で指定するため、列の挿入でズレる</li></ul>



<p>INDEX+XMATCHなら、これらの制約がありません。 検索列が右にあっても左にあっても自在に表引きできます。</p>



<p>さらに詳しく知りたい方は、<a href="https://mashukabu.com/excel-vlookup-xlookup-index-match-comparison/">VLOOKUP・XLOOKUP・INDEX MATCH使い分け完全ガイド</a>もあわせてご覧ください。</p>



<p>なお、<a href="https://mashukabu.com/excel-function-howto-use-xlookup/">XLOOKUP関数</a>が使える環境なら、XLOOKUPのほうがシンプルに書けます。 INDEX+XMATCHは「縦横同時検索」が必要なケースで特に威力を発揮します。</p>



<h3 class="wp-block-heading"><span id="toc16">INDEX+XMATCHの実務サンプル</span></h3>



<p>下の表から「商品名」と「月」を指定して売上を取得する例です。</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>商品A</td><td>100</td><td>150</td><td>200</td></tr><tr><td>商品B</td><td>80</td><td>120</td><td>160</td></tr><tr><td>商品C</td><td>200</td><td>250</td><td>300</td></tr></tbody></table></figure>



<p>セルB3に商品名、C3に月名を入力しておくと、次の数式で交差セルの値を取得できます。</p>



<pre class="wp-block-code"><code>=INDEX(C6:E8, XMATCH(B3, B6:B8), XMATCH(C3, C5:E5))</code></pre>



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



<ol class="wp-block-list"><li><code>XMATCH(B3, B6:B8)</code> → 商品名の行番号を取得</li><li><code>XMATCH(C3, C5:E5)</code> → 月名の列番号を取得</li><li><code>INDEX</code> → 行と列が交差するセルの値を返す</li></ol>



<p>このように、XMATCHを2つ使って縦横同時検索ができます。 VLOOKUPでは実現できない柔軟な表引きです。</p>



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



<h3 class="wp-block-heading"><span id="toc18">#N/Aが出るケースと回避方法</span></h3>



<p>XMATCH関数で最もよく見るエラーが <code>#N/A</code> です。 「一致する値が見つからない」ときに発生します。</p>



<p>主な原因は次の3つです。</p>



<ul class="wp-block-list"><li><strong>スペルミスや余分なスペース</strong>: 検索値と範囲内の値が微妙に違う</li><li><strong>データ型の不一致</strong>: 検索値が数値なのに範囲内が文字列として保存されている（またはその逆）</li><li><strong>検索範囲の指定ミス</strong>: 意図した列と違う範囲を選んでいる</li></ul>



<p>データ型の問題は見落としがちです。 セルの表示が同じでも、数値と文字列では一致しません。 数式バーで「&#8217;123」のようにシングルクォートがついていたら、文字列として保存されているサインです。</p>



<p>エラーを非表示にしたい場合は、IFERROR関数で囲みます。</p>



<pre class="wp-block-code"><code>=IFERROR(XMATCH(&quot;佐藤&quot;, A2:A10), &quot;該当なし&quot;)</code></pre>



<p>ただし、IFERRORで隠すとデータの問題に気づきにくくなります。 まずは原因を特定してから対処するのがおすすめです。</p>



<h2 class="wp-block-heading"><span id="toc19">まとめ｜XMATCHはMATCHの上位互換</span></h2>



<p>XMATCH関数の使い方を振り返りましょう。</p>



<ul class="wp-block-list"><li>デフォルトが完全一致なので、引数の指定ミスが起きにくい</li><li>逆順検索（search_mode=-1）で最新データの位置を簡単に取得できる</li><li>近似一致で並べ替え不要になり、手間が減った</li><li>ワイルドカード一致で部分一致検索もカバー</li><li>255文字の制限がなくなり、長いテキストの検索にも対応</li><li>INDEX関数と組み合わせれば、縦横同時検索が可能</li></ul>



<p>MATCH関数を使っている方は、XMATCHに切り替えるだけで検索がグッと楽になりますよ。 対応バージョン（Microsoft 365 / Excel 2024 / Excel 2021）をお使いなら、ぜひ試してみてください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-xmatch/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
