少し前にVLOOKUPについての記事を書かせていただきました。
その時にはLOOKUP系は2種類と書きましたが正確には3種類です。
LOOKUPは若干難しいので、すっ飛ばして説明していました。
今回はそのLOOKUPに関する記事になります。
LOOKUPはIF並みに難しい関数です。
数式は以下のようになっています。
lookupの数式
lookup(検査値,検査範囲,対応範囲)
又は
lookup(検査値,配列)
このようになっています。
数式だけ見るとやはり何のことだか分かり辛いです。
所々の説明をしていくと下記のようになります。
- 検査値・・・VLOOKUPでいうところの検索値です。
- 検査範囲・・・VLOOKUPの範囲の部分
- 対応範囲・・・VLOOKUPでは列となっていた部分です。
- 配列・・・そのデータの配列を全て打ち込む部分です。
その中でも配列というのが曲者で、上記にも書いたようにどういう風にデータが並んでいるかを全て打ち込む必要があります。
この写真のようにいくと以下の数式になります。
lookup(国語(検索値),"英語""国語""社会""数学""理科""65""45""55""70""60"(配列))
このようにデータの並んでいる順番に全て打ち込んでいく形です。
step
1lookup関数の出し方と検索値
では、本題のLOOKUP関数の使い方、詳細に参りましょう。
まずはいつも通り数式バーかセルに直接入力で=LOOKUP(
と入力しましょう。
そうすると、先ほど説明した数式が出てくるのでその通りに設定していきます。
まず最初に入力するのが検査値、これは検索してきて見つかった場合、指定した範囲から検索した値と対応する列にある数値を出すという意味です。
難しいですが、検査値はデータを抜き出す前に、データが正しいかなどを検索してくれて、あった場合にのみ対応するデータを持ってきてくれると覚えれば大丈夫です。
下の図の場合は数式に=lookup(A1,
と入力してください。
因みに、元のデータが昇順になっていないと、エラーになってしまうので注意です。
検査値には直接入力することも可能です。
例えば今回の場合は国語の点数を出してほしいので、"国語"と検査値を入力する事でも数式的には問題ありません。
ただし、いくつもデータがあって数式をコピーしたい場合はセルを指定しないと、コピーした時全て国語の点数を持ってくることになるので、筆者はセルを指定することをおすすめします。
step
2検査範囲
次に検査範囲です。
これは検査値がどの範囲を調べたら出てきますか?ということを聞かれています。
今回の場合はB3~B7がその範囲になります。
=lookup(A1,sheet1!$B$3:$B$7
このように設定しましょう。
範囲を指定する時は必要に応じて絶対番地指定や相対番地指定をしてください。
F4キーを1度押すと絶対番地指定、4回押すと相対番地指定となります。
絶対番地は範囲がその位置から絶対に動かないようにすること。
相対番地は行方向にずれてほしい時や列方向にずれてほしい時に使います。
$マークがついている所が動かなくなります。
アルファベット部分に$マークが付いているときは列方向は動かず、番号部分に$マークが付いているときは行方向が動きません。
アルファベットは横に動かず、番号部分では縦に動かない、と覚えれば簡単かと思います。
step
3対応範囲
本題に戻ります。
最後に対応範囲を指定していきます。
対応範囲は検査値で見つけた部分から、何を抜き出すのかの範囲を指定します。
数式的には以下のようにしてください。
=lookup(A1,sheet1!$B$3:$B$7,$C$3:$C$7)
これで設定することは終わったので、かっこを閉じます。
今回も範囲なので必要に応じて、絶対番地や相対番地を指定してください。
LOOKUPの設定はこれで終了となります。
LOOKUPはHやVのLOOKUPと違い、列方向に探したり行方向に探す、といった縛りはありません。
その分指定が難しくなっていますので、良し悪しだとは思います。
基本的に検索する時はデータが昇順になっていなければならないのはどちらも一緒なので、設定の簡単なVLOOKUPやHLOOKUPを使ったほうが楽だとは思います。
ただ、この2つを使うためには行方向で探すのか、列方向で探すのかが分からないといけません。
別の記事で使い道についても書いていますが、それでもわからない時はLOOKUPを使うのも良いでしょう。