VLOOKUP 関数
Microsoft Excel の関数 VLOOKUP の使い方を説明します、
これは 指定された範囲を検索して検索結果を返す関数です
VLOOKUPは 縦型 (Vertical) の範囲の中から、HLOOKUPは 横型 (Horizontal) の範囲の中から
データを探し出します、ここでは VLOOKUPについて説明します
VLOOKUP 関数の 別シート版 はこちら → VLOOKUP 別シート版
VLOOKUP 関数の 複数範囲版 はこちら → VLOOKUP 複数範囲 版
VLOOKUP 関数
VLOOKUP 関数 の基本
-
VLOOKUP
-
[英語]:Vertical LOOK UP
-
[読み]:ブイ・ルックアップ
-
この関数は 指定された範囲を検索して 検索結果 を返します
-
[書式]:=VLOOKUP (
[検索値] , [範囲] , [列番号] , [検索の型] )
-
[検索値]:検索する値
-
[範囲]:取り出したいデータの表、ただし、左端1列目が検索されるデータ列
-
[列番号]:[範囲]の何列目を答えとして返すか
-
[検索の型]:
- 近似検索するときは TRUE、完全一致するものを探すときは FALSE
- 実際的には [範囲]が昇順に並んでいる場合は TRUE、そうでない場合は FALSE
VLOOKUP 関数 基本的 使用例
- 下図のように セルB8 から セルD12 に [範囲]データ を準備します
- セル D3に =VLOOKUP(
C3 ,
B8:D12 ,
3 ,
FALSE) と入力します
- セル C3に 4 と入力すると、
- VLOOKUP 関数は下のように動作します
- [範囲] の1列目 を上から 探し、
- 3行目 で 4 がマッチして、
- [列番号] が 3 なので [範囲]の左から3列目 3行目から 島田洋一 が返されます
-

- [おまけ]:
別の [列番号] を使う例:
式 =VLOOKUP(C3,B8:D12,2,FALSE)を使うと郵便番号 813-0013 が返されます
- 関連サイト:
support.microsoft.com:
VLOOKUP 関数
VLOOKUP 関数の用途
このように、VLOOKUPを使うと、顧客id から 顧客名 を見つけるようなことができるのです
- 人名の一覧から → 電話番号を探し出す
- 会社名の一覧から → 担当者名を探し出す
- 生徒の一覧から → 数学の点数を探し出す
VLOOKUP 関数 で #N/A
VLOOKUP で #N/A が返される場合があります
- [意味] (No Value Available) #N/A は [範囲] に [検索値] がみつからない という意味です
- [理由1] セルC3に何も入力されていない場合
- [理由2] セルC3に [範囲] の1列目にない 顧客id が入力された場合
- [理由3] テーブルにあるはずなのに #N/A が返される場合
- VLOOKUP の式をコピーした時に、[範囲] がずれている
- [範囲] が途中の空白行で途切れている
- データ側 又は [範囲]側 の文字の間違いの場合
- 0 数字ゼロ と O 英字のオー
- D 半角 と D 全角
- 1 数字 と l 英字のエル
- スペースが紛れ込んでいる
- [対策]
- 無視して、何も返さない方法
=IFERROR(VLOOKUP(C3,B8:D12,3,FALSE)
,"")
- 0 を返す方法
=IFERROR(VLOOKUP(C3,B8:D12,3,FALSE)
,0)
- 「なし」を返す方法
=IFERROR(VLOOKUP(C3,B8:D12,3,FALSE)
,"なし")
- 条件付き書式で隠す方法
- [書式]メニュー → [条件付き書式]
- 条件を [数式] に
- 式を =iserror(D3) に
- 書式で [フォント色]を[背景色]と同じ色 に設定
- 関連ページ:
- 関連サイト:support.microsoft.com:
エラー値 #N/A を修正する方法
VLOOKUP 式をコピーする時
VLOOKUP 関数の入った式をコピーすると、[範囲] がずれて、正しく検索されない場合があります
- =VLOOKUPの式が入力された セルD3 を下へコピーする場合、
=VLOOKUP(C4,B9:D13,3,FALSE)のように [範囲] がずれて 正しく検索できません
- [対策]として
- =VLOOKUP(C3,B8:D12,3,FALSE)を、
=VLOOKUP(C3,
$B$8:$D$12,3,FALSE) のようにすると
- [範囲]が ずれないで 正しくコピーできます
- $を入れることで、行数や列名を動かないようにできます、これを相対参照、絶対参照と言います、詳しくは こちら ↓ 絶対参照と相対参照
- 関連ページ:
VLOOKUP 関数で #REF!
VLOOKUP 関数では エラー値 #REF! が返される場合があります
- [意味] (Invalid Cell Reference) #REF! は無効なセル参照 を意味します
- [理由]
- [範囲] が無効な(削除された)場合 #REF! が返されます
- [範囲] の列数以上に [列番号] を指定した場合 #REF! が返されます
- [対策]
#REF! エラーが返された場合、該当のセルで、[範囲] が本当に正しいか、チェックしましょう
- 関連ページ:
- 関連サイト:support.microsoft.com:
エラー値 #REF! を修正する方法
VLOOKUP 別シート版
[範囲]と 検索式 が別のシートにある例です
- Sheet1 に [範囲] データを入力します
-

- Sheet2 の セルD2 に 下のVLOOKUP 式 を入力します
- =VLOOKUP(
C2,
Sheet1!A2:C6,
3,
FALSE)
- Sheet1!A2:C6 の部分はシート名 Sheet1 をクリックしてからセルA2からC6をドラッグして入力することができます
- Sheet2 の セルC2 に顧客id 4 を入力すると、セル D2 に島田洋一 が返されます
-

- このように、VLOOKUP 式の [範囲]に シート名!セル範囲 を指定すると、[範囲]と 検索式 を別々のシートにすることができます
- [少し応用]
Sheet2 セルD2 の式を =VLOOKUP(C2,Sheet1!A$2:C$6,3,FLASE) のようにすると、
セルD2を下にコピーした時、[範囲]がずれないようにできます
VLOOKUP 関数 複数範囲 版
- 基本的には、VLOOKUP 関数 は 複数範囲 に対応していません、
- 一般的には IFERROR 関数で VLOOKUP が #N/A だったら別の [範囲] を VLOOKUP で探す方法が使われます(例:複数テーブルから検索)が、
- [範囲]が複数ある場合、COUNTIFで[範囲]に存在するかかどうか調べてからVLOOKUPで検索して結合する方法を [みやほりん] さんが書いています↓
- =IF(COUNTIF(Sheet2!...),VLOOKUP(A1,Sheet2!...),"")&IF(COUNTIF(Sheet3!...),VLOOKUP(A1,Sheet3!...),"")
- [[20020625230516]] 『VLOOKUP 範囲指定を複数sheetで』(HIRO)
VLOOKUP 関数・詳細
-
VLOOKUP 関数・もっと詳しく → ExcelPedia:VLOOKUP (PDF書類が別窓で開きます)
キーワード
- VLOOKUP
- 検索の型
- VLOOKUPで#N/A
- #N/A
- #REF!
- VLOOKUPで#REF!
- 未入力
- 別シート版
- 複数 範囲 版
移動の経緯
このページ func vlookup は ライブラリ VLOOKUP(e1tw) と ライブラリ VLOOKUP 別シート版(e1t) と
マイスター VLOOKUP(mm0921) をまとめたものです、もし必要なら、
旧ページは下のリンクから参照できます[2019/07/10]
- 旧 ライブラリ VLOOKUP (e1tw)
- 旧 ライブラリ VLOOKUP.別シート版 (e1t)
- 旧 マイスター VLOOKUP (mm0921)
2024/04/13:更新 2019/07/10:登録 訪問者: