関数 | 説明 |
---|---|
LOOKUP | 検索値に対応したデータを取り出す (検査範囲は1行または1列) |
MATCH | 検索値に対応するデータの位置番号を返す |
VLOOKUP | 縦に並んだ一覧表から、検索値に対応したデータを取り出す (検査範囲は複数列) |
HLOOKUP | 横に並んだ一覧表から、検索値に対応したデータを取り出す (検査範囲は複数行) |
INDEX | 表から、行位置と列位置で指定した位置のデータを取り出す |
CHOOSE | 値のリストから、特定の位置番号のデータを取り出す |
単純なデータを一度処理するだけならば、検索する値がある列または行をキーに並べ替えることでも抽出できます。
特定の条件に一致するセルは、IS関数とIF関数で抽出できます。また条件に一致したセルの数を知りたいだけならば、COUNTIF関数を用います。
データではなく、そのデータがある位置を調べたいならば、MATCHを利用します。
LOOKUP(検査値, 検査範囲, [対応範囲])LOOKUP 関数 - Office のサポート
検査範囲にある値がコード順の昇順に配置されていなければ、正しい結果を得られません。
検査値が見つからなかった場合、範囲内にある検査値以下の最大値が一致する値とみなされます。検査値以下の値が存在しなければ、#N/Aが返されます。
A | B | |
---|---|---|
1 | 10 | A |
2 | 20 | B |
3 | 30 | C |
4 | 40 | D |
式 | 結果 | 理由 |
---|---|---|
=LOOKUP(30,A1:A4,B1:B4) | C | 一致するA3の値に、B3が対応するため |
=LOOKUP(5,A1:A4,B1:B4) | #N/A | 一致する値が存在せず、検査値5以下の値も存在しないため |
=LOOKUP(15,A1:A4,B1:B4) | A | 一致する値は存在しないが、検査値15以下ではA1の10が最大であり、それにB1が対応するため |
=LOOKUP(50,A1:A4,B1:B4) | D | 一致する値は存在しないが、検査値50以下ではA4の40が最大であり、それにB4が対応するため |
LOOKUPには既定のベクトル形式以外に、配列形式もあります。
LOOKUP(検査値, 配列)
この関数は配列の範囲が縦長か横長かによって、下表のように挙動が異なります。
配列の大きさ | 検索方向 | 検索範囲 | 戻り値 | |
---|---|---|---|---|
縦長 | 縦 | 表の左端列 | 表の右端列 | VLOOKUPのような動作 |
横長 | 横 | 表の上端行 | 表の下端行 | HLOOKUPのような動作 |
たとえば=LOOKUP(A1,B2:C5)とすると範囲が縦長となるため、B2:B5の範囲をA1の値で検索し、対応する値がC2:C5から返されます。
MATCH(検査値, 検査範囲, [照合の型])MATCH 関数 - Office のサポート
値 | 検索対象 | 検査範囲の並び順 |
---|---|---|
1または省略 | 検査値以下の最大の値 | 昇順であることが必須。1~9、A~Z、あ~ん、FALSE~TRUEの順 |
0 | 検査値と等しい最初の値 | 任意 |
-1 | 検査値以上の最小の値 | 降順であることが必須。9~1、Z~A、ん~あ、TRUE~FALSEの順 |
A | |
---|---|
1 | 5 |
2 | 20 |
3 | 40 |
4 | 30 |
式 | 結果 | 理由 |
---|---|---|
=MATCH(10,A1:A4) | 1 | A1の値が10以下の最大の値であるから |
=MATCH(10,A1:A4,0) | #N/A | 10と等しい値がないから |
=MATCH(10,A1:A4,-1) | #N/A | 降順に並べられていないから |
=MATCH(20,A1:A4,0) | 2 | A2の値が10と一致するから |
左端の列から値を検索し、対応するセルの値を取得できます。
VLOOKUP(検索値, 範囲, 列番号, 検索の型)VLOOKUP 関数 - Office のサポート
検索値は、範囲の左端にある必要があります。
第4引数の検索の型を省略すると「昇順一致」となり、その場合は左端の列を、コード順の昇順に並べ替えておく必要があります。FALSEを指定すると「完全一致」となり、並べ替えの必要はありません。
一致する値が見つからないときは、#N/Aが返されます。
指定のセル、または数式が入力されているセルの行番号を取得できます。
ROW([範囲])ROW 関数 - Office サポート
A | ||
---|---|---|
式 | 計算結果 | |
1 | =ROW()*2 | 2 |
2 | =ROW()*2 | 4 |
3 | =ROW()*2 | 6 |