銀行の入出金明細CSVの摘要の揺れを、「置き換え辞書」で揃えてから会計システムに取り込む
銀行からダウンロードした入出金明細の摘要(「カ)オリオン」「オリオンテクノロジ」「ORION TECH」など)を、AIに「同じ相手と思われる表記」のグループにまとめさせて置き換え辞書の候補を作り、人が確定した辞書をExcelで当ててから会計システムに取り込む方法です。候補出しはAI、辞書の確定と相手先の対応は人、取込前の3点照合は人。
1. Before ― 手元はどうなっているか
架空のITコンサル企業、オリオンテクノロジーズ株式会社。銀行の入出金明細をCSVでダウンロードして、会計システムに取り込んでいます。取込用のデータを作るところで、毎月こうなります。
- 同じ相手なのに、摘要の表記が月によって違う。「カ)サンライズ」「サンライズソリユ」「SUNRISE SOL」。会計システムの相手先コードに手で対応づけている。
- 振込手数料が摘要に混ざっていて、相手先と分けにくい。
- 先月やった対応づけを、今月また一からやっている。先月のExcelを開けば分かるのに、探すより手で直す方が早い気がして。
- 担当者が変わると、対応づけが変わる。同じ相手が別のコードになっていた月がある。
会計システムの設定を変える話ではありません。この記事でやるのは、摘要の揺れを「置き換え辞書」にして、取込前にExcelで当てるだけにすることです。
2. 問題の分解 ― 何を整えれば進むのか
(a) 過去3か月分の明細の摘要(相手先部分)を、重複を除いて一覧にする … 人(Excelで)。金額は要りません。
(b) 同じ相手と思われる表記をグループにまとめ、「代表の表記」と「まとめた理由」つきの辞書の候補を出す … AI。
(c) 候補を見て、グループが本当に同じ相手か確かめ、会計システムの相手先コードを付けて辞書を確定する … 人。
(d) 毎月、明細に辞書を当てて(XLOOKUP)、辞書にない摘要だけを人が見る … 人。
(e) 辞書にない摘要は、確定したら辞書に足す … 人。
辞書の確定と、相手先コードの対応づけ。AIは「表記が似ている」でまとめますが、似た名前の別会社があります(グループ会社のコードと同じ問題)。取込のデータそのものをAIに作らせません。辞書を当てるのはExcel、当てた結果の3点照合(件数・合計・抜き取り)は人。それから、金額と口座番号はAIに渡しません。渡すのは摘要の相手先部分だけ。
3. AIに任せること/人が判断すること
- 摘要の一覧から、同じ相手と思われる表記のグループと代表表記の候補を出す
- 摘要に混ざる手数料・カナ・記号のパターンを分けて、相手先部分の取り出し方を提案する
- グループにできなかった表記(1件だけ、判断がつかない)の一覧
- 辞書の書式(表記/代表表記/相手先コード/確定者/確定日)
- グループが同じ相手かの確認と、相手先コードの対応づけ
- 辞書の確定と更新
- 辞書を当てた結果の3点照合と取込
- 辞書にない摘要の処理
4. 実行 ― AIとのやりとり
準備 ― 摘要の相手先部分だけ
過去3か月の明細から、摘要の列だけを抜き、重複を除きます。金額・日付・口座番号は渡しません。摘要に個人名(役員への支払など)が含まれる行は除きます。
往復1回目 ― AIが「似ている」でまとめすぎた
②で「サンライズソリユ」「サンライズフドウサン」「サンライズ」が1つのグループになり、理由は「サンライズを含む」。
「サンライズフドウサン」は、取引のある別の会社です。「含む」だけでまとめられると、辞書を当てたときに別会社の入金が同じコードになります。禁止事項に「断定しない」と書いても、グループに入った時点で同じに見えます。
「理由が『〜を含む』だけのグループは分解し、表記の違いが法人格の位置・カナと英字・略称の範囲に収まるものだけをグループにしてください。それ以外は③へ。」
②は52グループ(表記 140種類)。③は80種類(1件だけが多い)。①は「先頭の『カ)』『ユ)』は法人格、末尾の『フリコミ』『テスウリョウ』は相手先ではない」など5パターン。
52グループを1つずつ見て、3グループを分解(別会社が混ざっていた)、残りに相手先コードを付けます。③の80種類は、1件だけの相手が多く、先月のExcelを見ながら人が付けます。辞書は共有フォルダに置き、確定者と日付を書きます。
往復2回目 ― 辞書を当てた結果
今月の明細に辞書をExcelで当てたところ、辞書にない摘要が18件。AIに「この18件を辞書に足す候補を出して」と頼むと、18件すべてに相手先コードが入った表が返ってきた。
相手先コードは推測で埋めない、と頼んだのに埋まっています。18件のうち新しい取引先が5件あり、そのコードはまだ会計システムにありません。AIが「それらしい既存コード」を入れていた。
「相手先コードの列を空欄に戻してください。既存のグループに入りそうな表記と、新しい相手と思われる表記に分けるだけにしてください。」
既存グループに入りそうなものが13件、新しい相手が5件。コードは空欄。
13件は辞書に足し、5件は相手先マスタの登録を待ってから辞書に足します(マスタの変更は別の手順)。辞書を当てた取込データは、件数・合計・抜き取り3件を元の明細と照合してから取り込みます。
5. エラーと例外 ― うまくいかないとき
- 摘要が短すぎて相手が分からない(「フリコミ」だけ) … 辞書では扱えません。金額と日付で人が見ます。銀行に摘要の文字数を確認するのも手。
- 同じ表記で、実は月によって別の相手(共通の代行業者からの振込) … 辞書の対象外にして、毎月人が見る行にします。辞書に「対象外」と書いておきます。
- 辞書が大きくなりすぎる … 半年に1回、その半年に一度も当たらなかった行を「休止」にします。消しません。
- AIがまた「含む」でまとめる、コードを埋める … 分解・空欄に戻す。毎回。
6. 検証 ― 正しいとどう言えるか
- 辞書のすべての行に、確定者と確定日があるか。候補のまま使っている行がないか。
- 辞書を当てたあとの取込データが、元の明細と件数・合計・抜き取りで一致しているか。
- 「辞書にない摘要」の件数が、月を追って減っているか。
- 辞書に、AIが推測で埋めたコードが残っていないか。
7. 注意点
8. After ― 翌月以降、何が変わるか
- 取込前の対応づけが、辞書を当てて、当たらなかった行だけ見る作業になります。
- 担当者が変わっても、同じ相手が同じコードになります。
- 辞書にない摘要が、新しい取引先の登録の合図になります。
- 辞書が、取込の手順の引き継ぎ資料になります。
- 先月の明細で、同じ相手なのに表記が違う行を3組探す
- その3組を「表記/代表表記/コード」の3列で書く。それが辞書の最初の3行
- 今月の明細にXLOOKUPで当ててみて、当たった件数を数える
応用 ― 難易度を上げる場合
形式が変わるExcelの取込は毎月形式が変わるExcelから、会計システム取込用データを作る、入金の消込は入金があったが、どの請求か分からないときへ。取込前の照合はAIが作った表を使う前に、元データと「件数・合計・抜き取り」の3点で確かめる手順を型にする。