経理の集計作業、ExcelのVLOOKUPとマクロをChatGPTに書かせてみたら「動くけど危ない」ものが混ざっていた話

業務効率化の実践記録

「Excelの関数、AIに書かせれば時短できる」は本当か。経理担当の同僚の相談から検証した

Web制作会社で働いていると、社内のExcel作業に困っている非エンジニアの同僚から相談を受けることがある。今回は経理担当の同僚から「毎月の経費データの突き合わせが手作業で時間がかかる。VLOOKUPやマクロをもっと使いこなしたいが、関数もVBAも分からない」と相談されたのがきっかけだった。

「ChatGPTに頼めば関数もマクロも書いてくれる」というのはよく聞く話だが、非エンジニアが自分だけでそれを使うときに本当に安全なのか、実際に同僚の業務データ(を模した検証用データ)で試してみた。

結論から言うと、単純な検索・集計の関数はほぼそのまま実務で使える精度だった一方で、ファイルの上書きやシート削除を伴うVBAマクロは、動作はするが「元に戻せない操作」を平気で書いてくることがあり、非エンジニアがノーチェックで実行するのは危険だと分かった。この記事では実際に試した3パターンと、非エンジニアでも安全に使うための手順をまとめる。

実際にやってみた

パターン1: VLOOKUP・XLOOKUPでの突き合わせは、そのまま使える精度だった

まず、2つの表(申請一覧と承認一覧)を照合して差分を探す作業を想定し、「A列の申請番号をキーに、B表から金額を引っ張ってきて、一致しない行に印をつけたい」とChatGPTに日本語で頼んでみた。

出てきたのはXLOOKUPと条件付き書式を組み合わせた式で、列構成とシート名を具体的に伝えるだけで、そのままセルに貼って動く数式が一発で返ってきた。同僚に画面越しに操作してもらったところ、関数の意味は分からなくても「この式をこのセルにコピーして、下まで引っ張ってください」という指示だけで再現できた。これまで手作業で1件ずつ突き合わせていた時間を考えると、素直に時短効果が大きいと感じた。

パターン2: 複数条件の集計(SUMIFS)は便利だが、条件の解釈違いが1回混ざった

次に「部署別・月別に経費の合計を出したい」という、もう少し条件が複雑な集計をSUMIFSで頼んでみた。基本的には正しい式が返ってきたが、一度だけ「今月」という条件を、こちらが意図した「申請日ベースの今月」ではなく「承認日ベースの今月」で解釈した式が出てきたことがあった。見た目には正しく集計されているように見えるため、テストデータで検算しなければ気づかずに使ってしまうところだった。

TOI

TOI

関数自体は正しいのに、前提としている「日付」の解釈がずれているだけで結果が変わるのが怖いところだった

パターン3: 自動転記のVBAマクロは、動くが「元に戻せない処理」を平気で書いてきた

最後に、複数のExcelファイルから経費データを1つの集計シートに自動転記するVBAマクロを頼んでみた。要件を伝えると、それらしく動くマクロがすぐに返ってきたが、コードを読むと集計シートの既存データを確認や確認メッセージなしに丸ごと削除してから転記し直す処理が組み込まれていた。

エンジニアであれば「テスト環境で試す」「実行前にバックアップを取る」という判断が自然に働くが、非エンジニアの同僚がこの説明を読まずにそのままマクロボタンを押していたら、既存の集計データを消してしまっていた可能性が高い。生成AIが書くコードは「要件通りに動く」ことと「安全に動く」ことがイコールではないという、エンジニアとして日頃コードレビューで意識していることが、Excelマクロでもまったく同じように当てはまった。

経費精算のレシートをChatGPTに読み取らせてみたら、「読める条件」と「読めない条件」がはっきり分かれた話
月末のレシート入力、AIに読ませれば早いのではWeb制作会社で働いていると、月末になるたびに財布とカバンの底からレシートの束が出てくる。交通費、クライアント訪問時の喫茶代、資料印刷や消耗品の購入。多い...

結論: Excelの関数・マクロ、AIにどこまで任せていいか

検証した3パターンから、非エンジニアが安全に使える範囲とそうでない範囲がはっきり分かれた。

パターンA: 単一条件の検索・照合(VLOOKUP/XLOOKUP) → そのまま任せてよい

列構成を具体的に伝えれば、精度の高い式がそのまま返ってくる。関数の中身を理解していなくても「貼って使う」だけで再現できるレベル。

パターンB: 複数条件の集計(SUMIFS等) → 任せてよいが、必ず手計算1件で検算する

条件(特に日付や「今月」のような相対的な表現)の解釈がずれることがあるため、代表的な1件を自分の手で計算し、AIが出した結果と一致するか必ず確認してから全体に展開する

パターンC: ファイル操作・上書きを伴うVBAマクロ → 非エンジニアが単独で実行しない

既存データの削除・上書きなど「元に戻せない処理」を確認なしに書いてくることがあるため、実行前に必ずコピーしたファイルでテストするか、詳しい人にコードを見てもらってから実行する。少なくとも「実行前に必ずファイルをバックアップする」ことをルール化すべきだと感じた。

非エンジニアの同僚に実際に伝えた手順

検証を踏まえて、同僚には次の手順で使ってもらうことにした。

  1. やりたいことと表の構成をできるだけ具体的に伝える: シート名、列の見出し、何をキーに何を出したいかを書き出してからAIに頼む
  2. 検索・照合系の関数はそのまま使ってよい: XLOOKUP/VLOOKUPで出てきた式は、貼り付けて意図通りに動けばそのまま採用してよい
  3. 集計系の関数は代表1件を手計算して検算する: 特に「今月」「今期」のような日付条件は、AIがどちらの日付基準で解釈したかを必ず確認する
  4. ファイルを上書き・削除するマクロは、コピーしたファイルで先に試す: 元データのファイルを別名で保存してから実行し、意図通りの結果になることを確認してから本番ファイルで使う
  5. 少しでも「消える」「上書きする」という言葉がコードの説明に出てきたら、実行前に自分(エンジニア)に確認する: 判断に迷ったら止める、をルールにした
TOI

TOI

「関数を書ける」ことより「危ない処理を見分けられる」ことのほうが、実は非エンジニアにとって大事なスキルなんだと気づいた

Excelの関数・マクロ生成は、非エンジニアの業務を大きく時短できる実感があった一方で、「動く」と「安全」を混同しないことが前提になる。特にファイルを直接書き換えるマクロは、エンジニアが普段コードレビューで警戒しているのと同じ視点を、非エンジニアにも一つだけ持ってもらうだけでリスクを大きく下げられる。

まとめ: Excel作業でAIを使う前に確認すること

  • VLOOKUP/XLOOKUPのような単一条件の検索式は、列構成を具体的に伝えればそのまま実務で使える精度
  • SUMIFSのような複数条件の集計は、日付など条件の解釈がずれることがあるため代表1件で必ず検算する
  • ファイルの上書き・削除を伴うVBAマクロは、非エンジニアが単独で本番ファイルに対して実行しない。コピーしたファイルで先に試す
  • コードの説明に「削除」「上書き」という言葉が出てきたら、実行前に一度立ち止まって詳しい人に確認する

「関数を書かせる」と「マクロで自動化する」は一見同じ「Excelの自動化」でも、リスクの大きさがまったく違う。任せていい作業と、必ず人がチェックすべき作業を分けて考えることで、非エンジニアでも安全にAIの時短効果を取り込めるはずだ。

コメント

タイトルとURLをコピーしました