機能
行方向・列方向で検索して、値を取り出せます。ベクトルまたは配列からの値を検索して返します。VLOOKUPのように左端に検索するキーとなる値がなくてもよいし、比較的検索方向がファジーなので、○~○の間の値とか、そういう曖昧な検索のときに、一番活躍するような気がします。
行方向・列方向に検索して値を取り出す関数は、実は三種類あります。
書式
- =LOOKUP(検査値,検査範囲,対応範囲) [ベクトル形式]
- =LOOKUP(検査値,配列) [配列形式]
注意事項
検査範囲は、必ず昇順にソートしておく(英字の大文字・小文字の区別なし)必要あり。もし昇順で並べ替えられない場合は、VLOOKUP、HLOOKUP、または MATCH などを使う必要があります。
※ソートしていないと、正しく動作しません。
使い分け
ベクトル形式
- 検索する値のリストが大きい
- 値が変化する可能性が高い
というような、別表を用意する可能性がある場合は、ベクトル形式を使います。その場合、1 行または 1 列のみのセル範囲でのみ利用可能です。
配列形式
- 検索する値のリストが小さい
- 値が変化しない
というような、わざわざ別表を用意しなくても、一時的だから数式の中で指定しちゃえるもののときに配列形式を使います。IF文のかわりに入れ子状態で使う場合にも利用できます。
指定方法(具体的な使用例)
ベクトル形式、配列形式ともに、同じ結果を返すことができます。
ベクトル形式
ベクトル形式のB5に入っている数式は、「=LOOKUP($B$4,$E$4:$E$7,$G$4:$G$7)」です。これを解説すると、
- =LOOKUP(検査値,検査範囲,対応範囲) が書式なので、
- 検索値:$B$4
検索したいキーとなるもの - 検査範囲:$E$4:$E$7
基準になるような範囲(ここでは%で示した部分)
この数式を評価を行うときに利用する場合、
ここでは数値の基準がきます。
例で示したとおり、整数でなくても、%などでも大丈夫。 - 対応範囲:$G$4:$G$7
結果を示す範囲(ここでは評価内容)左から数えrて何列目かを指定。
この数式を評価を行うときに利用する場合、
ここでは評価の結果がきます。
配列形式 その1
配列形式のB14に入っている数式は、「=LOOKUP($B$4,$E$4:$G$7))」です。
- =LOOKUP(検査値,配列) が書式なので、
- 検索値:$B$4
検索したいキーとなるもの - 配列:$E$4:$G$7
一気に、評価の表をこのように指定して使うことも可能
配列形式 その2
配列形式のB15に入っている数式は、
「=LOOKUP($B$4,{0,0.1,0.3,0.5},{"相当まずい","まずい","結構いい","相当いい"})」です。
- 検索値:$B$4
検索したいキーとなるもの - 配列:{0,0.1,0.3,0.5},{"相当まずい","まずい","結構いい","相当いい"}
{基準},{評価内容}を,区切りで記述することも可能
※配列形式は、IF文のかわりに入れ子状態で使う場合にも利用できます。上記の数式をIF文にすると、
=IF(B4<0.1,"相当まずい",IF(B4<0.3,"まずい",IF(B4<0.5,"結構いい","相当いい")))
というふうにも書き換えることができます。
評価を判定するような場合は、IF文より、LOOKUP文を使ったほうがメンテナンスしやすいと思います。
呼び出し方(メニュー)
Excel2007 [数式]タブ→関数ライブラリグループ[検索/行列]→[LOOKUP]
Excel2003:[fx:関数の挿入]→関数の分類[検索/行列]→[LOOKUP]