【エクセル】Xlookup関数とは?Vlookup、INDEX、MATCH関数の上位版!

ecoslymeです。

エクセルExcel)で、PL(損益計算書)の集計やPLに関するデータ集計を行う時に、Index関数Match関数を組み合わせている人はいませんか?

 

また、Vlookup関数を用いて、特定の製品の”単価”を同じ商品コードをキーにして、別の表(単価表)から持ってくる、など行っている方も多いと思います。

 

今回ご紹介するXlookup関数は、それらの関数(VlookupIndexMatch)の上位版と考えてもらって良いと思います。

 

読み方はまだ分かりませんが、エックスルックアップかんすうクロスルックアップかんすう、どちらになるかだと思います。

個人的には、クロスルックアップがかっこいいので、こっちの読み方が良いです。

 

2019年8月時点ではまだ使えませんが、2019年後半には使えるようになる関数となります。

 

私としては非常に便利な関数になると考えています。

Vlookup関数よりも使い勝手がよく、エクセルを扱う人には必須となる関数だと考えています。

 

この記事では、そのXlookup関数の使い方についてご紹介していきたいと思います。

 

 

元データと結果

 

Xlookup関数 基本的な使い方①(Vlookup関数の上位版)

それでは早速、Xlookup関数についてご紹介します。

まず最初は、Vlookup関数と似た使い方です。

 

以下のように、営業所別の売上の推移表があると仮定します。

その中で、特定の営業所の上期実績を取り出せるような数式を作成したいと思います。

 

 

上の表の場合、北陸営業所上期実績B14セルに表示させるように設定していきます。

 

B14セルに以下の数式を入力して下さい。

「 =xlookup(A14,A1:A10,H2:H10) 」

 

3つのブロックについて説明します。

=XLOOKUP( A14 ,A1:A10 , H2 : H10 )
  • 検索値
  • 検索範囲
  • return_array(返す値)
  • 調べたい営業所の名前を選択
  • 営業所一覧を選択
  • 上期実績一覧を選択

 

調べたい営業所の名前を設定して、元となる表(営業所別の売上推移表)のどの列からその名前(北陸営業所)を拾ってくるかを設定します。

その後に、その名前がある特定の列の何の数字(上期実績)を拾ってくるかを設定していくという流れです。

 

式が完成すると以下のように数字を拾ってきてくれます。

 

Vlookup関数との比較

これはVlookup関数で行う場合に比べて非常に楽になります。

 

その違いを比べてみましょう。

 

Vlookup関数の場合、以下の数式になります。

「 =VLOOKUP(A14,$A$1:$H$11,8,FALSE) 」

 

これは、上の表(赤枠)の中で、A列をキーにして左から8番目の数字を拾って来て下さいという関数になります。

Vlookup関数の場合、その8番目という数字を設定するのが非常に面倒です。

 

左から何番目にあるのか考えなければなりません。

Xlookup関数ではその作業が無くなります。

 

その分非常に楽になるというか、ビジュアル的に分かりやすい関数になります。

 

Xlookup関数 基本的な使い方②(Match関数とIndex関数の上位版)

Xlookup関数は上で紹介した使い方以外の使い方もできます。

次は、Index関数Match関数を組み合わせた使い方と似た使い方です。

 

同じように、営業所別の売上の推移表があると仮定します。

その中で、特定の営業所の特定月の売上実績を取り出せるような数式を作成したいと思います。

 

 

上の表の場合、関西営業所7月の売上実績をC14セルに表示させるように設定していきます。

Xlookup関数の2重使用を行います。

 

B14セルに以下の数式を入力して下さい。

「 =xlookup(A14,$A2:$A10,xlookup(B14,$B1:$H1,$B2:$H11)) 」

 

 

3つのブロックについて説明します。

長いので縦に記載します。

=XLOOKUP
( A14 ,
  • 検索値
  • 調べたい営業所名を選択
$A2:$A10 ,
  • 検索範囲
  • 営業所一覧を選択(行方向
xlookup ( B14 , $B1:$H1 , $B2:$H11 )
  • return_array(返す値)
 ※下の表で説明

 

上の表の一番下にあるXlookup関数が分かりづらいので、さらにこれを分解します。

=xlookup
( B14 ,
  • 検索値
  • 調べたい年月を選択
$B1 : $H1 ,
  • 検索範囲
  • 年月一覧を選択(列方向
$B2 : $H11 ) 
  • return_array(返す値)
  • 売上実績の表全体を選択

 

最初のXlookup関数で、調べたい営業所の名前を設定して、元となる表(営業所別の売上推移表)のどの列からその名前(関西営業所)を拾ってくるかを設定します。

 

次のXlookup関数で年月を指定(7月)して、関西営業所の行と7月の列が交差するセルの値の数字(関西営業所の7月実績)を拾ってくるという設定をしていくという流れです。

 

式が完成すると以下のように数字を拾ってきてくれます。

 

Match関数とIndex関数との比較

これはMatch関数とIndex関数を組み合わせて使用する場合に比べて、非常に楽になります。

 

その違いを比べてみましょう。

 

Match関数とIndex関数を組み合わせた場合、以下の数式になります。

「 =INDEX($B$2:$H$11,MATCH(A14,$A$2:$A$11,0),MATCH(B$14,B$1:H$1,0)) 」

 

これは、上の表(青枠)の中で、A列をキーにして”営業所名“のある行を特定して、1行目をキーにしてその”“のある列を特定して、交差する部分の数字を拾ってくるという組み合わせの関数になります。

 

見てわかる通り、Index関数とMatch関数を組み合わせて作る数式は非常に複雑なものとなります。

 

Xlookup関数ではその作業が無くなります。

やはりこれも、ビジュアル的に理解しやすい(といっても少し考えてしまいますが)関数なのかと思います。

 

 

今回、Vlookup関数のご紹介と、Match関数とIndex関数の組み合わせの紹介も行いましたが、以下の記事で別に紹介しているので、そもそもこの関数を知らないという方は以下の記事をご覧下さい。

 

関連記事

ecoslymeと申します。会社で営業の売上データを集計・加工している時に、システムからデータを出力すると、商品コードや商品名は書いてあるけど、単価が記載されていなかったり、欲しい必要なデータが足りない。もしくは、今見ている[…]

 

関連記事

ecoslymeです。エクセル(Excel)で、縦に項目(PL勘定など)、横に推移の数字(年月など)があり、特定の年月の数字だけ見たかったり、抽出したかったりする時ってありませんか? 地道に探してコピペして[…]

 

最後に

いかがでしたでしょうか。

今後、主流となる関数になると考えられます。

 

エクセルの関数がどんどん進化していくので、今後もこのような新しい関数の実装はしていって欲しいですね。

 

特にこのXlookup関数については知らない人がほとんどなので、早めに習得し他の人に教えてあげれば、あなたのエクセルスキルの高さに皆さんが関心すると思いますよ。