- 作成日 : 2025年9月17日
スプレッドシートのVLOOKUP関数とは?使い方から複数条件・別ファイル参照まで解説
大量のデータから特定の情報を瞬時に取り出したい。そんな時に欠かせないのがVLOOKUP関数です。商品コードから価格を検索したり、社員番号から氏名を取得したり、データベース的な活用で業務効率を向上させることができます。
本記事では、企業のバックオフィス担当者向けに、GoogleスプレッドシートでのVLOOKUP関数の基本的な使い方から、複数条件での検索、部分一致、プルダウンとの連動、別ファイル参照まで、実務で役立つテクニックを詳しく解説します。
目次
スプレッドシートでのVLOOKUP関数の使い方
VLOOKUP関数の基本構文
VLOOKUP関数は「Vertical Lookup」の略で、垂直方向(縦)にデータを検索し、対応する値を返す関数です。データベースのように整理された表から、特定の条件に合致する情報を取り出すことができます。
基本的な構文は以下の通りです。
=VLOOKUP(検索値, 範囲, 列番号, [検索方法])
それぞれの引数について詳しく見ていきましょう。「検索値」は探したい値で、セル参照や直接入力した値を指定します。「範囲」は検索対象となるデータ範囲で、必ず検索列を最初の列に含める必要があります。「列番号」は、範囲内で何列目の値を返すかを指定する数値です。「検索方法」は省略可能で、FALSEで完全一致、TRUEまたは省略で近似一致となります。
参考:VLOOKUP – Google ドキュメント エディタ ヘルプ
実際の使用例で理解を深める
具体的な例で説明します。商品マスターから価格を検索する場合を考えてみましょう。A列に商品コード、B列に商品名、C列に価格が入力されているとします。
商品コード | 商品名 | 価格 |
---|---|---|
A001 | りんご | 150 |
A002 | みかん | 100 |
A003 | バナナ | 120 |
商品コード「A002」の価格を調べたい場合、次のように記述します。
=VLOOKUP(“A002”, A2:C4, 3, FALSE)
この数式は、A2:C4の範囲で「A002」を検索し、見つかった行の3列目(価格)の値「100」を返します。実務では、検索値を別のセルに入力して参照することが一般的です。例えば、E1セルに商品コードを入力し、=VLOOKUP(E1, A2:C4, 3, FALSE)とすれば、E1の値を変更するだけで異なる商品の価格を確認できます。
検索方法の違いと使い分け
VLOOKUP関数の第4引数である検索方法は、データの性質によって使い分ける必要があります。FALSE(完全一致)を指定すると、検索値と完全に一致するデータのみを検索します。商品コードや社員番号など、正確な値で検索する必要がある場合に使用します。
一方、TRUE(近似一致)を指定すると、検索列が昇順に並んでいる場合に、検索値以下の最大値を返します。この場合、検索列のデータは昇順に並んでいる必要があります。税率表や送料表など、範囲で区切られたデータを扱う際に便利です。例えば、購入金額に応じた送料を求める場合、以下のような表があるとします。
購入金額 | 送料 |
---|---|
0 | 500 |
3000 | 300 |
5000 | 0 |
購入金額4500円の送料を求める場合、=VLOOKUP(4500, A2:B4, 2, TRUE)とすると、4500以下の最大値である3000に対応する送料300円が返されます。
エラー処理とトラブルシューティング
VLOOKUP関数を使用していると、様々なエラーに遭遇することがあります。最も一般的なのは#N/Aエラーで、これは検索値が見つからない場合に表示されます。このエラーを適切に処理するには、IFERROR関数と組み合わせます。
=IFERROR(VLOOKUP(E1, A2:C100, 3, FALSE), “該当なし”)
この数式により、検索値が見つからない場合は「該当なし」と表示されます。また、#REF!エラーは列番号が範囲の列数を超えている場合に発生します。例えば、3列しかない範囲で4列目を指定した場合などです。
データの整合性も重要です。検索値や検索列に余分なスペースが含まれていると、一致しないことがあります。TRIM関数を使って前後のスペースを除去したり、文字列と数値の型を統一したりすることで、多くの問題を回避できます。
VLOOKUP関数の利用シーン
経理業務での活用
経理部門では、VLOOKUP関数が日常的に活用されています。最も代表的な例は、勘定科目コードから科目名を取得する処理です。仕訳データに勘定科目コードしか記録されていない場合、別途用意した勘定科目マスターから科目名を引き当てることで、読みやすい帳票を作成できます。
また、取引先コードから会社名や住所を取得する際にも使用されます。請求書作成時に、取引先コードを入力するだけで、会社名、住所、担当者名などが自動的に表示されるシステムを構築できます。これにより、入力ミスを防ぎながら作業時間を大幅に短縮できます。
税率の管理にも活用できます。商品カテゴリごとに異なる税率が適用される場合、商品コードから税率を検索して自動計算することで、税制改正時も税率マスターを更新するだけで対応できます。
人事管理での活用
人事部門では、社員番号をキーとした情報管理でVLOOKUP関数が威力を発揮します。社員マスターに基本情報を集約し、各種申請書や報告書で社員番号を入力するだけで、氏名、所属部署、職位などを自動表示できます。
給与計算においても、等級テーブルから基本給を検索したり、住所から通勤手当を算出したりする際に使用されます。評価結果と昇給率の対応表を作成しておけば、評価ランクを入力するだけで昇給額を自動計算できます。
研修管理では、社員番号から受講履歴を検索し、必修研修の未受講者を特定することも可能です。このように、人事データの一元管理と効率的な活用にVLOOKUP関数は欠かせません。
在庫管理・販売管理での活用
在庫管理では、商品コードから在庫数、発注点、仕入先情報などを瞬時に取得できます。日々の入出庫データに商品コードを入力するだけで、商品名や現在庫数が自動表示され、在庫切れのリスクを視覚的に把握できます。
販売管理では、顧客コードから取引条件(掛率、支払条件など)を参照し、見積書や請求書を効率的に作成できます。また、商品コードから定価を取得し、顧客別の掛率を適用して販売価格を自動計算するシステムも構築可能です。
配送料金の計算でも活用されます。都道府県別の送料テーブルを用意し、配送先の都道府県から送料を検索することで、注文ごとの送料を自動計算できます。
スプレッドシートのVLOOKUP関数で複数条件で検索する方法
実務では、単一の条件だけでなく、複数の条件を組み合わせて検索する必要がよくあります。例えば、「営業部の山田さん」のように、部署名と氏名の両方で特定したい場合や、「2024年1月の東京支店の売上」のように、複数の条件を満たすデータを抽出したい場合があります。
標準のVLOOKUP関数は単一条件での検索しかできませんが、いくつかの工夫により複数条件での検索を実現できます。
結合キーを使った方法
最もシンプルで理解しやすい方法は、検索用の結合キーを作成することです。複数の条件を連結した新しい列を作成し、その列を検索対象とします。
例えば、部署と氏名で内線番号を特定する場合
元データ:
A列:部署 | B列:氏名 | C列:内線番号 |
---|---|---|
営業部 | 山田太郎 | 1234 |
経理部 | 鈴木達也 | 5678 |
総務部 | 本田裕子 | 3456 |
結合キー列を追加:
D列:=A2&”_”&B2 (営業部_山田太郎) //自動入力で表に合わせて反映
VLOOKUPで取得したい値の列を追加
E列:=C2(1234) //自動入力で表に合わせて反映
検索時:
=VLOOKUP(“営業部_山田太郎”, D2:E100, 2, FALSE)
この方法の利点は、数式が単純で理解しやすいことです。ただし、補助列を追加する必要があるため、元データの構造を変更できない場合は使用できません。
また、VLOOKUP関数は検索列(例の場合はD列)より左側の列から値を取得できません。そのため、表の右側に結合キー列を追加したときは、結合キー列より右側の列(例の場合はE列)に取得したい値の列を追加する必要があります。
配列数式を使った方法
補助列を使わずに複数条件で検索する場合は、配列数式を使用します。ARRAYFORMULA関数と組み合わせることで、複数の条件を同時に評価できます。
=ArrayFormula(VLOOKUP(“営業部”&”山田太郎”, {A2:A100&B2:B100, C2:C100}, 2, FALSE))
この数式は、A列が「営業部」かつB列が「山田太郎」である行のC列の値を返します。MATCH関数で条件に合致する行番号を特定し、INDEX関数でその行の値を取得しています。
また、E2に部署名(営業部など)、F2に氏名(山田太郎など)を入力したセルを作成すれば、セル参照で動的なデータ抽出ができます。
=ArrayFormula(VLOOKUP(E2&F2, {A2:A100&B2:B100, C2:C100}, 2, FALSE))
FILTER関数との組み合わせ
GoogleスプレッドシートではFILTER関数が使用できるため、これとVLOOKUPを組み合わせることも可能です。
=VLOOKUP(検索値, FILTER(A2:C100, D2:D100=”条件1″, E2:E100=”条件2″), 3, FALSE)
FILTER関数で条件に合致する行のみを抽出し、その結果に対してVLOOKUPを実行します。この方法は、条件が動的に変化する場合に特に有効です。
スプレッドシートのVLOOKUP関数で部分一致でデータを探す方法
完全一致では見つからないが、部分的に一致するデータを検索したい場合があります。例えば、商品名に「りんご」を含むすべての商品を検索したい場合や、会社名の一部しか分からない状態で取引先を特定したい場合などです。
標準のVLOOKUP関数は部分一致検索に対応していませんが、ワイルドカードや他の関数と組み合わせることで実現できます。
ワイルドカードを使った部分一致
VLOOKUP関数でワイルドカードを使用するには、検索値にアスタリスク(*)を含めます。
前方一致:=VLOOKUP(“りんご*”, A2:B100, 2, FALSE)
後方一致:=VLOOKUP(“*ジュース”, A2:B100, 2, FALSE)
部分一致:=VLOOKUP(“*りんご*”, A2:B100, 2, FALSE)
ただし、この方法には制限があります。検索列のデータにもワイルドカードを含める必要がある場合や、より柔軟な検索が必要な場合は、別の方法を検討する必要があります。
QUERY関数を使った柔軟な検索
より高度な部分一致検索には、QUERY関数が適しています。
=QUERY(A2:C100, “SELECT * WHERE A CONTAINS ‘りんご'”, 0)
この数式は、A列に「りんご」を含むすべての行を返します。CONTAINSの他にも、STARTS WITH(前方一致)、ENDS WITH(後方一致)などの条件を使用できます。
正規表現を使った検索も可能です。
=QUERY(A2:C100, “SELECT * WHERE A MATCHES ‘.*りんご.*'”, 0)
FILTER関数とREGEXMATCHの組み合わせ
正規表現を使った部分一致検索では、FILTER関数とREGEXMATCH関数の組み合わせも有効です。
=FILTER (A2:C100, REGEXMATCH (A2:A100, “りんご”))
この方法では、大文字小文字を区別しない検索や、複雑なパターンマッチングも可能です。例えば、電話番号の形式を問わずに検索する場合:
=FILTER(A2:C100, REGEXMATCH(B2:B100, “d{2,4}-?d{2,4}-?d{4}”))
スプレッドシートのVLOOKUPの結果をプルダウンと連動して変更させる方法
プルダウンリストとVLOOKUP関数を組み合わせることで、ユーザーフレンドリーなデータ参照システムを構築できます。プルダウンで選択した値に応じて、関連する情報が自動的に表示される仕組みです。
まず、プルダウンリストを作成します。データの入力規則を使用して、選択肢となるリストを設定します。例えば、A1セルに商品コードのプルダウンを作成する場合、「データ」→「データの入力規則」から、リストの範囲を指定します。
動的な情報表示の実装
プルダウンで選択された値を基に、VLOOKUP関数で詳細情報を表示します。
A1:プルダウン(商品コード)
B1:=VLOOKUP (A1, 商品マスター!A:D, 2, FALSE) // 商品名
C1:=VLOOKUP (A1, 商品マスター!A:D, 3, FALSE) // 価格
D1:=VLOOKUP (A1, 商品マスター!A:D, 4, FALSE) // 在庫数
これにより、A1のプルダウンで商品を選択すると、B1〜D1に商品名、価格、在庫数が自動表示されます。見積書作成や在庫確認などの業務で、入力の手間を大幅に削減できます。
連動プルダウンの作成
より高度な実装として、複数のプルダウンを連動させることも可能です。例えば、都道府県を選択すると、その都道府県内の市区町村のみが次のプルダウンに表示される仕組みです。
E1:都道府県プルダウン
F1:=INDIRECT(E1) // 市区町村プルダウン
名前付き範囲:
「東京都」:世田谷区、渋谷区、新宿区…
「大阪府」:大阪市、堺市、豊中市…
この設定により、E1で「東京都」を選択すると、F1のプルダウンには東京都の市区町村のみが表示されます。さらに、選択された市区町村の詳細情報をVLOOKUPで取得することも可能です。
エラー処理と使いやすさの向上
プルダウンが未選択の状態でエラーが表示されないよう、適切なエラー処理を実装します。
=IF (A1=””, “”, IFERROR(VLOOKUP(A1, 商品マスター!A:D, 2, FALSE), “データなし”))
この数式により、プルダウンが空の場合は何も表示せず、検索値が見つからない場合は「データなし」と表示されます。
また、条件付き書式を使用して、プルダウンの選択状態に応じてセルの色を変更することで、視覚的なフィードバックを提供できます。未選択の場合は黄色、選択済みの場合は白色にするなど、ユーザビリティを向上させる工夫が可能です。
スプレッドシートのVLOOKUP関数で別ファイルを参照する方法
IMPORTRANGE関数を使う
Googleスプレッドシートで別ファイルのデータを参照するには、IMPORTRANGE関数を使用します。この関数により、他のスプレッドシートからデータをインポートし、そのデータに対してVLOOKUP関数を実行できます。
基本的な構文は以下の通りです。
=IMPORTRANGE (“スプレッドシートのURL”, “シート名!範囲”)
例えば、商品マスターが別ファイルにある場合:
=IMPORTRANGE (“https://docs.google.com/spreadsheets/d/xxx”, “商品マスター!A:D”)
初回使用時は、アクセス許可を求めるメッセージが表示されます。「アクセスを許可」をクリックすることで、データの参照が可能になります。
IMPORTRANGEとVLOOKUPの組み合わせ
IMPORTRANGE関数で取得したデータに対して、直接VLOOKUP関数を適用できます。
=VLOOKUP (A1, IMPORTRANGE(“URL”, “シート名!A:D”), 4, FALSE)
ただし、この方法では毎回外部ファイルにアクセスするため、処理速度が遅くなる可能性があります。頻繁に参照する場合は、別の方法を検討する必要があります。
パフォーマンスの最適化
大量のデータを扱う場合や、頻繁に参照する場合は、以下の方法でパフォーマンスを向上させることができます。
方法1:専用シートでのデータキャッシュ 別シートにIMPORTRANGEでデータを一度だけ読み込み、そのシートを参照する方法です。
マスターシート:=IMPORTRANGE (“URL”, “範囲”)
作業シート:=VLOOKUP (A1, マスター!A:D, 4, FALSE)
方法2:必要な部分のみインポート 全データではなく、必要な列のみをインポートすることで、データ転送量を削減できます。
=IMPORTRANGE (“URL”, “商品マスター!A:B”) // 必要な2列のみ
セキュリティとアクセス管理
別ファイルを参照する際は、セキュリティ面での注意が必要です。IMPORTRANGE関数を使用すると、参照先ファイルの指定した範囲にアクセスできるようになります。機密データが含まれる場合は、参照用の専用ビューを作成することをお勧めします。
また、参照元ファイルの共有設定も重要です。参照する側のユーザーが、参照先ファイルへの閲覧権限を持っている必要があります。組織内での利用では、適切な権限管理を行い、必要最小限のアクセス権限に留めることが重要です。
ファイルの移動や削除にも注意が必要です。参照先ファイルのURLが変更されると、IMPORTRANGE関数はエラーとなります。重要なマスターデータは、URLが変更されないよう適切に管理し、変更が必要な場合は関係者への通知を徹底しましょう。
VLOOKUP関数をマスターして、データ活用の達人になろう
VLOOKUP関数は、スプレッドシートでのデータ管理において代表的な関数の一つです。基本的な使い方から始めて、複数条件検索、部分一致、プルダウンとの連動、別ファイル参照まで、段階的にスキルを向上させることで、業務効率は飛躍的に向上します。
本記事で紹介した様々なテクニックを実務で試しながら、自分の業務に最適な活用方法を見つけていきましょう。エラー処理やパフォーマンス最適化にも配慮することで、安定した業務システムを構築できます。データベース的な思考でスプレッドシートを活用し、情報を価値に変える力を身につけていきましょう。
※ 掲載している情報は記事更新時点のものです。
※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。
関連記事
NETWORKDAYS関数の使い方:エクセルで営業日数を正確に計算する
プロジェクトの期間計算や、納期管理、残業時間の計算など、エクセルで日付を扱う業務は多岐にわたります。その中でも、「土日を除いた営業日数(稼働日数)を正確に知りたい」というニーズは非常に多いのではないでしょうか? 祝日も考慮に入れるとなると、…
詳しくみるスプレッドシートのCOUNTIF関数の使い方!複数範囲や条件設定方法まで解説
Googleスプレッドシートでデータを集計するときに欠かせないのが COUNTIF関数 です。条件に合致するセルの数を自動で数えてくれるため、売上管理や在庫チェック、アンケート集計など、幅広いシーンで役立ちます。 この記事では、COUNTI…
詳しくみるLINEST関数の使い方:エクセル初心者でもできる回帰分析
LINEST関数は、エクセルで回帰分析を行うための高機能な統計関数です。この記事では、売上予測やコスト分析といった実務で役立つ使い方から、エラーの対処法まで、初心者でも理解できるよう段階的に解説します。複雑に見える統計処理も、基本操作を理解…
詳しくみるVLOOKUP関数とは?初心者向けにわかりやすく解説
VLOOKUP関数とは、Excelの強力な機能の一つで、指定した値を元にデータを探し出すために使用される関数です。この関数を用いることで、大量のデータの中から必要な情報を迅速に抽出することが可能になります。特に、表形式のデータを扱う際に便利…
詳しくみるエクセルのコメント機能の使い方とは?一緒に印刷するにはどうする?
エクセルのコメント機能は、データに対する補足情報や意見を追加するのに非常に便利です。これにより、他のユーザーと効率的に情報を共有し、より良いコラボレーションが可能になります。本記事では、エクセルのコメント機能の具体的な使い方と、これらのコメ…
詳しくみるエクセルの数式コピーが反映されない原因と対策、文字列解除の注意点
エクセル(Excel)で数式をコピーしても反映されない原因は、セル参照の固定ミスや表示形式、計算モードの設定などが考えられます。この記事では、よくある原因とその解決策をわかりやすく解説し、数式を正しく適用する方法を紹介します。 エクセルで数…
詳しくみる