「VLOOKUPって、名前は知ってるけど、一体何に使えるんだろう…」営業部の佐藤さんは、大量の顧客データと売上データを前に、いつも頭を抱えていました。顧客リストと売上データは別々のExcelファイルに保存されており、顧客ごとの売上実績を把握するのに、膨大な時間を費やしていたのです。もしVLOOKUPを使いこなせれば、この集計作業を大幅に効率化できるはず。この記事では、Excel歴15年の筆者が、VLOOKUPの基本的な使い方から、実務で役立つ応用例、そして陥りやすいエラーの解決策まで、徹底的に解説します。VLOOKUPの使い方をマスターして、あなたのExcel業務をレベルアップさせましょう。
VLOOKUP 使い方:脱・手作業!業務効率化への第一歩
VLOOKUPとは:なぜExcelの必須関数と言われるのか
VLOOKUP関数は、指定した検索値に基づいて、別の表から関連するデータを抽出する、Excelの強力な関数です。例えるなら、住所録から特定の住所に対応する名前を探し出すようなものです。経理部であれば、勘定科目コードから勘定科目名を、営業部であれば、顧客IDから顧客情報を抽出するといった場面で活躍します。VLOOKUP関数を使いこなすことで、手作業によるデータ照合や転記作業を大幅に削減し、業務効率を飛躍的に向上させることができます。VLOOKUPは、Excelを使う上で避けては通れない、まさに「必須」の関数と言えるでしょう。
VLOOKUPの構文:4つの引数を徹底解説
VLOOKUP関数は、以下の4つの引数で構成されています。それぞれの引数の意味を理解することで、VLOOKUP関数をより効果的に使いこなせるようになります。
- 検索値(Lookup_value):検索したい値。例えば、商品コード、顧客ID、社員番号など。この値に基づいて、別の表から対応するデータを検索します。
- 範囲(Table_array):検索対象となるテーブル範囲。商品マスタ、顧客リスト、人事マスタなど、検索値と抽出したいデータが含まれる範囲を指定します。範囲は絶対参照($記号)で固定するのが一般的です。
- 列番号(Col_index_num):範囲内で、抽出したい値が入力されている列番号。範囲の左端の列を1として、何番目の列からデータを抽出するかを指定します。
- 検索の型(Range_lookup):検索方法を指定。TRUE(近似一致)またはFALSE(完全一致)を指定します。実務では、ほとんどの場合、FALSE(完全一致)を使用します。
数式で表すと、=VLOOKUP(検索値, 範囲, 列番号, 検索の型)となります。例えば、商品コード「A-001」の商品名を商品マスタから抽出する場合、以下のような数式になります。
=VLOOKUP("A-001", 商品マスタ!$A$1:$C$100, 2, FALSE)
この数式は、「商品マスタ」シートのA1:C100の範囲で、「A-001」という商品コードを検索し、2列目(商品名)の値を返します。検索の型はFALSEなので、完全一致検索を行います。Microsoftの公式ドキュメントにも、各引数の詳細な説明が記載されています。(参照: Microsoft公式サイト)
完全一致(FALSE)と近似一致(TRUE):使い分けのコツ
VLOOKUP関数の「検索の型」には、TRUE(近似一致)とFALSE(完全一致)の2種類があります。実務でVLOOKUPを使う場合、基本的にはFALSE(完全一致)を選択します。これは、検索値と完全に一致するデータのみを抽出したいケースがほとんどだからです。TRUE(近似一致)は、検索値が見つからない場合に、最も近い値を返すため、意図しない結果になる可能性があります。
例えば、商品コードが「A-001」の商品を検索したのに、「A-002」の商品名が返ってくる、といった事態が発生する可能性があります。経理の現場では、この設定を忘れて集計がずれるケースをよく見かけます。初心者がつまずきやすいポイントの一つです。
ただし、TRUE(近似一致)が役立つ場面もあります。例えば、年齢に応じて料金を決定する場合など、検索値が完全に一致するものがなくても、最も近い値を適用したい場合に有効です。TRUE(近似一致)を使用する場合は、検索範囲を昇順にソートしておく必要があります。ソートされていない場合、正しい結果が得られない可能性があります。
ポイント: 基本的にはFALSE(完全一致)を使用し、TRUE(近似一致)は慎重に使いましょう。TRUEを使う場合は必ず昇順ソートを!
VLOOKUP 実用例:3つの業務シナリオ
シナリオ1:売上管理表の自動作成
営業部の鈴木さんは、毎月作成する売上管理表に時間を取られていました。売上データには商品コードしか記載されておらず、商品名や単価は別の商品マスタに記載されているため、手作業で転記する必要があったからです。VLOOKUP関数を使えば、商品コードをキーにして、商品マスタから商品名や単価を自動的に抽出できます。これにより、転記ミスをなくし、売上管理表の作成時間を大幅に短縮できます。
例えば、A列に商品コード、B列に商品名、C列に単価が記載された「商品マスタ」シートがあるとします。別のシート(売上データ)で、A2セルに商品コードが入力されたら、B2セルに商品名、C2セルに単価が表示されるようにするには、以下の数式を入力します。
B2セル:=VLOOKUP(A2, 商品マスタ!$A$1:$C$100, 2, FALSE)
C2セル:=VLOOKUP(A2, 商品マスタ!$A$1:$C$100, 3, FALSE)
この数式を下にコピーすれば、すべての商品について、商品名と単価が自動的に表示されます。

シナリオ2:請求書作成の効率化
経理部の山田さんは、毎月発行する請求書の作成に時間を取られていました。請求書には、顧客名、住所、電話番号など、様々な顧客情報を記載する必要がありますが、これらの情報は顧客リストにしか記載されていません。VLOOKUP関数を使えば、顧客IDをキーにして、顧客リストから必要な情報を自動的に抽出できます。これにより、請求書作成の時間を大幅に短縮し、入力ミスを減らすことができます。
例えば、A列に顧客ID、B列に顧客名、C列に住所、D列に電話番号が記載された「顧客リスト」シートがあるとします。別のシート(請求書)で、A2セルに顧客IDが入力されたら、B2セルに顧客名、C2セルに住所、D2セルに電話番号が表示されるようにするには、以下の数式を入力します。
B2セル:=VLOOKUP(A2, 顧客リスト!$A$1:$D$100, 2, FALSE)
C2セル:=VLOOKUP(A2, 顧客リスト!$A$1:$D$100, 3, FALSE)
D2セル:=VLOOKUP(A2, 顧客リスト!$A$1:$D$100, 4, FALSE)
この数式を下にコピーすれば、すべての顧客について、顧客情報が自動的に表示されます。

シナリオ3:勤怠管理での部署名自動入力
総務部の高橋さんは、毎月作成する勤怠管理表に苦労していました。従業員IDを入力するたびに、部署名を手入力する必要があったからです。VLOOKUP関数を使えば、従業員IDをキーにして、人事マスタから部署名を自動的に抽出できます。これにより、入力ミスを減らし、勤怠管理表の作成時間を大幅に短縮できます。
例えば、A列に従業員ID、B列に氏名、C列に部署名が記載された「人事マスタ」シートがあるとします。別のシート(勤怠管理表)で、A2セルに従業員IDが入力されたら、B2セルに部署名が表示されるようにするには、以下の数式を入力します。
B2セル:=VLOOKUP(A2, 人事マスタ!$A$1:$C$100, 3, FALSE)
この数式を下にコピーすれば、すべての従業員について、部署名が自動的に表示されます。

研修で教えていると、この例を応用して、シフト表に自動で従業員名を表示させたり、経費精算書に自動で所属部署を表示させたりする事例をよく見かけます。VLOOKUPの「使い方」を覚えることで、様々な業務を効率化できることが分かります。
VLOOKUP 応用:IFERROR関数との連携でエラー表示をスマートに
#N/Aエラーを回避!IFERROR関数との組み合わせ
VLOOKUP関数は、検索値が見つからない場合、#N/Aエラーを表示します。このエラー表示は、見た目が悪いだけでなく、後続の計算にも影響を与える可能性があります。IFERROR関数を組み合わせることで、#N/Aエラーを回避し、代わりに指定した値を表示できます。
例えば、=IFERROR(VLOOKUP(A2, 商品マスタ!$A$1:$C$100, 2, FALSE), "該当なし")と入力すると、A2セルに商品コードが存在しない場合、「該当なし」と表示されます。””の中身は自由に設定可能です。「-」や「未登録」などもよく使われます。
このテクニックは、経理部門でよく使用されます。例えば、売上データに存在しない商品コードが含まれている場合、「該当なし」と表示することで、エラーを早期に発見し、修正することができます。

数式をシンプルに! IFERROR関数の活用例
IFERROR関数は、VLOOKUP関数だけでなく、他の関数と組み合わせて、エラー処理を行うことができます。例えば、割り算を行う際に、0で割るエラーが発生する可能性がある場合、IFERROR関数を使って、エラーを回避することができます。
=IFERROR(A1/B1, 0)と入力すると、B1セルが0の場合、0が表示されます。
このように、IFERROR関数は、Excelの数式をより堅牢にするために、非常に役立つ関数です。VLOOKUPと組み合わせることで、より実用的なExcelシートを作成することができます。
VLOOKUP エラー解決:#N/Aエラーの原因と対策
原因1:検索値が範囲内に存在しない
VLOOKUP関数で最もよく発生するエラーは、#N/Aエラーです。このエラーは、検索値が範囲内に存在しない場合に発生します。例えば、商品コード「A-999」の商品を検索したのに、商品マスタに「A-999」という商品コードが存在しない場合、#N/Aエラーが表示されます。
対策:検索値が正しいかどうか、範囲内に存在するかどうかを確認しましょう。入力ミスや、データが更新されていないなどの原因が考えられます。また、TRIM関数を使って、検索値の前後の不要なスペースを削除することも有効です。
原因2:範囲指定が間違っている
範囲指定が間違っている場合も、#N/Aエラーが発生する可能性があります。例えば、範囲がずれていたり、必要な列が含まれていなかったりする場合です。範囲は絶対参照($記号)で固定するのが基本ですが、コピー&ペースト時にずれてしまうこともあります。
対策:範囲指定が正しいかどうか、再度確認しましょう。範囲がずれていないか、必要な列が含まれているか、絶対参照で固定されているかなどを確認します。特に、数式をコピー&ペーストした場合は、範囲がずれていないか注意が必要です。

原因3:完全一致(FALSE)なのに類似の値しかない
検索の型をFALSE(完全一致)に設定している場合、検索値と完全に一致する値が存在しないと、#N/Aエラーが発生します。例えば、商品コード「A-001 」(末尾にスペースあり)の商品を検索したのに、商品マスタには「A-001」という商品コードしか存在しない場合、#N/Aエラーが表示されます。
対策:検索値と範囲内の値が完全に一致するかどうかを確認しましょう。スペースや全角/半角の違い、大文字/小文字の違いなどもチェックが必要です。CLEAN関数を使って、不要な文字コードを削除することも有効です。
注意点: スペース、全角/半角、大文字/小文字の違いに注意!
VLOOKUP vs. INDEX & MATCH:状況に応じた使い分け
VLOOKUPのメリット・デメリット
VLOOKUP関数は、非常に便利な関数ですが、いくつかのデメリットも存在します。まず、VLOOKUP関数は、検索値が範囲の左端の列に存在する必要があります。また、列番号を直接指定するため、列の挿入や削除を行うと、数式を修正する必要がある場合があります。
メリット:
- 直感的で分かりやすい
- 比較的簡単に使える
デメリット:
- 検索値が範囲の左端の列に必要
- 列の挿入・削除に弱い
- 処理速度が遅い場合がある(大規模データ)
INDEX & MATCH関数のメリット・デメリット
INDEX関数とMATCH関数を組み合わせることで、VLOOKUP関数のデメリットを克服することができます。INDEX関数は、指定した範囲内の行番号と列番号に対応する値を返す関数です。MATCH関数は、指定した範囲内で、検索値が何番目に存在するかを返す関数です。INDEX関数とMATCH関数を組み合わせることで、検索値が範囲の左端の列に存在する必要がなくなり、列の挿入や削除にも強くなります。
メリット:
- 検索値が範囲の左端の列になくてもOK
- 列の挿入・削除に強い
- 処理速度がVLOOKUPより速い場合がある
デメリット:
- VLOOKUPより複雑で分かりにくい
- 数式の記述がやや難しい
どちらを選ぶべきか?状況に応じた判断
VLOOKUP関数とINDEX & MATCH関数は、それぞれメリットとデメリットがあります。どちらを選ぶべきかは、状況によって異なります。例えば、小規模なデータで、検索値が範囲の左端の列に存在する場合は、VLOOKUP関数を使うのが簡単です。一方、大規模なデータで、検索値が範囲の左端の列に存在しない場合や、列の挿入や削除を行う可能性がある場合は、INDEX & MATCH関数を使うのがおすすめです。筆者の経験では、大規模データを扱う場合は、INDEX & MATCHの方が処理速度が速いことが多いです。
VLOOKUP 業務効率化:時短テクニックとショートカット
検索範囲を名前定義で管理
VLOOKUP関数で頻繁に使用する範囲は、名前定義で管理すると便利です。名前定義とは、セル範囲に名前を付ける機能です。名前定義を使うことで、数式の中でセル範囲を直接指定する代わりに、名前を使うことができます。これにより、数式が分かりやすくなり、範囲を変更する際にも、名前定義を変更するだけで済みます。
設定方法:
- 範囲を選択
- 数式バーの左側の名前ボックスに名前を入力
- Enterキーを押す
例えば、商品マスタの範囲(A1:C100)に「商品マスタ」という名前を付けた場合、VLOOKUP関数の数式は、=VLOOKUP(A2, 商品マスタ, 2, FALSE)となります。

ショートカットキーで作業効率アップ
VLOOKUP関数を使う際に、ショートカットキーを活用することで、作業効率を大幅に向上させることができます。
- F4キー:絶対参照/相対参照の切り替え
- Ctrl + Shift + Enter:配列数式として入力
- Alt + =:SUM関数を自動入力
特に、F4キーは、範囲を絶対参照で固定する際に非常に役立ちます。数式を入力する際に、範囲を選択した後、F4キーを押すことで、簡単に絶対参照に切り替えることができます。実務でよく見かけるのは、数式をコピーする際に、絶対参照の設定を忘れてしまい、範囲がずれてしまうケースです。ショートカットキーを使いこなすことで、このようなミスを減らすことができます。
Excelテーブル機能との連携
Excelのテーブル機能を使うと、VLOOKUP関数をさらに便利に使うことができます。テーブル機能を使うと、範囲が自動的に拡張されるため、データが追加された場合でも、数式を修正する必要がありません。また、テーブル機能には、集計機能やフィルター機能なども搭載されており、データの分析にも役立ちます。Microsoftの公式ドキュメントにも、テーブル機能の詳しい説明が記載されています。(参照: Microsoft公式サイト)
VLOOKUP Googleスプレッドシートとの違い
関数名と引数の違い
VLOOKUP関数は、Excelだけでなく、Googleスプレッドシートでも利用できます。ただし、関数名や引数の表記に、若干の違いがあります。Googleスプレッドシートでは、VLOOKUP関数は、=VLOOKUP(検索値, 範囲, 列番号, [並べ替え済み])と表記されます。「検索の型」が「並べ替え済み」という引数名になっている点が異なります。また、省略した場合のデフォルト値が、ExcelではTRUE(近似一致)であるのに対し、GoogleスプレッドシートではTRUE(データは並べ替えられているとみなされる)である点も異なります。
数式入力と操作感の違い
ExcelとGoogleスプレッドシートでは、数式の入力方法や操作感にも違いがあります。Excelでは、数式バーに直接数式を入力するのに対し、Googleスプレッドシートでは、セルに直接数式を入力します。また、Excelでは、関数の引数を入力する際に、ヒントが表示されますが、Googleスプレッドシートでは、より詳細なヘルプが表示されます。
互換性と注意点
Excelで作成したVLOOKUP関数を含むシートを、Googleスプレッドシートで開くことができます。ただし、Excel固有の機能や書式設定は、Googleスプレッドシートで正しく表示されない場合があります。また、GoogleスプレッドシートでVLOOKUP関数を含むシートを編集した場合、Excelで開くと、数式が正しく動作しない場合があります。 特に、日付の扱いには注意が必要です。ExcelとGoogleスプレッドシートでは、日付のシリアル値が異なるため、VLOOKUP関数で日付を扱う場合は、書式設定を統一する必要があります。
VLOOKUP バージョン別対応:Excel 2016/2019/365
Excel 2016
Excel 2016は、VLOOKUP関数を標準で搭載しています。基本的なVLOOKUP関数の機能は、Excel 2016でも十分に利用できます。ただし、最新バージョンのExcelに搭載されている、新しい関数や機能は利用できません。
Excel 2019
Excel 2019も、VLOOKUP関数を標準で搭載しています。Excel 2019では、新しい関数として、IFS関数やSWITCH関数などが追加されました。これらの関数とVLOOKUP関数を組み合わせることで、より複雑な条件分岐を行うことができます。
Microsoft 365
Microsoft 365は、常に最新バージョンのExcelを利用できるサブスクリプションサービスです。Microsoft 365では、VLOOKUP関数に加えて、XLOOKUP関数という新しい関数が利用できます。XLOOKUP関数は、VLOOKUP関数のデメリットを克服した、より強力な関数です。例えば、検索値が範囲の左端の列に存在する必要がなくなり、範囲の指定方法もより柔軟になりました。実務では、Microsoft 365を利用している企業が増えており、XLOOKUP関数を積極的に活用するケースも増えています。 Microsoftの公式ドキュメントにも、XLOOKUP関数の詳細な説明が記載されています。(参照: Microsoft公式サイト)
VLOOKUP 補足FAQ:よくある質問と回答
Q1: VLOOKUPで複数の条件を指定できますか?
A1: VLOOKUP関数単体では、複数の条件を指定することはできません。複数の条件を指定する場合は、作業列を作成して、複数の条件を組み合わせた検索値を作成するか、INDEX関数とMATCH関数を組み合わせる必要があります。
Q2: VLOOKUPでエラーが発生した場合、どうすればいいですか?
A2: まず、エラーの原因を特定しましょう。#N/Aエラーの場合は、検索値が範囲内に存在しない可能性があります。#REF!エラーの場合は、範囲指定が間違っている可能性があります。エラーの原因を特定したら、対策を行いましょう。
Q3: VLOOKUPの代わりに使える関数はありますか?
A3: VLOOKUPの代わりに使える関数としては、INDEX関数とMATCH関数、XLOOKUP関数などがあります。それぞれの関数のメリットとデメリットを理解し、状況に応じて使い分けましょう。
Q4: VLOOKUPでワイルドカードは使えますか?
A4: VLOOKUP関数でワイルドカードを使うことができます。ワイルドカードとは、文字列の一部を代替する記号のことです。VLOOKUP関数では、アスタリスク()と疑問符(?)をワイルドカードとして使用できます。アスタリスクは、任意の文字列を代替し、疑問符は、任意の1文字を代替します。例えば、商品コードが「A-」の商品を検索する場合、=VLOOKUP("A-*", 商品マスタ!$A$1:$C$100, 2, FALSE)と入力します。
Q5: VLOOKUPで大文字と小文字を区別できますか?
A5: VLOOKUP関数では、基本的に大文字と小文字を区別しません。大文字と小文字を区別する場合は、FIND関数と組み合わせる必要があります。
VLOOKUP 習得の先へ:明日からの実務に取り入れる3ステップ
VLOOKUP関数は、Excelの業務効率化に欠かせない強力なツールです。この記事では、VLOOKUPの基本的な使い方から、実務で役立つ応用例、そして陥りやすいエラーの解決策まで、幅広く解説しました。VLOOKUPをマスターすることで、あなたのExcelスキルは飛躍的に向上し、日々の業務をより効率的にこなせるようになるでしょう。
最後に、この記事の内容を明日からの実務に取り入れるための3つのステップをご紹介します。
- 基本操作の復習:まずは、VLOOKUP関数の基本的な使い方を復習しましょう。引数の意味や、完全一致と近似一致の違いなどを理解することが重要です。
- 実用例の試用:次に、この記事で紹介した実用例を、実際にExcelで試してみましょう。売上管理表の作成や、請求書作成の効率化など、自分の業務に合った例を選択し、VLOOKUP関数を使いこなせるように練習しましょう。
- 応用テクニックの習得:最後に、IFERROR関数との組み合わせや、INDEX関数とMATCH関数の組み合わせなど、応用テクニックを習得しましょう。これらのテクニックを使いこなすことで、VLOOKUP関数をより柔軟に活用できるようになります。
これらのステップを実践することで、VLOOKUP関数をマスターし、あなたのExcel業務をレベルアップさせることができます。ぜひ、VLOOKUP関数を使いこなして、業務効率化を実現してください。


コメント