福祉施設の経理担当スタッフが毎月抱えていたある課題。Amazon Business で購入した物品の支払いが、JCBクレジットカードの明細に載っているはずなのに、どの注文がどの明細に対応するのか確認するだけで2〜3時間かかっていたのです。

Amazonの注文は商品ごとにバラバラに請求されることがあり、さらにポイント利用や分割発送があると金額が一致しない。そこにExcelの日付フォーマット崩れも絡んで、手作業での照合はとにかくストレスフルな作業でした。

💡

解決策:Google スプレッドシート上で動くGASツールを、Claude(AI)と一緒にゼロから開発。 AmazonのCSVとクレカのCSVを貼り付けるだけで、3段階マッチングエンジンが自動照合。 一致したものは緑、未照合は黄色に色分けされ、商品名・発注者まで自動表示されます。

Amazon×クレカ照合ツール タイトルと全体像の図解
▲ ツールの全体像:AmazonCSVとクレカCSVをスプレッドシートに貼り付けてボタン1つで照合
  • Amazon Business の注文履歴CSVをそのままスプレッドシートに貼り付け
  • JCBクレカ明細CSVも同様に貼り付け(2フォーマット自動判別)
  • 「照合を実行」ボタン1つで完了。照合結果シートに自動まとめ
  • 未照合の行は黄色表示、商品未着疑いはオレンジ警告で一目瞭然

このツールで最も複雑な課題が「金額が単純に一致しないケース」への対応でした。 通常の照合なら「注文の合計金額 = クレカ請求額」で済みますが、実務ではそうはいきません。

たとえば同じ注文番号で2個購入した商品が、Amazonの都合で1週間後に別々に発送されると、 クレカには「3,998円」ではなく「1,999円×2回」として請求されます。 これを漏らさず検出するために、3段階の照合ロジックを設計しました。

📋
STAGE ①

注文合計マッチング

注文全体の合計金額とクレカ請求額が一致するか確認。通常の注文はここで照合完了。

🚚
STAGE ②

発送単位マッチング

①で未照合のケースに対して、発送グループごとの合計(AK列)とクレカ請求額を照合。分割発送を検出。

📦
STAGE ③

商品小計マッチング

②でも未照合の場合、個々の商品小計(AZ列)で照合するフォールバック。特殊なケースに対応。

3段階マッチングエンジンの詳細図解
▲ 3段階マッチングエンジンのロジックフロー。ステージごとに条件が異なる
🔒

重複マッチング防止の工夫: ②の「発送単位」と③の「商品小計」が同じ注文を二重カウントしないよう、 matchedOrderIds フラグと !item.shipmentTotal ガードを組み合わせて ②③を排他的に動作させています。AIとのペアプログラミングで発見した設計上の落とし穴でした。

  • 日付照合は前後5日の許容幅(DATE_TOLERANCE = 5)を設定
  • 日付データがない行は金額のみで照合し「(日付不明)」と表示
  • Excelの「#######」崩れ問題を検出してnull扱いにするparseDate関数を実装
  • 購入台帳の利用者名は注文番号キーでルックアップして照合結果に自動挿入

ツールの完成により、経理担当スタッフの月次照合作業が劇的に短縮されました。 同時に、AI(Claude)とのペアプログラミングでゼロから開発した経験から、 いくつかの技術的にチャレンジングだった実装も生まれました。

⏱️
2〜3h
→ 数分
毎月の照合作業時間
🔗
3
段階マッチング
照合ロジックの層数
💻
100%
GAS実装
追加費用ゼロで動作
🤖
AI
ペア開発
Claude と一緒に設計・実装
導入効果と技術的見どころの図解
▲ 導入効果の全体サマリーと、開発中に解決した技術的課題

開発で最も印象に残っているのが、AIとのデバッグ作業です。Excelから貼り付けた日付が 「#######」という文字列のまま入ってしまう問題や、 getLastRow()を二重に呼び出したことで「範囲の行数には1以上」エラーが 連発したケース。どちらもAIが原因を特定して修正コードを提案してくれました。

🗓️ 開発タイムライン

✏️
Phase 1
手入力版の構築
Amazon注文・クレカ明細を手入力するシンプルな照合ツールからスタート。基本ロジックを確立。
📊
Phase 2
CSV自動読み込み対応
Amazon Business CSVとJCBクレカCSVの貼り付けに対応。JCBは2フォーマット(個人・法人)を自動判別。
⚙️
Phase 3
3段階マッチング実装
分割発送問題を解決する発送単位マッチング(②)を追加。商品小計フォールバック(③)も実装。
Phase 4
購入台帳・UX改善
注文詳細の自動転記機能・利用者管理・使い方マニュアルシート自動生成など実務運用に向けた仕上げ。
💬

AIを使った開発の感想: 「コードを書けなくても、何を作りたいか・どんな問題があるかを伝えれば、 AIが一緒に考えてくれる」という体験でした。エラーが出ても、症状をそのまま伝えれば 原因と解決策を返してくれる。プログラミングの知識より、 問題を正確に説明する力の方が大切だと実感しています。