Excelで請求書突合をする方法と限界|VLOOKUPからAIへ
ExcelのVLOOKUPを使った請求書突合の手順と限界を詳しく解説。表記揺れ問題、エラー調査の手間、そしてAIで解決する方法を紹介。
多くの経理担当者が使っているExcelでの突合(VLOOKUP)。
「とりあえずVLOOKUPで」と始めたものの、エラーの嵐に悩まされていませんか?
この記事では、ExcelのVLOOKUPを使った請求書突合の基本手順と、その限界、そして次のステップを解説します。
Excelで突合する基本手順
準備するもの
- 請求書データ(CSVまたはExcel形式)
- 発注データ(CSVまたはExcel形式)
- 突合キー(請求書番号、取引先名など)
データの構造例
請求書データ(Sheet1)
| A列 | B列 | C列 | D列 |
|---|---|---|---|
| 請求書番号 | 取引先名 | 金額 | 日付 |
| INV-001 | 株式会社ABC | ¥100,000 | 2026/1/15 |
| INV-002 | XYZ商事 | ¥50,000 | 2026/1/20 |
発注データ(Sheet2)
| A列 | B列 | C列 | D列 |
|---|---|---|---|
| 発注番号 | 取引先名 | 金額 | 日付 |
| PO-001 | (株)ABC | ¥100,000 | 2026/1/10 |
| PO-002 | XYZ商事 | ¥50,000 | 2026/1/18 |
ステップ1:データをExcelに取り込む
両方のデータを同じファイルの別シートに配置します。
Sheet1: 請求書データ
Sheet2: 発注データ
ステップ2:VLOOKUP関数を設定
請求書シートに、発注データから対応する値を引っ張ってくる関数を追加。
=VLOOKUP(B2, Sheet2!B:D, 2, FALSE)
| 引数 | 意味 |
|---|---|
| B2 | 検索する値(取引先名) |
| Sheet2!B:D | 検索範囲 |
| 2 | 返す列の番号 |
| FALSE | 完全一致 |
ステップ3:結果を確認
- 値が返ってきた → 一致
- #N/A → 不一致または見つからない
ステップ4:差異を調査
#N/Aの原因を調べて修正。これが最も時間がかかる部分です。
Excel突合が破綻する6つの瞬間
破綻1:「株式会社」問題
| 請求書 | 発注データ | 結果 |
|---|---|---|
| 株式会社ABC | (株)ABC | #N/A |
| ABC Corporation | ABC Corp. | #N/A |
| 合同会社XYZ | LLC XYZ | #N/A |
人間なら「同じ」と分かりますが、Excelにとっては「別物」。いちいちデータを置換・加工する必要があります。
破綻2:「見えないスペース」の恐怖
| データA | データB | 結果 |
|---|---|---|
| ”Totsugo " | "Totsugo” | #N/A |
| ” ABC" | "ABC” | #N/A |
| ”A B C" | "ABC” | #N/A |
システムからのCSVには、余計な空白が含まれていることがよくあります。これを見つけるのは至難の業です。
対策:TRIM関数で前後のスペースを削除
=TRIM(A2)
破綻3:全角・半角の違い
| データA | データB | 結果 |
|---|---|---|
| 1000(半角) | 1000(全角) | #N/A |
| ABC | ABC | #N/A |
| カタカナ | カタカナ | #N/A |
対策:ASC関数で全角→半角に変換
=ASC(A2)
破綻4:数値と文字列の混在
同じ「123」でも、数値として保存されているか、文字列として保存されているかで不一致になることがあります。
見分け方:
- 数値はセル内で右寄せ
- 文字列はセル内で左寄せ
対策:VALUE関数またはTEXT関数で統一
=VALUE(A2) // 文字列→数値
=TEXT(A2, "0") // 数値→文字列
破綻5:日付形式の違い
| データA | データB | 結果 |
|---|---|---|
| 2026/1/15 | 2026-01-15 | #N/A |
| R8.1.15 | 2026年1月15日 | #N/A |
対策:TEXT関数で統一形式に変換
=TEXT(A2, "YYYY/MM/DD")
破綻6:改行や見えない文字
| 問題 | 対策 |
|---|---|
| 改行コード | CLEAN関数 |
| タブ文字 | SUBSTITUTE関数 |
| ゼロ幅スペース | 手動確認 |
=CLEAN(A2)
=SUBSTITUTE(A2, CHAR(9), "") // タブ削除
前処理(データクレンジング)の地獄
VLOOKUPで突合する前に、以下の「前処理」が必要になることがほとんどです。
| 問題 | 対策関数 | 処理時間目安 |
|---|---|---|
| 前後のスペース | TRIM | 5分 |
| 全角半角の違い | ASC / JIS | 10分 |
| 数値/文字列の違い | VALUE / TEXT | 10分 |
| 改行が入っている | CLEAN | 5分 |
| 「(株)」→「株式会社」 | SUBSTITUTE | 30分〜 |
| 日付形式の統一 | TEXT | 15分 |
合計:月に1〜2時間、データクレンジングだけに費やすことも珍しくありません。
これを毎月やっていると、月に何時間費やしていますか?
なぜExcelでは限界があるのか?
理由1:「完全一致」しかできない
Excelは「文字」しか見ていません。「意味」は分かりません。
「株式会社ABC」と「(株)ABC」が同じ会社かどうかは、人間にしか判断できません。
"株式会社ABC" ≠ "(株)ABC" ← Excelの判断
"株式会社ABC" = "(株)ABC" ← 人間の判断
理由2:前処理がずっと必要
今月きれいにしたデータも、来月にはまた別の表記揺れが出てきます。終わりのない作業です。
| 月 | 新しく発見された表記揺れ |
|---|---|
| 1月 | (株) と 株式会社 |
| 2月 | Corp と Corporation |
| 3月 | 全角カナと半角カナ |
| 4月 | 和暦と西暦 |
理由3:属人化する
「この関数は○○さんが作ったもので、よくわからない」という状態になりがち。
- 複雑なネスト関数は読解困難
- マクロは作成者以外がメンテナンスできない
- 担当者が退職すると業務が止まる
理由4:大量データでパフォーマンス低下
| データ量 | VLOOKUP処理時間 | Excelの状態 |
|---|---|---|
| 1,000行 | 数秒 | 正常 |
| 10,000行 | 1分以上 | 重い |
| 50,000行 | 10分以上 | フリーズ気味 |
理由5:エラー調査に時間がかかる
#N/Aが出た原因を一つ一つ調査する作業。
- セルを選択
- 検索値を確認
- 検索範囲のデータを確認
- 違いを見つける(スペース?全角?)
- 修正
- 再実行
→ 1件あたり数分、100件あれば数時間
「脱Excel」のすすめ:AIによる曖昧一致
AIなら「そのまま」でOK
TotsugoのAIは、表記揺れを自動で吸収します。
| データA | データB | Excelの判定 | AIの判定 |
|---|---|---|---|
| (株)ABC | 株式会社ABC | ❌ #N/A | ✅ 一致 |
| ABC Corp | ABC Corporation | ❌ #N/A | ✅ 一致 |
| 10,000 | 10000 | ❌ #N/A | ✅ 一致 |
| ABC | ABC | ❌ #N/A | ✅ 一致 |
| 2026/1/15 | R8.1.15 | ❌ #N/A | ✅ 一致 |
あなたがExcelで頑張って加工していた前処理は、もう不要です。
なぜAIは表記揺れを吸収できるのか
AIは「文字の一致」ではなく「意味の一致」を判断します。
Excelのアプローチ:
"株式会社ABC" の各文字 ≟ "(株)ABC" の各文字
→ 1文字目から違う → 不一致
AIのアプローチ:
"株式会社ABC" の意味 ≟ "(株)ABC" の意味
→ 両方とも「ABCという会社」を指す → 一致
Totsugoの仕組み
- PDFをアップロード
- AIが自動でデータを認識
- 表記揺れを吸収して突合
- 差異がある箇所だけハイライト
- Enterで承認
導入効果の試算
| 項目 | Excel | AI |
|---|---|---|
| データクレンジング | 1時間 | 0分 |
| 関数設定 | 30分 | 0分 |
| エラー調査 | 1時間 | 0分 |
| 目視確認 | 1時間 | 15分 |
| 合計 | 3.5時間 | 15分 |
削減効果:月3時間以上(90%削減)
使い分けガイド
Excelがおすすめな場面
| 場面 | 理由 |
|---|---|
| 表記揺れがない定型データ | VLOOKUPで十分 |
| 少量(〜50件)の臨時作業 | 設定の手間が少ない |
| 社内の完全に統一されたデータ | エラーが出にくい |
| 無料で済ませたい | コストゼロ |
AIがおすすめな場面
| 場面 | 理由 |
|---|---|
| 表記揺れが多い | 自動吸収で対応 |
| PDFからのデータ抽出も必要 | OCR機能込み |
| 属人化を避けたい | 設定不要 |
| 月末の負荷を減らしたい | 高速処理 |
| 件数が多い(100件以上) | スケールする |
よくある質問
Q. 既存のExcelファイルはそのまま使える?
A. 現在はPDF形式に対応しています。ExcelからPDFにエクスポートしてご利用ください。
Q. AIの精度は信頼できる?
A. 表記揺れの吸収精度は90%以上です。自信がない箇所は「要確認」としてフラグが立つので、最終確認は人間が行えます。
Q. 導入にはどのくらい時間がかかる?
A. アカウント登録後、すぐに使い始められます。事前設定は不要です。
まとめ
Excel (VLOOKUP) vs AI (Totsugo)
| 項目 | Excel (VLOOKUP) | AI (Totsugo) |
|---|---|---|
| 完全一致 | ✅ 可能 | ✅ 可能 |
| 曖昧一致 | ❌ 不可 | ✅ 可能 |
| 前処理 | 必要 | 不要 |
| 表記揺れ対応 | 手動で修正 | 自動吸収 |
| 属人化リスク | 高い | 低い |
| 処理速度 | データ量に依存 | 高速 |
Excelが破綻する6つのパターン
- 「株式会社」問題
- 見えないスペース
- 全角・半角の違い
- 数値と文字列の混在
- 日付形式の違い
- 改行や見えない文字
毎月の「データ整形」時間をゼロにして、本来の経理業務に集中しませんか?