Excelで作成した表の1つの行または列の値を検索して、対応する値を返してくれるのがLOOKUP(ルックアップ)関数です。Excel関数でよく使われるVLOOKUP関数やHLOOKUP関数に比べ、できることは限られますが、縦方向(行)と横方向(列)の両方に対応するなどメリットもあります。

本連載では、「よく使うけど忘れやすいMicrosoft Officeの操作」をキーワードに、Officeアプリケーションの使い方を解説していきます。記事の制作には、執筆時点で最新の状態にアップデートしたMicrosoft Office 2016を使用しています

LOOKUP関数とVLOOKUP関数、HLOOKUP関数の違い

LOOKUP関数は、Excelに搭載されている検索/行列関数。1つの行または1つの列から値を検索するベクトル形式と、VLOOKUP関数やHLOOKUP関数と同じ配列形式が使えますが、配列形式を使う場合はVLOOKUP、HLOOKUPを使ったほうが効果的です。

また、LOOKUP関数は、VLOOKUP関数やHLOOKUP関数とは異なり完全一致の検索が行えません。たとえば「2」という検査値で、「1、3、5」という値がある行(列)を検査範囲にした場合、検査値以下の値でもっとも近い「1」の値が検索され、対応範囲から値が返されます。このため、検査範囲の行または列の値は、小さい順(昇順)に並んでいる必要があります。

1つの行/列から値を検索するならLOOKUP関数

基本の数式は「=LOOKUP(検査値,検査範囲,対応範囲)」

そこで今回は、ベクトル形式の「=LOOKUP(検査値,検査範囲,対応範囲)」という数式を使って、1つの行または列からデータを検索し、対応する値を返す方法を紹介します。具体例として、10点満点のクイズの結果を記入した表で、得点(正解数)に合わせたランクのコメントを表示させる手順からLOOKUP関数の使い方を見ていきましょう。

  • まずはLOOKUP関数の数式を作成したいセル(画面の例ではC3)をクリックして選択します

  • 数式バーに「LOOKUP(」と入力します

  • 検査値(今回の例では正解数)が入力されているB3セルをクリックして数式に入力して「,」(カンマ)で区切ります

  • 続けて検査範囲となるE2~E7セルをドラッグして数式に入力して、それぞれのアドレスの前に「$」を付けて絶対参照にします(今回の例では「$E$2:$E$7」)。入力し終わったら「,」で区切ります

  • 最後に対応範囲(今回は6段階のランクのコメント)となるF2~F7セルをドラッグして数式に入力し、検査範囲と同様に「$」を付けて絶対参照にし、「)」で閉じて「=LOOKUP(B3,$E$2:$E$7,$F$2:$F$7)」という数式を完成させます

  • [Enter]キーを押して確定させると、検査範囲のE列で検査値の「2」に対応するE3セルの対応範囲となるF3セルの値となる「努力」の文字列がC3セルに表示されました

  • 数式を入力したC3セルの右下にあるフィルハンドルを下方向にドラッグして数式をコピーします

  • 数式がコピーされ、対応する値がC列のセルに表示されました。検査値と同じ値が検査範囲にない場合はそれ以下の値でもっとも近いものが検索されます。画面の例では「5」の検査値に対しては検査範囲の「4」に対応する対応範囲の値が表示されているのがわかります

LOOKUP関数なら行/列、縦/横に両対応

今回紹介したLOOKUP関数の使い方は、VLOOKUP関数やHLOOKUP関数でも行えますが、LOOKUP関数のほうが数式がシンプルで使いやすいのがメリットです。さらに、VLOOKUPは垂直(縦)方向の検索、HLOOKUPは水平(横)方向の検索に対応していますが、LOOKUPは縦/横どちらの検索にも対応します。ここでは横方向(つまりは1つの行)で検査範囲と対応範囲を指定した数式を作成してみましょう。

  • 先ほどとは異なり、検査範囲と対応範囲の表を横方向(行)で作成してあります。まずは数式を入力したいC3セルを選択し、数式バーに「=LOOKUP(B3,」と入力します

  • 検査範囲に「$E$2:$J$2」、対応範囲に「$E$3:$J$3」と行を指定して「=LOOKUP(B3,$E$2:$J$2,$E$3:$J$3)」という数式を完成させます

  • [Enter]キーで確定させると、先ほどと同様に検査値に対応する値が表示されます

  • 数式をコピーすると、正しい値が返されているのが確認できます。このように、縦方向、横方向どちらでも検索できるのがLOOKUP関数の特徴といえます