【実践問題10選】VLOOKUP関数を使いこなす!基本から応用まで徹底演習

Excel

【ヒント】

  • VLOOKUP関数の検索値は左端列になければいけません。
  • 作業列(補助列)を作って、複数の条件を一つに結合してみましょう。

【解答&解説】

  1. Sheet1に作業列(例:D列)を追加します。
    D列に以下の結合式を入力し、下方向へコピーします。
    =A2&B2
    これにより、「東京ノート」「大阪ボールペン」といった結合された文字列が作成されます。
  2. Sheet2のC2セルに以下のVLOOKUP関数を入力し、フィルハンドルで下方向にコピーします。
    =VLOOKUP(A2&B2,Sheet1!$D$2:$D$5,3,FALSE)
    • A2&B2: Sheet2の検索条件である「支店名」と「商品名」を結合して、検索値とします。
    • Sheet1!$D$2:$D$5: Sheet1の作業列(D列)がVLOOKUP関数の検索範囲の左端になるように指定します。この時、取得したい「売上」の列番号は、範囲の左端(D列)から数えて3列目(D→E→Fの3列目)になります。

問題6:INDEX関数とMATCH関数を使ってVLOOKUPの弱点を克服する(応用!)

VLOOKUP関数は検索値が左端にある必要がありましたが、INDEXとMATCHを組み合わせることで、この制約を取り払えます。

【データ】 問題5の販売実績データを使用します。

【目的】 支店名から、商品コード列(B列)にない商品名(A列)を検索して売上を取得する。 例えば、「ノート」から「東京」支店の売上を検索する。

【期待する結果】

検索商品名支店名売上
ノート東京5000
ボールペン大阪3000

【ヒント】

  • INDEX関数は、指定した範囲の指定した行と列が交差するセルの値を返します。
  • MATCH関数は、指定した値が範囲の何番目にあるかを返します。

【解答】 Sheet2のC2セルに以下の関数を入力し、フィルハンドルで下方向にコピーします。

=INDEX(Sheet1!$C$2:$C$5,MATCH(A2,Sheet1!$B$2:$B$5,0),MATCH(B2,Sheet1!$A$2:$A$5,0))

【解説】

  • INDEX(Sheet1!$C$2:$C$5: 取得したいデータ(売上)がある範囲を指定します。
  • MATCH(A2,Sheet1!$B$2:$B$5,0): A2セル(検索商品名)がSheet1のB列(商品名列)の何番目にあるかを行番号として取得します。
  • MATCH(B2,Sheet1!$A$2:$A$5,0): B2セル(支店名)がSheet1のA列(支店名列)の何番目にあるかを列番号として取得します。
  • この組み合わせにより、VLOOKUPの「検索値が左端」という制約を回避し、より柔軟な検索が可能になります。
問題6-結果

問題7:近似一致(点数から評価を判定!)

数値の範囲に応じて評価を判定しましょう。

【データ】

評価基準(Sheet1)

点数評価
0D
60C
70B
80A
90S
評価基準

テスト結果(Sheet2)

名前点数評価
佐々木75
井上62
渡辺91
小林55
テスト結果

【目的】 Sheet2のC列に、点数に応じた評価をSheet1の基準から表示する。


【ヒント】

  • VLOOKUP関数の検索方法を「近似一致」に設定しましょう。

【解答】 Sheet2のC2セルに以下の関数を入力し、フィルハンドルで下方向にコピーします。

=VLOOKUP(B2,Sheet1!$A$2:$B$6,2,TRUE)

【解説】

  • TRUE: 近似一致で検索します。Sheet1のA列は昇順に並んでいる必要があります。指定した検索値(点数)以下の最大値を探し、その行のデータを返します。
問題7-結果

問題8:複数シートをまたいだ検索(IFERRORと組み合わせる!)

複数の支店ごとの商品リストから、商品コードを検索して情報を取得しましょう。もし最初のシートで見つからなければ、次のシートを探すようにします。

【データ】

東京支店商品リスト(Sheet1)

商品コード商品名
T001東京限定Tシャツ
T002東京キーホルダー
東京支店商品リスト

大阪支店商品リスト(Sheet2)

商品コード商品名
O001大阪たこ焼き味おかき
O002大阪城ミニチュア
大阪支店商品リスト

検索リスト(Sheet3)

商品コード商品名
T002
O001
F001

【目的】 Sheet3のB列に、商品コードに対応する商品名を表示する。まずSheet1を探し、見つからなければSheet2を探す。どちらにもなければ「見つかりません」と表示する。


【ヒント】

  • IFERROR関数をネスト(入れ子)にして、VLOOKUP関数を複数試しましょう。

【解答】 Sheet3のB2セルに以下の関数を入力し、フィルハンドルで下方向にコピーします。

=IFERROR(VLOOKUP(A2,Sheet1!$A$2:$B$3,2,FALSE),IFERROR(VLOOKUP(A2,Sheet2!$A$2:$B$3,2,FALSE),”見つかりません”))

【解説】

  • 最初のVLOOKUP(A2,Sheet1!$A$2:$B$3,2,FALSE) でSheet1を検索します。
  • もしSheet1で見つからずエラーになった場合、外側のIFERROR関数が次の処理に移ります。
  • IFERROR(VLOOKUP(A2,Sheet2!$A$2:$B$3,2,FALSE),"見つかりません") で、今度はSheet2を検索します。
  • Sheet2でも見つからなければ、最終的に「見つかりません」と表示されます。
問題8-結果

問題9:ワイルドカード検索(あいまい検索!)

特定の文字を含む文字列を検索したい時にワイルドカードを使用します。

【データ】

商品リスト(Sheet1)

商品名価格
赤りんご200
青りんご250
みかん180
グレープフルーツ300
商品リスト

検索シート(Sheet2)

検索条件価格
りんご
みかん
検索シート

【目的】 Sheet2のB列に、検索条件に対応する価格を表示する。「りんご」のように、特定の文字を含む商品を検索できるようにする。


【ヒント】

  • ワイルドカード「*」(任意の文字列)と「?」(任意の1文字)を使いましょう。
  • VLOOKUP関数でワイルドカードを使う場合、検索方法はFALSE(完全一致)を指定します。

【解答】 Sheet2のB2セルに以下の関数を入力し、フィルハンドルで下方向にコピーします。

=VLOOKUP(A2,Sheet1!$A$2:$B$5,2,FALSE)

【解説】

  • 検索値にワイルドカード(*?)が含まれている場合、VLOOKUP関数はそれを認識し、パターンマッチングを行います。
  • *りんご*: 「りんご」という文字が前後に任意の文字列があっても一致します。

問題9-結果

問題10:日付を検索値にする場合(データ型に注意!)

日付を検索値にする場合は、表示形式だけでなく、実際の値(シリアル値)が一致しているか確認が必要です。

【データ】

売上データ(Sheet1)

日付商品名売上
2025/1/1ノート5000
2025/1/5ボールペン3000
2025/1/10消しゴム2000
売上データ

検索シート(Sheet2)

日付商品名売上
2025/1/5
2025/1/1
検索シート

【目的】 Sheet2のC列に、日付に対応する売上を表示する。


【ヒント】

  • Excelでは日付は「シリアル値」という数値で管理されています。
  • VLOOKUP関数は見た目の日付ではなく、シリアル値が一致するかどうかで判断します。
  • もし検索結果がエラーになる場合は、TEXT関数VALUE関数などでデータ型を揃えてみましょう。

【解答】 Sheet2のC2セルに以下の関数を入力し、フィルハンドルで下方向にコピーします。

=VLOOKUP(TEXT(A2,”yyyy/mm/dd”),TEXT(Sheet1!$A$2:$A$4,”yyyy/mm/dd”),2,FALSE)

【解説】

  • 日付の形式が異なるとVLOOKUPは一致と判断しない場合があります。
  • TEXT(A2,"yyyy/mm/dd"): 検索値を「yyyy/mm/dd」形式の文字列に変換します。
  • TEXT(Sheet1!$A$2:$A$4,"yyyy/mm/dd"): 検索範囲の日付列も同じ形式の文字列に変換します。
  • これにより、表示形式の違いによる検索エラーを防ぎ、正しくシリアル値の一致を判断できます。
    • ※注意: この方法は、検索範囲が文字列として扱われるため、パフォーマンスに影響が出る場合があります。もし可能であれば、元のデータの形式を統一することが最も確実です。

VLOOKUP関数で陥りやすい落とし穴と回避策(練習問題から学べること)

でんちゃん
でんちゃん

これらの練習問題を解く中で、以下のようなVLOOKUP関数特有の落とし穴に気づかれたかもしれません。

  • 検索値は一番左の列!:
    VLOOKUPの最も重要なルールです。これに反するとエラーになります。
  • 大文字・小文字、半角・全角の区別:
    見た目は同じでもExcelは別の文字と認識します。TRIM関数やLOWER関数/UPPER関数で整形を。
  • 余分なスペースや見えない文字:
    データに隠れたスペースがあると一致しません。TRIM関数やCLEAN関数で取り除きましょう。
  • 列の挿入・削除による列番号のずれ:
    列番号を直接指定しているため、元の表の構造が変わると結果が狂います。MATCH関数との組み合わせで自動化しましょう。
  • データ型(数値と文字列)の不一致:
    日付や数字が文字列として保存されていると一致しないことがあります。TEXT関数やVALUE関数で変換を。
  • 近似一致と完全一致の使い分け:
    ほとんどの場合「FALSE」を使いますが、点数評価のような範囲検索では「TRUE」を使います。

これらの問題に遭遇したら、焦らずに原因を探し、適切な対処法を試してみてください。


まとめ:練習を重ねてVLOOKUP関数を自分のものに!

でんちゃん
でんちゃん

VLOOKUP関数の練習問題10選、お疲れ様でした!すべての問題をクリアできた方も、途中でつまずいた方も、この演習を通してVLOOKUP関数への理解がぐっと深まったのではないでしょうか。

Excelの関数は、実際に手を動かして様々なデータで試すことで、本当に「使える」スキルになります。今回学んだ知識と経験を活かして、日々の業務におけるデータ処理を効率化し、あなたのExcelスキルをさらに磨いていきましょう!

これからもExcelに関する役立つ情報をお届けしていきますので、ぜひ参考にしてくださいね。

コメント

タイトルとURLをコピーしました