自動化できる表と、できない表の違い|請求管理を作り直している話

社内の請求管理を作り直しています。まだ途中です。
きっかけは、すでに動いていた表が、自動化の土台にならなかったことでした。壊れていたわけでも、使いにくかったわけでもありません。むしろ人にとっては見やすい表でした。
うちはタレント事務所を経営していて、社員3人で所属80名を回しています。人を増やせないので、実務はAIに寄せています。この記事は、その過程で詰まった話です。
ゴールが3つあった
作り直すにあたって、満たしたい条件が3つありました。
- 管理しやすいこと(更新や修正が面倒でない)
- 人が見て分かりやすいこと(社内の誰が見ても読める)
- Claude Codeで自動化できること(処理を任せられる)
今の表は、2番はできていました。 人が見れば分かるし、実際に運用も回っていました。
詰まったのは3番です。
見やすい表が、自動化できないことがある
自動化しようとしたときに分かったのは、人が見て同じ意味に見えるものが、機械にとっては別物として扱われるということでした。
人は文脈で補って読みます。書き方が多少ばらついていても、「これとこれは同じことを指している」と判断できる。機械はそれをしません。 少しでも形が違えば、別のものとして処理します。
結果として何が起きるか。データに共通性がないので、処理のルールが作れません。
「この場合はこう、ただしこの場合は例外で……」と条件を足し続けることになり、例外を書き足す作業が自動化そのものより重くなります。これでは意味がありません。
表が悪かったのではなく、人向けに最適化された表を、そのまま機械に渡そうとしたことが間違いでした。
「見やすさを捨てる」という話ではない
ここでよくある誤解が、「じゃあ機械が読みやすい形に作り直せばいい」というものです。
うちも一度そう考えました。ただ、それをやると2番のゴール(人が見て分かりやすい)が壊れます。機械が扱いやすい形は、たいてい人にとっては読みにくい。
3つのうち1つを捨てる、という選択になってしまいます。
データと、人が見る表を分ける
たどり着いた結論はこうです。
データ自体は機械が扱える形で持っておいて、人が見る表はそこから作る。
同じ表で両方を満たそうとするから、どちらかを諦めることになります。役割を分ければ、3つとも成立します。
| 持ち方 | 目的 | |
|---|---|---|
| データ | 機械が扱える形。表記や構造を揃える | 自動化の土台 |
| 表示 | データから生成する | 人が見て分かる |
人が見る表は、データから作られる結果という位置づけになります。表を直接編集するのではなく、データを更新すれば表も変わる。
この形にすれば、見やすさを捨てずに自動化できます。
先に決めるべきだったこと
この件で得た教訓は、順番の問題です。
自動化しようとすると、つい「どのツールを使うか」から考えます。うちも最初はそこから入りました。でも、土台が揃っていないと、何で作っても同じところで詰まります。
- ツールを変えても詰まる
- AIの性能が上がっても詰まる
- 書き方を工夫しても、例外が増え続ける
詰まっているのは実装ではなく、データの持ち方だからです。
だから今回は、実装より先にデータの形から手をつけています。遠回りに見えますが、ここを飛ばすと後で全部やり直しになります。
今の状態
まだ作り直している最中です。うまくいったかどうかは、まだ書けません。
分かっているのは、次のことだけです。
- 人が見て同じでも、機械には別物として扱われるものがある
- 見やすい表と、自動化できる表は、同じではない
- 両立させるなら、データと表示を分ける
- 道具を変える前に、データの形を直す
結果が出たら、また書きます。うまくいかなかった場合も、そのまま書きます。
このアプリでは、肝心の機能より先にCSV書き出しを作りました。理由は今回と同じで、先に土台を用意しておかないと、あとから直せなくなるからです。
なお、この作り直しの前段として、領収書のスキャンからデータ化までは自動化が済んでいます。そちらは完了しているので、比較すると「何が違ったのか」が見えてきそうです。 それも別の記事にまとめる予定です。