ヒント
新しい XLOOKUP 関数を使用してみてください。これは、VLOOKUP の改良版であり、任意の方向で機能し、既定で完全一致を返します。これにより、以前の関数よりも使いやすく便利になります。
テーブルまたは範囲の内容を行ごとに検索する場合は、VLOOKUP を使用します。 たとえば、自動車部品の価格を部品番号で検索するか、従業員 ID に基づいて従業員名を検索します。
その最も簡単な形式で、VLOOKUP 関数は次のようになります。
=VLOOKUP (検索対象、検索する場所、返される値を含む範囲内の列番号、1/TRUE または 0/FALSE として示される近似または完全一致 – を返します)。
ヒント
- VLOOKUP の使い方のコツは、調べたい値 (結果) が、調べたい戻り値 (量) の左側に来るようにデータを整理することです。
- Microsoft Copilotサブスクライバーである場合、Copilot は VLookup 関数または XLookup 関数の挿入と使用をさらに簡単にすることができます。 「Excel での Copilot の検索が簡単になる」を参照してください。
技術的詳細
表内で値を検索するには、VLOOKUP 関数を使用します。
構文
VLOOKUP(検索値, 範囲, 列番号, [検索の型])
次に例を示します。
- =VLOOKUP(A2,A10:C20,2,TRUE)
- =VLOOKUP("前田",B2:E7,2,FALSE)
- =VLOOKUP(A2,'Client Details'!A:F,3,FALSE)
| 引数名 | 説明 |
|---|---|
| 検索値 (必須) | 検索の対象となる値。 検索する値は、table_array引数で指定したセル範囲の最初の列に含 まれている 必要があります。 たとえば、 テーブル配列 がセル B2:D7 にまたがっている場合、lookup_valueは列 B にある必要があります。 Lookup_value には、値またはセルへの参照を指定できます。 |
| 範囲 (必須) | VLOOKUP が lookup_value と戻り値を検索するセル範囲。 名前付き範囲またはテーブルを使用でき、セル参照の代わりに引数に名前を使用できます。 セル範囲の最初の列には 、lookup_valueが含まれている必要があります。 セル範囲には、検索する戻り値も含める必要があります。 ワークシートで範囲を選択する方法については、こちらを参照してください。 |
| 列番号 (必須) | 戻り値を含む列番号 ( table_arrayの左端の列の場合は 1 から始まる)。 |
| 検索の型 (省略可) |
VLOOKUP を使用して、近似一致を検索するか、完全一致を検索するかを指定する論理値です。
|
利用方法
VLOOKUP の構文を作成するには、4 つの情報が必要になります。
- 検索する値、検索値とも呼ばれます。
- 検索値が含まれるセル範囲。 VLOOKUP が正常に機能するために、検索値は範囲の最初の列に必ず位置している必要があることに注意してください。 たとえば、検索値がセル C2 にある場合、範囲は C 列から始まる必要があります。
- 戻り値を含む範囲内の列番号。 たとえば、B2:D11 を範囲として指定した場合、B を最初の列、C を 2 番目というように数えます。
- 必要に応じて、戻り値として近似一致を検索する場合は TRUE、完全一致を検索する場合は FALSE を指定できます。 何も指定しない場合、既定値は TRUE、つまり近似一致を常に返します。
以上をまとめると次のようになります。
=VLOOKUP(検索値、参照値を含む範囲、戻り値を含む範囲内の列番号、近似一致 (TRUE) または完全一致 (FALSE))。
使用例
以下は、VLOOKUP のその他の例です。
使用例 1
使用例 2
使用例 3
使用例 4
使用例 5
よくある問題
| 問題 | 原因 |
|---|---|
| 戻された値が正しくない | range_lookupが TRUE または省略されている場合は、最初の列をアルファベット順または数値順に並べ替える必要があります。 左端列が並べ替えられていない場合、想定外の値が戻される可能性があります。 左端列を並べ替えるか、または FALSE を使用して、完全一致を検索してください。 |
| セルに #N/A と表示される |
|
| セルに #REF! と表示される |
col_index_numがテーブル配列内の列の数を超える場合は、#REF が取得されます。 が返されます。 VLOOKUP で #REF! VLOOKUP のエラーについては、「 #REF! エラーを修正する方法」を参照してください。 |
| セルに #VALUE! と表示される |
table_arrayが 1 未満の場合は、#VALUE が表示されます。 エラー値を返します。 VLOOKUP で #VALUE! VLOOKUP のエラーについては、「 VLOOKUP 関数で #VALUE! エラーを修正する方法」を参照してください。 |
| セルに #NAME? と表示される | #NAME?error 値は、通常、数式に引用符が含まれていないことを意味します。 ユーザーの名前を検索するには、数式内の名前を引用符で囲む必要があります。 たとえば、=VLOOKUP("Fontana",B2:E7,2,FALSE)に "Fontana" という名前を入力します。 詳細については、「エラー値 #NAME! を修正する方法」を参照してください。 |
| Excel での #SPILL! と表示される | この特定 の #SPILL! エラー は、通常、数式が参照値の暗黙的な積集合に依存し、列全体を参照として使用していることを意味します。 たとえば、=VLOOKUP( A:A,A:C,2,FALSE)。 この問題を解決するには、検索参照を @演算子 =VLOOKUP(@A:A,A:C,2,FALSE) のように固定します。 または、従来の VLOOKUP メソッドを使用して、列全体ではなく 1 つのセルを参照することもできます。=VLOOKUP(A2,A:C,2,FALSE)。 |
ベスト プラクティス
| 操作 | 理由 |
|---|---|
| range_lookupに絶対参照を使用する | 絶対参照を使うと、数式を下方向へコピーした場合に常にまったく同じ検索範囲を参照することができます。 セルの絶対参照については、こちらを参照してください。 |
| 数値や日付を文字列として保存しない。 | 数値または日付の値を検索するときは、 table_array の最初の列のデータがテキスト値として格納されていないことを確認します。 文字列として保存されている場合、誤った値や想定外の値が返されることがあります。 |
| 左端列を並べ替える | range_lookupが TRUE の場合、VLOOKUP を使用する前に、table_arrayの最初の列を並べ替えます。 |
| ワイルドカード文字を使う |
range_lookupが FALSE で、lookup_valueがテキストの場合は、ワイルドカード文字 (疑問符 (?) とアスタリスク (*) をlookup_valueで使用できます。 疑問符は任意の 1 文字に相当します。 アスタリスクは任意の一連の文字列に相当します。 ワイルドカード文字ではなく、通常の文字として疑問符やアスタリスクを検索する場合は、その文字の前にチルダ (~) を付けます。 たとえば、=VLOOKUP("Fontan?",B2:E7,2,FALSE) は、Fontana のすべてのインスタンスを検索します。最後の文字は異なる可能性があります。 |
| データに誤字が含まれていないことを確認する。 | 最初の列でテキスト値を検索する場合は、先頭列のデータに先頭のスペース、末尾のスペース、直線 ( ' または " ) と中かっこ ( ' または ") 引用符の一貫性のない使用、または印刷されていない文字がないことを確認します。 このいずれかに該当する場合は、予期しない値が返されることがあります。 正確な結果を得るために、CLEAN 関数または TRIM 関数を使って、表のセル値の末尾にある余分なスペースを削除してください。 |
補足説明
Excel Tech Community の専門家にいつでも依頼したり、コミュニティでサポートを受けたりすることができます。