Excelの上級テク 2つの表を参照してデータを取る
実例で学ぶ! Excel関数・数式講座「顧客情報表」(2)
ビジネススキルXLOOKUP(エックスルックアップ)関数(Excel 2021とMicrosoft 365版Excelで使用可能)はVLOOKUP関数の後継ともいえる関数だが、対象範囲の指定方法は異なり、引数として「検索範囲」と「戻り範囲」をそれぞれ指定できる。「検索範囲」に表1の「ポイント区分」列、「戻り範囲」に表2の「賞品」列をそれぞれ指定。さらに引数「一致モード」に「-1」を指定することで、引数「検索値」以下の最大値を「検索範囲」で探し、該当するセルと同じ行の、「戻り範囲」にあるセルの値を取り出すことができる(図5)。

図5 XLOOKUP関数(Excel 2021とMicrosoft 365版Excelで使用可能)であれば、検索する範囲と値を取り出す範囲を、それぞれ個別に指定できる。また、引数「見つからない場合」として、検索値が見つからなかった場合の指定も可能だ
また、この関数には、「検索値」が見つからなかった場合に返す値を指定する引数「見つからない場合」も用意されている。しかし、「一致モード」に「-1」を指定した場合、「検索値」が未入力の場合でも何らかの値が検索されてしまい、意図したような結果にはならない(図6)。そのため、未入力かどうかの判定には、やはりIF関数を組み合わせる必要がある(図7)。

図6 この例では、「検索値」以下の最大値を検索するため、XLOOKUP関数の引数「一致モード」に「−1」を指定している。この数式の場合、累積ポイントが未入力でも「−」にはならず、意図していなかった結果が表示されてしまう

図7 このXLOOKUP関数の数式で、累積ポイントが未入力の場合に「−」と表示させるには、やはりIF 関数と組み合わせて、左隣のセルが未入力かどうかを判定する必要がある