更新日:、 作成日:
エクセル LOOKUP 関数:検索する値に近い値を取得する
はじめに
エクセルの LOOKUP 関数の使い方を紹介します。
LOOKUP 関数は検索する値に最も近い値を取得します。それ以上の最も近い値を検索できるようにした上位互換の「XLOOKUP 関数」があります。
=INDEX(100,A1:A3) のようにして、列「A」から 100 以下の最大値を取得できます。
=INDEX(100,A1:A3,B1:B3) のようにして、列「A」から 100 以下の最大値を検索して対応する値を列「B」から取得できます。
=INDEX(100,A1:C1) のようにして、行「1」から 100 以下の最大値を取得できます。
80 点以上なら A、60 点以上なら B のように評価を付けられます。
LOOKUP 関数の引数
LOOKUP(検索値, 検索範囲)
検索範囲の中から検索値と 1 番近い値を取得します。
LOOKUP(検索値, 検索範囲, 結果範囲)
検索範囲の中から検索値と 1 番近い値に対応する値を結果範囲から取得します。
引数「検索値」 | 検索する値を、数値、文字列、セル参照、関数などで指定します。 | スピル化 |
引数「検索範囲」 | 検索されるセルの範囲を 1 行または 1 列で指定します。 検索する値と同じまたは、それ以下の最大値と一致します。昇順に並べられている必要があります。 | |
引数「結果範囲」 | 省略できます。省略すると引数「検索範囲」が結果範囲になります。 引数「検索範囲」で見つかった位置と対応する位置の値を返します。 |
スピル化:セルの範囲や配列を指定すると結果が「スピル」します。
使い方
LOOKUP 関数の使い方を紹介します。
1 列から値が基準値以下の最大値を取得する
検索値が 40 のとき、値が 40 以下の最大値を取得します。検索値と最も近い値と一致します。「VLOOKUP 関数」でも同じように検索できます。
=VLOOKUP(B9,$B$3:$B$5,1,TRUE)
日付ならその日以前の一番近い日付になります。
引数「検索範囲」が昇順に並べ替えられている必要があります。
値が基準値以下の最大値に対応する名前を取得する
検索値が 40 のとき、値が 40 以下の最大値に対応する名前を取得します。
=VLOOKUP(B9,$B$3:$C$5,2,TRUE)
引数「検索範囲」が昇順に並べ替えられている必要があります。
1 行から値が基準値以下の最大値を取得する
検索値が 40 のとき、値が 40 以下の最大値を取得します。検索値と最も近い値と一致します。「HLOOKUP 関数」でも同じように検索できます。
=HLOOKUP(B6,$C$2:$E$2,1,TRUE)
日付ならその日以前の一番近い日付になります。
引数「検索範囲」が昇順に並べ替えられている必要があります。
点数に評価を付ける
80 点以上なら A、60 点以上なら B、それ以下は C にします。
スポンサーリンク
解説
それ以上の最も近い値を検索できるようにした上位互換である「XLOOKUP 関数」があります。通常はそちらを使用します。
引数「検索範囲」に 1 行または 1 列だけ指定します。
引数「検索値」が引数「検索範囲」から見つからないときはエラー #N/A になります。
引数「検索範囲」が 1 列なら、引数「結果範囲」も 1 列にします。行数を合わせる必要はありませんが、一致する値を取得するには合わせます。
引数「検索範囲」が 1 列のとき、引数「結果範囲」と列数が合っていないときはエラー #N/A になります。
引数「検索範囲」が 1 行なら、引数「結果範囲」も 1 行にします。列数を合わせる必要はありませんが、一致する値を取得するには合わせます。
引数「検索範囲」が 1 行のとき、引数「結果範囲」と行数が合っていないときはエラー #N/A になります。
引数「検索範囲」が昇順に並べ替えられている必要があります。そうでないときは正しい結果を取得できません。
例えば、引数「検索値」が 2 なら、次の画像では 1, 10, 2, 20 の順で検索します。検索値より大きい値が見つかった時点で、それ以降の値は検索しません。昇順のときにそれ以降に一致する値はないからです。10 と比較したとき 2 より大きいのでこれ以降の値は検索されません。結果を 10 の 1 つ前から取得します。