10/05/2023

Excel。表の行列が交わるデータを手早く抽出するならXLOOKUP関数がオススメ【cross table】

Excel。表の行列が交わるデータを手早く抽出するならXLOOKUP関数がオススメ

<XLOOKUP関数>

今までは、INDEX関数とMATCH関数を組み合わせないと、算出することが難しかったことが、XLOOKUP+XLOOKUP関数というXLOOKUP関数のネストで、算出することができますので、その方法をご紹介します。


次の表を用意しました。

XLOOKUP関数

A1:G4には、運送料の表があります。


重さと地域が交わるところが、その運送料なわけです。


これを算出するのに、以前は、INDEX関数とMATCH関数をつかうことで、算出していましたが、少々わかりにくいところがありました。


ちなみに、B9の送料をINDEX関数とMATCH関数で数式を設定すると、

=INDEX(B2:G4,MATCH(B7,A2:A4,1),MATCH(B8,B1:G1,0))


行と列の座標をMATCH関数で算出させるわけですね。


これと同じように、XLOOKUP関数で、算出することができます。


B9にXLOOKUP関数をつかった数式を設定してみます。

=XLOOKUP(B8,B1:G1,XLOOKUP(B7,A2:A4,B2:G4,,-1,1))


これで、先程の、INDEX関数とMATCH関数と同じように算出することができます。


このXLOOKUP関数の数式のポイントは、

最初のXLOOKUP関数で、地域の「列」の座標軸になっています。


引数内の2つ目のXLOOKUP関数が、重さである、「行」の座標軸で使用しています。


XLOOKUP(B7,A2:A4,B2:G4,,-1,1)

重さが完全一致だけとは限りません。

そこで、一致モードを「-1」に設定することで、近似値で算出できます。


XLOOKUP関数は、アイディアによって、色々使える可能性がありますね。