Introduction
Ver. all 2013 2016 2019 2021 365
Excel(エクセル)で、入力した文字や数字に対応した結果を表から検索して表示してくれるLOOKUP関数の使い方です。
LOOKUP関数は、[関数の挿入]画面で選ぶとすぐに、
- [検査値、検査範囲、対応範囲]
- [検査値、配列]
のどちらを使用するか選ぶ画面が表示されます。
下の配列を使用する形式は、VLOOKUP関数やHLOOKUP関数を使用する方がよいので説明しません。
簡単に内容だけ説明すると、
VLOOKUP関数やHLOOKUP関数を使用すれば、最後の行や列ではなく、自由に行や列を指定できるので、わざわざLOOKUPの配列形式を使う必要がないのですね。
マイクロソフトも、「他のソフトとの互換性を維持するために存在しているもので、VLOOKUP関数やHLOOKUP関数を強くお勧めします」と言っています。
ということで、ここでは上の最初から選択されている
- [検査値、検査範囲、対応範囲]
の方で説明を進めます。
LOOKUP関数は、昔から存在する関数みたいだにゃ
LOOKUP関数の説明
では、LOOKUP関数の説明です。
LOOKUP関数・・・検査範囲から対応データを探し出し、一致したデータを求める関数
=LOOKUP(検査値,検査範囲,対応範囲)
- 検査値・・・検索する値(一致させたい場所のセル参照や値、文字列)を指定
- 検査範囲・・・上の[検査値]で検索する1行または1列を指定
- 対応範囲・・・検索結果に表示する1行または1列を指定
ポイント(注意点)をまとめると、
- 「検査範囲」と[対応範囲]は1行もしくは、1列しか指定できない
- 一致したデータが存在しない場合は、検索値以下の最大値が一致した値として使用される
- [検査範囲]のデータは昇順(小さい順)に並んでいる必要がある
このようになります。
この3点に関しては後半で詳しく説明します。
LOOKUP関数の使い方
では使ってみます。
下の表で、黄色のセルに、「ID」を入力すると、赤枠の関数を入力した場所に「商品名」が表示されるというものです。
では、実際に使ってみましょう。
関数を入れる「F4]をクリックしてから、[関数の挿入]ボタンをクリックします。
[関数の挿入]画面で、[すべて表示]に変更し、「LOOKUP」関数を選びましょう。
[引数の選択]画面では、上の[検査値、検査範囲、対応範囲]が選ばれている状態で[OK]をクリック。
[関数の引数]画面が表示されるので入力していきます。三か所ありますね。
まずは、[検査値]です。[検査値]は後で検索する値を入力する場所「F3」を指定します。
[検査範囲]には、検索で入力するデータと一致させる場所全体「B3:B13」を選択します。
最後の[対応範囲]は、上の[検査範囲]と一致した場所で取り出したいデータが入力されている場所全体「C3:C13]を指定します。
ちなみに、ここで隣の「D3:D13」を指定すると、結果には「値段」が表示されることになりますよ。
下が入力結果です。確認して[OK]を押すと・・・
あれ?関数を入れた場所にはエラーが表示されています・・・。
これは、[検査範囲]の「F3」にデータが入力されていないので、エクセルが困っているのです。ちゃんと、どれかIDを入力してあげれば、ちゃんと結果は表示されます。
なるほど。でも、最初は空欄にしておいた方がいいですよね。
そんな時は、他の関数を使って何とかしましょう。今入力したLOOKUP関数、
これを下のように変更します。
赤い文字が追加したところです。「もし、F3が空欄だったら空欄と表示しなさい。それ以外の場合はLOOKUPしなさい」という意味です。
また、ISERROR関数を使用する方法もあります。
「もし、LOOKUPした場所がエラーだった場合は空欄に、それ以外はLOOKUPしなさい」という意味です。
すると、IDに何も入力されていない場合は空欄になるので一安心。
※IF関数に関してはExcel(エクセル)での関数の使い方 ④|IF関数の使い方で説明しています。
さらに、Excel(エクセル)での関数の使い方 ⑤|複数の関数を入れ子にして使う方法(ネストの使い方)まで見ていただくとより理解が深まると思います。
LOOKUP関数を使用する時のポイント
LOOKUP関数を使用する時のポイントをいくつか紹介します。
- 「検査範囲」と[対応範囲]は1行もしくは、1列しか指定できない
もし、広い範囲を選択しても端の行か列しか使われません。
- 一致したデータが存在しない場合は、検索値以下の最大値が一致した値として使用される
言葉にすると、ちょっとピーンときませんね。
具体例です。あえて存在しない「A120」というIDを入力してみると、エラーが表示されるのではなく、「猫缶B」が表示されました。
つまり、完全に一致したデータが存在しない場合は近いデータが表示されるということ。
そして、今度は「A190」と入力してみました。すると、数字が近い「A200」ではなく、「A110]のデータの方が表示されます。
この2つをまとめて言葉にすると、「一致したデータが存在しない場合は、検索値以下の最大値が一致した値として使用される」ということになるわけです。
- [検査範囲]のデータは昇順(小さい順)に並んでいる必要がある
では、実験です。表の「ID」を降順(大きい順)にしてみました。「D~A」の順に並んでいます。
その状態で「D110」と入力すると、「猫缶A」が表示されるはずが、「トイレ砂B」が表示されています。
さらに、「A100」と入力してみるとエラーが表示されてしまいました。
このように、[検査範囲]に指定するデータは、「0、1、2・・・」や「A、B、C・・・」、「あ、い、う・・・」のように昇順に並んでいる必要があることが分かります。
漢字の場合はコード順に並んでいる必要があるので、実質無理と言えますね・・・。
まとめ
LOOKUP関数は、引数の入力が3つで済むのでVLOOKUP関数やHLOOKUP関数より簡単なイメージがあります。
しかし、実はLOOKUP関数の強化版がVLOOKUP関数とHLOOKUP関数なのです。ポイントで紹介した3点に関してもVLOOKUP関数とHLOOKUP関数であれば対応できる問題です。
LOOKUP関数を使用するのであれば、VLOOKUP関数とHLOOKUP関数を使用した方がよさそうですね。
興味のある方は下のリンク先をご覧ください。
VLOOKUP関数とHLOOKUP関数は、参照表の左端列か上端列を検索値として使うしかないので、検索値が左端や上端に無い場合に登場する機会がありそうですね。
しかし、Excelバージョン2021からはそれらの問題を解決した「XLOOKUP」が登場しました。
今後は「LOOKUP」、「VLOOKUP」、「HLOOKUP」をまとめたものとして「XLOOKUP」関数が主流で使われることになりそうです。
あまり登場する出番はなさそうだにゃ