Express+JSON+Excel VBA+ChatGPT(マイGPT)で、工務店の単価表運用を“回る仕組み”にした話。
小規模な工務店の単価表って、気づくとこうなりません?
-
・どこかのExcelが最新版か分からない
-
・仕入、外注請求書の単価を「見た瞬間に分かる場所」に残せない
-
・入力がめんどくさくて更新が止まる
-
・誰かがセル崩して終了
-
・値上げの履歴が消えて、見積りがブレる
つまり、単価表の敵は「入力の多さ」と「運用の止まりやすさ」。そこで僕は、“入力を減らす”を最優先にして、単価表をAI連携の仕組みに作り直しました。
使ったのは、ゴツいSaaS(課金サービスのようなもの)じゃなくて、身の丈セットです。
-
・設計:Express+JSON+Excel VBA
-
・運用:ChatGPT(マイGPT)
-
・コード記述:ChatGPT+Codex+VsCode
-
・DB:JSON(PCフォルダ)+Excel
-
・連携:Cloudflare Tunnel
-
・かかる費用:ChatGPT、Dropbox(社員共有)、ドメイン費用(初年度1円、更新は年1,000円超〜)だけ
-
・弱点:PCが起動してないと常時使えない
でも、この弱点を飲み込めるなら、維持費ほぼゼロ級で“入力の手間”が激減します。
結論:「入力」を減らすコツは、入力を“人間の仕事”にしないこと
単価表って、更新するたびに
商品名、カテゴリ、単位、税抜、税込、仕入先、年月…よし、入力するか…
ってなるのが苦しい。ここで手が止まる。だから僕がやったのは、発想を逆にして
-
・入力は「請求書」から発生する
-
・なら、請求書を投げたら単価表が増える
-
・分からない項目は、AIが推測して提案する
-
・人間は、最後の確認だけやる
この形に寄せました。
“入力”じゃなくて、“チェック”に仕事を変える。単価表運用の成功率が跳ね上がります。
全体像:この仕組みでできること
1) 請求書をチャッピー(ChatGPT)にアップするだけで、単価表に自動追加
請求書をアップ → AIが項目を読み取る → JSONに追記 → Excelにも反映
この流れ。
2) よく分からない人でも、チャッピーが推測で提案できる
例えば、請求書の記載が曖昧でも
-
・「これは外構?塗装?大工?設備?」
-
・「単位はm?式?枚?」
-
・「同じ品目の過去単価から妥当値は?」
みたいな“現場の推測”をAIがやってくれる。もちろん100%正解じゃないけど、「叩き台」が速いのは正義。
3) 維持費がほぼ軽い(ここが売り)
SaaSの月額が積み上がらない。かかってるのは、実質これだけ。
-
・ChatGPT(マイGPT運用) 月20ドル
-
・Dropbox(社員共有) 月1,500円
-
・ドメイン(初年度1円、更新は年1,000円超〜)
4) スマホでも単価確認ができる
パソコンをつけたまますれば、現場等に出ている時にでも、
「ボードの値段いくら?」とスマホのChatGPT(Chrome、Safariなどのブラウザ、アプリ)で聞けば、費用がその場でわかる。
弱点も正直に:PCが起動してないと使えない
この構成は、PC内のJSONをDBにしてるので、基本はローカル運用。Cloudflare Tunnelで外から叩けるようにしてるけど、PCが寝たら止まります。
ただし逆に言うと
-
・サーバー維持費ほぼゼロ
-
・データがローカルにある安心感
-
・小さく始めて育てられる
このメリットがある。
仕組みの中身(設計編):Express+JSONがちょうどいい理由
僕が「DBにJSON」を選んだ理由はシンプルで、
-
・速い(作るのが)
-
・軽い(維持が)
-
・持ち運べる(Dropbox/バックアップしやすい)
-
・Excelと相性がいい(VBAが扱える)
Expressは、単価表データを読む/書くAPI役。Excel VBAは、現場の“見積の入り口”として残す。
つまり、
-
・Excelは「使い慣れた操作」
-
・JSONは「壊れない保存」
-
・Expressは「橋」
-
・AIは「入力係」
こう役割分担してます。
運用の心臓:マイGPTにやらせる仕事
マイGPT側の仕事は3つ。
- 請求書から項目抽出(商品名、単位、金額、会社名、日付など)
- カテゴリや用途の推測(外構、塗装、設備、消耗品…)
- 登録ルールに沿って整形(あなたの単価表フォーマットに合わせる)
重要なのは、マイGPTに「人間のやり方」を教えること。例えば、
-
・強力値引き、端数調整は登録しない
-
・カテゴリはこの一覧から選ぶ
-
・迷ったら候補を2つ出して確認する
-
・同名があれば過去単価を引っ張る
こういう“現場ルール”が入るほど、運用がラクになります。
手順:実際の運用フロー(これが本題)
ここから「入力を減らす」ための実手順です。
手順1:請求書を“そのまま投げる”
チャッピーに請求書をアップします。ここでポイント。
-
・スキャンPDFは精度が落ちることがある
-
・工夫として、PDFよりJPEGなど画像ファイルの方が読み取り精度が高い(体感で差が出る)
つまり、
「スキャンPDFで微妙」→ JPEGに変換する、もしくは写真を撮って「画像化して投げる」
これだけで成功率が上がります。
手順2:AIに抽出させる(+推測させる)
AIが拾うべき項目はだいたいこのへん。
-
・品名(工事名・材料名)
-
・単位
-
・税抜/税込
-
・会社名
-
・仕入れ業者
-
・年月
-
・カテゴリ(推測)
ここで“分からない項目”があっても止めない。AIに「推測して候補を出して」と言えば、叩き台が出ます。
手順3:人間は“確認だけ”する
確認ポイントは最小限に絞ります。
-
・品名が変じゃないか
-
・単位が合ってるか
-
・金額の桁が合ってるか
-
・カテゴリが近いか
ここだけOKなら、入力はほぼ終わりです。
手順4:JSONに追記 → Excelに反映
最終的に、AIが整形したデータをAPI経由でJSONへ追記。必要ならExcel側にも反映。
Excelは“現場で見る場所”として残すのがポイント。「結局Excelで見たい」問題は、工務店あるあるなので。
これで何が変わった?
単価表って、毎回の入力が面倒だから止まるんです。でもこの流れになると、
-
・入力 → チェックに変わる
-
・更新が溜まらない
-
・値上げの履歴を残しやすい
-
・誰でも運用に参加できる
単価表が“育つ”ようになります。
よくある質問(先回り)
Q. AIの推測って危なくない?
危ないです。だから設計として
-
・推測は提案止まり
-
・最終確定は人間
-
・怪しいときは候補を2つ出す
このルールにします。AIは入力係、人間は監督。
ここまで読んだ人へ:同じ仕組みを作るなら、最初に決めるべき3つ
① 「登録しないもの」をルール化すると爆速になる
あなたがすでに言ってる「強力値引き、端数調整は登録不要」これ超大事。ここが曖昧だとAIが迷って、運用が重くなる。
② “ゆらぎ”対策:品名の表記ゆれをどう扱うか
同じ商品が「PS3832MW」「ロール連結ビス」「ビス(シルバー)」みたいに揺れる。ここは別名辞書(同義語テーブル)を作ると世界が平和になります。JSONでOK。
③ “履歴”の扱い:上書きじゃなくて「時系列」にする
単価表は「今いくら」だけじゃなくて、“いつから上がったか”が命。JSONを「最新版+履歴」構造にしておくと、見積の根拠が作れます。
最後に:入力を減らすと、単価表は勝手に育つ
-
・人が入力するから止まる
-
・請求書を投げる形にすると続く
-
・AIに抽出と推測をやらせて、人は確認だけ
-
・ローカルJSON+Excel+Tunnelで、維持費を最小化できる
-
・弱点(PC起動必須)はあるが、費用と引き換えに割り切れる
このやり方、工務店の現場にはわりと“ちょうどいい”です。