Excel新関数「XMATCH」は役に立つ? それとも「XLOOKUP」で十分?:“脱Excel”か“活Excel”か:Excel 2021の新関数「XMATCH」解説【後編】
「Excel 2021」に新たに加わった「XMATCH」は、既存の「MATCH」からの改善点は確かにあります。ただし用途は限定的になりそうです。それはどういうことなのでしょうか。
Microsoftの表計算ソフトウェア「Excel 2021」に新たに加わった関数「XMATCH」は、指定したセルの範囲内における、検索値の相対位置を返します。これは、これまで「Excel」にあった関数「MATCH」と同様の機能です。XMATCHは検索対象としてセルの範囲だけではなく、セルの配列も指定できるなど、MATCHからの強化点が幾つかあります。どのような用途が考えられるのでしょうか。
「XMATCH」は役に立つのか? 「XLOOKUP」で十分?
併せて読みたいお薦め記事
連載:“脱Excel”か“活Excel”か:Excel 2021の新関数「XMATCH」解説
連載:“脱Excel”か“活Excel”か:Excel 2021の新関数「XLOOKUP」解説
「Teams」のトラブルシューティング
XMATCHが返す相対位置そのものを必要とするエンドユーザーは、ほとんどいないでしょう。エンドユーザーは相対位置よりも、その位置にあるセルの値を知りたいはずです。つまり図1のように、A列とB列にあるデータに基づいて、指定した社員名の売上高を得るといった使い方が実用的でしょう。
図1の場合は、セルE2の値である「I」をA列で検索し、そのセル(セルA9)の横にあるセルB9の値「800」を得て、セルF2に表示することになります。これを実現する関数が「INDEX」です。INDEXは、指定したセルの範囲のうち、指定した行番号・列番号のセルの値を返します。書式は、
- INDEX(配列, 行番号, [列番号])
となります。図1でセルB9の値「800」を求めたい場合は、
- INDEX(A1:B11,9,2)
と記述します。
INDEXの行番号や列番号を記述する手段として、XMATCHまたはMATCHを使うことができます。INDEXとXMATCHを組み合わせて記載した場合は、例えば図2のようになります。セルF2には、INDEXの行番号として
- XMATCH(E2,A1:A12)
と記載することで、セルE2の値(ここではI)の存在する行を、A列から検索します。INDEXの列番号は、あえてXMATCHを使って
- XMATCH(F1,A1:B1)
と記載していますが、単純に「2」でも構いません。このようにINDEXと組み合わせることで、XMATCHは活用のしがいがある関数となります。
ただし用途は限定的
Excel 2021で関数「XLOOKUP」が登場するまでは、INDEXとMATCHの組み合わせは非常に重宝されていた印象があります。垂直方向の検索で広く利用される関数「VLOOKUP」では、検索値として指定できる列が、指定範囲の左端という制限があったからです。INDEXとMATCHの組み合わせは、検索するセルの範囲に制限がありません。そのため検索値の左側の列に、求める結果を含む列があるデータでも検索できました。
XLOOKUPはVLOOKUPとは異なり、検索するセルの範囲に制限がありません。これまでINDEXとMATCHという2種類の関数を組み合わせる必要があった検索を、XLOOKUPだけで実行できるようになりました。これによりINDEXとMATCHの組み合わせを使用する頻度は、以前よりも少なくなると考えられます。XMATCHも基本的な用途はMATCHと同様であることを踏まえると、XLOOKUPと比べると活躍の機会は限られると言えるでしょう。
このコラムについて
ほとんどの企業が使っている表計算ソフト「Microsoft Excel」。便利なツールですが、本来の目的を超えて“使いこなし過ぎる”ことが、かえって業務効率を低下させてしまったり、業務の属人化につながってしまったりする場面があるのではないでしょうか。
このコラムでは、日常業務でよく見掛けるExcelの活用例を紹介しながら「こんな場面は脱Excelを考えた方がよい」「こういうExcelの活用法はお薦め」といった知見を紹介します。
村山 聡(むらやま・さとし)
1971年愛知県生まれ、名古屋大学経済学部卒、中小企業診断士。IT企業在職中に、単一業種においてキャリアを積んでいくことに疑問を感じ、どんな業界、職種でも通用する知識を得るべく中小企業診断士を取得。複数社を経て、現在の勤め先にて、コンサルタントとして、データを活用した業務効率改善に取り組む。
Copyright © ITmedia, Inc. All Rights Reserved.