スプレッドシートで使える VLOOKUP のヒントとテクニック

スプレッドシートで使える VLOOKUP のヒントとテクニック

スプレッドシートで作業する際に、データを効率的に検索・参照するための強力な関数が VLOOKUP です。この記事では、VLOOKUP の基本から応用テクニックまで、実務で役立つヒントをまとめました。

VLOOKUP の基本

VLOOKUP 関数は「Vertical Lookup(垂直方向の検索)」の略で、表の左端の列から特定の値を検索し、同じ行の別の列からデータを取得する機能を持っています。

基本構文

=VLOOKUP(検索値, 検索範囲, 列番号, [検索方法])
  • 検索値: 検索したい値
  • 検索範囲: 検索対象となるデータの範囲
  • 列番号: 結果を返す列の番号(検索範囲の左端の列を1として数える)
  • 検索方法: TRUE(近似一致)または FALSE(完全一致)

基本例

ABC
1ID名前部門
2101田中営業
3102鈴木経理
4103佐藤開発

この表で、ID「102」の名前を取得したい場合:

=VLOOKUP(102, A1:C4, 2, FALSE)

結果: 「鈴木」

実用的な VLOOKUP のヒント

1. 完全一致と近似一致の使い分け

VLOOKUPの第4引数は、検索方法を指定します。

  • FALSE(完全一致): 検索値と完全に一致するものだけを検索
  • TRUE(近似一致): 検索値と一致するか、それより小さい最大の値を検索

ヒント: 近似一致を使用する場合は、検索範囲の最初の列を昇順に並べておくことが重要です。

2. エラー処理の方法

VLOOKUP で検索値が見つからない場合、#N/A エラーが返されます。これを避けるには IFERROR 関数を組み合わせましょう。

=IFERROR(VLOOKUP(検索値, 検索範囲, 列番号, FALSE), "見つかりません")

3. 大文字小文字を区別しない検索

デフォルトでは VLOOKUP は大文字と小文字を区別します。区別せずに検索するには:

=VLOOKUP(LOWER(検索値), LOWER(検索範囲), 列番号, FALSE)

4. 複数シートからのデータ検索

他のシートのデータを検索する場合は、シート名を指定します:

=VLOOKUP(検索値, シート名!検索範囲, 列番号, FALSE)

5. 複数条件での検索

VLOOKUP は単一の条件でしか検索できませんが、MATCH 関数と INDEX 関数を組み合わせることで複数条件での検索が可能になります:

=INDEX(結果範囲, MATCH(1, (条件1=範囲1)*(条件2=範囲2), 0))

よくある VLOOKUP のミス

1. 絶対参照と相対参照の混同

検索範囲をコピーして使いまわす場合、絶対参照($記号)を使用しないと、参照がずれてしまいます。

誤: =VLOOKUP(A2, B2:D10, 2, FALSE) 正: =VLOOKUP(A2, $B$2:$D$10, 2, FALSE)

2. 列番号の勘違い

列番号は常に検索範囲の左端を1として数えます。検索範囲外の列を指定するとエラーになります。

3. 検索範囲に検索値が含まれていない

検索範囲の最初の列に検索値が含まれていない場合、VLOOKUP は機能しません。

VLOOKUP の代替関数

1. HLOOKUP

水平方向(行)で検索する場合は HLOOKUP 関数を使用します。

2. INDEX + MATCH の組み合わせ

より柔軟な検索が必要な場合は、INDEX と MATCH の組み合わせがおすすめです。

=INDEX(結果の列, MATCH(検索値, 検索の列, 0))

3. XLOOKUP(新しいバージョンのみ)

最新のスプレッドシートでは、VLOOKUP の制限を解消した XLOOKUP 関数が利用可能です。

=XLOOKUP(検索値, 検索範囲, 返す範囲, [見つからない場合], [一致モード])

まとめ

VLOOKUP はスプレッドシートでデータを効率的に検索・参照するための強力なツールです。この記事で紹介したヒントを活用して、より効率的なデータ管理を実現しましょう。特に複雑なデータ処理が必要な場合は、INDEX + MATCH や XLOOKUP などの代替関数も検討してみることをおすすめします。

何か質問や追加のヒントがあれば、コメント欄でお知らせください!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

You might also like