Office Hack

ExcelのXMATCH関数の使い方|範囲を検索し相対的な位置を返す

  • by yoshihiro
  • Release
  • Update

2019年8月28日、Excelに新しく「XMATCH(エックス・マッチ)」関数が発表されました。MATCH関数の後継となる関数です。XLOOKUP関数と同じタイミングで発表されました。

これまでのMATCH関数では一致するものを検索する際は、3番目の引数で「0」を指定する必要がありました。一方、XMATCH関数は基本的には引数を2つ指定するだけで対応できます。またワイルドカードで検索できるなど機能も増えています。

MATCH関数は廃止されるわけではないですが、XMATCH関数の方が使いやすいので今後はスタンダードになるかもしれません。以下の記事では、XMATCH関数の基本的な使い方を紹介していきます。

XMATCH関数の一般公開は今年後半が予定されていますが、Office Insidersに参加すれば先行で使用することができます。記事の下部でOffice Insidersへの参加方法を説明していますので興味がある方はご参考ください。

書式

XMATCH関数は、指定した配列内またはセル範囲内を検索し、その項目の相対的な位置(上から数えて何番目か)を返します。

デフォルトでは、完全一致が使用されます(MATCHはデフォルトでは、検査値以下の最大の値で検索します)。

=XMATCH(検索値,検索範囲,[一致モード],[検索モード])

引数名 説明
検索値 (必須) 検索する値またはセル参照を指定します。
検索範囲(必須) 検索する配列またはセル範囲を指定します。
一致モード(省略可能)

一致の種類を指定します。

0:完全一致(デフォルト)

-1:完全一致または次に小さい項目

1:完全一致または次に大きい項目

2:ワイルドカード文字との一致

検索モード(省略可能)

順序を指定します。

1:先頭から末尾へ検索(デフォルト)

-1:末尾から先頭へ検索

2:バイナリ検索(昇順で並び替え)

-2:バイナリ検索(降順で並び替え)

XMATCH関数の基本的な使い方

テーブルのデータ

例のような表がある場合、XMATCH関数を使ってH3セル「ぶどう」に入力した商品名を検索値としてI3セルに相対的な位置(上から数えて何番目か)を表示させてみましょう。

まず【I3セル】を選択します。

XMATCH関数の入力

I3セルに『=XMATCH(H3,B3:B7)』と入力します。検索値が「H3」、検索範囲が「B3:B7」となります。

XMATCH関数の結果

I3セルに「2」と表示されました。B3からB7のセル範囲の中で「ぶどう」は上から2番目にあるので正しい結果が返ってきていることになります。XMATCH関数では2つの引数だけで簡単に検索して結果を返すことができました。では、今まで使用していたMATCH関数の場合も見てみましょう。

MATCH関数の場合

MATCH関数で上記と同様の結果を返すにはI3セルに『=MATCH(H3,B3:B7,0)』と入力します。検索値、検索範囲は同じですが、3番目の引数として照合の型で「0(検査値と等しい最初の値を検索)」を指定する必要があります。

MATCH関数と比べてXMATCH関数の方が引数が少ないので間違いにくくなると思われます。

XMATCH関数の例

もう1つXMATCH関数の例をご紹介します。今度は価格が100円、もしくは次に高い価格を検索してその商品の相対的な位置を返しましょう。H3セルに検索値である「100」が入力されています。次にI3セルに『=XMATCH(H3,E3:E7,1)』と入力します。

3番目の引数「1」は一致の種類を指定します。「1」は完全一致または次に大きい項目を返します。

XMATCH関数の結果

検索結果としてI3セルに「4」と表示されました。テーブルの「価格」という列の中で100円の次に高い価格は198円となります。198円と表示されているセルはE3からE7のセル範囲の中で上から4番目の位置なので正しい結果が返っていることになります。

MATCH関数では、データの順序を並び替えないとエラーや正しい結果になっていないことがありました。しかしXMATCH関数では、順序がバラバラでも正しい位置を返してくれます。

MATCH関数との違い

MATCH関数はINDEX関数と組み合わせて使用する場面もありましたが、いくつかの弱点がありました。その弱点を克服するために誕生したのがXMATCH関数になります。

今まで挙げられているMATCH関数の弱点は下記のようなものがあります。XMATCH関数では下記が改善されています。

  • 完全一致をするために3番目の引数を0に設定する必要がありました。指定しないと間違った結果が返ってきます。
  • 検査値以上の最大の値・最小の値で検索するときにデータを昇順、降順に並び替える必要がありました。

互換性の注意

現時点(2019年9月3日時点)ではXMATCH関数はまだ一般公開されていないので、他の方にブックを共有するときはXMATCH関数が入っていないかを確認してください。

XMATCH関数を利用するためのOffice Insidersへの参加方法

Office Insidersとは、一般ユーザー向けのOffice製品の最新版の機能をいち早く利用できるプログラムです。Office 365 Soloとパソコンにプリインストール版のOffice Premium製品を契約中の方が利用が可能です。

insiderの設定

まずExcelを起動した画面で左下の【アカウント】を押します。

Insiderの登録

【Office Insiders】を押し、【レベルの変更】を選択します。

認証

【新規登録して、Officeの新しいリリースをいち早く入手します】をチェックし、Office Insider レベルの選択から【Insider】を選択します。【このプログラムへの参加を規定する・・・】をチェックし、【OK】ボタンを押します。

インストール

言語とインストールのオプションを開き、【Office Insider 64ビット】を選択し、【インストール】ボタンを押します。セットアップファイルがダウンロードできたら【ダブルクリック】して起動します。

インストール完了

Office Insidersに対応したExcelがインストールされます。

XLOOKUP関数も合わせてチェック!

同時期に発表されたXLOOKUP関数の基本的な使い方を説明しています。

他の関数も合わせてチェック!

Office Hackでは、ここでご紹介できなかった関数の一覧ページもご用意しております。ぜひ、参考にしてください。

よろしければ参考にならなかった点をお聞かせください