▲ Lookup サンプル
コスト転記のミスが、見積もり・請求書に直結する
商品の仕入れ価格、SaaSサービスの料金、外注費の一覧……。Excelで管理しているのに、毎回目で探して手入力していませんか?
手作業の転記は思った以上にコストがかかります。月に数十件の見積書を作るなら、1件あたり5分の転記作業だけで月間数時間が消えます。さらに入力ミスが1件の請求書エラーにつながれば、取引先との確認・修正対応で余分な工数と信頼の損失が生まれます。
この記事を読み終えると、商品コードやサービスIDを入力するだけでコストが自動表示されるシートを自分で作れるようになります。VLOOKUPの基本から、エラー対処・応用テクニックまでをステップごとに解説します。
VLOOKUPの基本構文をおさらい
=VLOOKUP(検索値, 範囲, 列番号, 検索の型)
| 引数 | 内容 |
|---|---|
| 検索値 | 調べたいキー(商品コードなど) |
| 範囲 | マスターデータが入っている表の範囲 |
| 列番号 | 取得したい値が左から何列目か |
| 検索の型 | FALSE(完全一致)を基本的に使う |
コスト管理では「完全一致(FALSE)」を使うのが鉄則です。近似値(TRUE)で誤った単価を取得してしまうと、見積もり・請求金額に直接影響します。
実践例①:商品の仕入れコスト管理
マスターシートを用意する
「商品マスター」シートに以下のようなテーブルを作ります。
| A列(商品コード) | B列(商品名) | C列(仕入れ単価) |
|---|---|---|
| P001 | USBケーブル 1m | 680 |
| P002 | モバイルバッテリー 10000mAh | 2,400 |
| P003 | ワイヤレスマウス | 1,850 |
発注シートでVLOOKUPを使う
発注管理シートのA列に商品コードを入力し、B列に以下を入力します。
=VLOOKUP(A2, 商品マスター!$A:$C, 3, FALSE)
A2 に P002 と入力すると、B列に自動で 2400 が表示されます。
範囲指定には $A:$C のように絶対参照($)を使いましょう。数式を下のセルにコピーしても範囲がズレず、正確なコストを取得し続けられます。
実践例②:サービス料金テーブルへの応用
次は、SaaSや外注サービスのプラン料金管理です。月額・年額の切り替えが必要な場面でも、VLOOKUPが力を発揮します。
サービス料金マスター
| A列(プランID) | B列(プラン名) | C列(月額) | D列(年額) |
|---|---|---|---|
| S01 | スタータープラン | 9,800 | 98,000 |
| S02 | ビジネスプラン | 29,800 | 298,000 |
| S03 | エンタープライズ | 98,000 | 980,000 |
月額・年額を動的に切り替える
列番号を変えるだけで取得する値を切り替えられます。さらに、セルのプルダウンと IF 関数を組み合わせると動的な列選択が可能です。
=VLOOKUP(A2, サービスマスター!$A:$D, IF(B2="月額", 3, 4), FALSE)
B2のプルダウンで「月額」「年額」を選ぶだけで、対応する料金が自動切り替えになります。
よくあるエラーと対処法
#N/A エラー:検索値がマスターにない
商品コードが存在しない場合などに発生します。IFERROR でラップして、エラーの代わりにメッセージを表示しましょう。
=IFERROR(VLOOKUP(A2, 商品マスター!$A:$C, 3, FALSE), "該当なし")
コスト集計シートで #N/A が混在すると合計がずれるため、必ず対処しておきましょう。
数値として扱われない問題
マスターの単価が文字列として入力されている場合(数字の前後にスペースがある、セルの書式が「文字列」になっているなど)、VLOOKUPで取得した値がそのまま文字列になり、SUM関数で合計できないことがあります。このときは VALUE() で明示的に数値へ変換します。
=VALUE(VLOOKUP(A2, 商品マスター!$A:$C, 3, FALSE))
データが増えても崩れない:テーブル機能との組み合わせ
ここまでの方法でも十分使えますが、商品やサービスが増えてくると「範囲の手動更新を忘れた」「列を挿入したら番号がズレた」という問題が起きがちです。マスターデータをExcelの「テーブル」として定義すると、行追加で範囲が自動拡張され、こうした問題をまとめて防げます。
- マスターデータを選択 →
Ctrl + Tでテーブル化 - テーブル名を
商品マスターに設定 - VLOOKUP内で構造化参照を使う
=VLOOKUP(A2, 商品マスター[#すべて], 3, FALSE)
商品を追記するたびに範囲を修正する手間がなくなり、メンテナンスが格段に楽になります。
Googleスプレッドシートをお使いの方へ: VLOOKUPの数式はExcelとまったく同じ構文で動作します。テーブル機能は「名前付き範囲」で代替できます。
まとめ
| 用途 | ポイント |
|---|---|
| 商品仕入れコスト | 商品コードをキーに単価を自動取得 |
| サービス料金 | 列番号を切り替えて複数プランに対応 |
| エラー対策 | IFERROR で #N/A をキャッチ |
| 数値変換 | VALUE() で文字列→数値に変換 |
| メンテナンス性 | テーブル機能で範囲を自動拡張 |
VLOOKUPによるコスト管理は、転記ミスをなくし、見積書・請求書・発注書の作成を大幅に効率化します。
今日の最初の1アクション:自分の業務で使っている商品やサービスを5件だけリストアップして、マスターシートを作ってみましょう。たった5行のシートから始めても、コスト管理の自動化はここから動き出します。
次回のLookupシリーズでは INDEX+MATCH関数 を取り上げます。VLOOKUPには「検索値が必ず表の左端列になければならない」という制約があります。既存マスターの構造を変えられない場合や、右から左への逆引きが必要なとき、INDEX+MATCHがその壁を超える解決策になります。お楽しみに!
関連記事
- Excelで"近い値"を自動検索する完全ガイド|XLOOKUP・FILTER・ABSの実践パターン
- Excelでバージョン管理ファイルの最新版を自動取得する方法|LOOKUP+FIND応用テク【Lookupシリーズ】
- 損益がマイナスに転じた最初の月を一発で見つける方法【Excel関数5選】
- 列番号ハードコードから卒業|SUM×INDEX×MATCHで「壊れない列合計」を作る方法