結論を先に書きます。AIが書いた関数は、3本のうち2本が20行すべて正解、1本が20行すべてエラーでした。 エラーになった1本も、考え方は完全に合っていて、変数の名前を1文字変えるだけで20行すべて正解になりました。そしてエラーの文言をそのままAIに伝えたところ、44秒で原因を正しく突き止めて直してきました。つまり「AIの関数は当たるが、そのまま貼って終わりにはできない」。答え合わせをする場所さえ決めておけば、実務で十分使えます。
エクセルの作業をAIに任せたい、という相談は本当に多いです。なかでも多いのが「表記がバラバラの表を直したい」という話です。
日付が「2026/4/1」だったり「2026年4月2日」だったり。金額に「円」が付いていたり付いていなかったり。得意先の名前に余計な空白が入っていたり。このままでは合計も集計もできません。
では、AIに関数を書かせたら本当に直るのか。実際にやってみました。
試した内容
| 項目 | 内容 |
|---|---|
| 使ったAI | OpenAIのコマンドラインツール経由(モデルはGPT-5.5) |
| 渡したデータ | 架空の売上台帳20行のCSVファイル(すべて作り物の名前です) |
| 頼んだこと | 日付・金額・得意先の3列を直すExcel関数を書くこと |
| 答え合わせの場所 | 実際のExcel(バージョン16.0)に数式を入れて1行ずつ確認 |
| 1回目の所要時間 | 90.5秒 |
大事なのは最後の行です。AIの答えを、実際のExcelに入れて確かめました。画面で読んで「良さそう」と判断したのではありません。
渡したデータは、わざと汚くしてあります。
- 日付:「2026/4/1」「2026年4月2日」「R8.4.3」「4/4」「2026-04-05」の5種類が混在
- 金額:「1,200円」「¥3400」「2400 円」「12,000」など、記号もカンマもバラバラ
- 得意先:「山田商店」「山田商店(末尾に空白)」「ヤマダ商店」が同じ会社
現場の台帳は、だいたいこうなっています。担当者が違えば書き方も違うからです。
AIに出した指示
真似できるように、そのまま載せます。
uriage.csv を読んでください。A列=日付, B列=得意先, C列=商品, D列=数量, E列=金額 で、
2行目からデータが始まります。表記がバラバラで集計できません。
ファイルは書き換えないでください。かわりに、Excelの数式だけで直す方法を答えてください。
1. G2: A列の日付を、どの表記でも正しい日付シリアル値にする数式
(「2026/4/1」「2026年4月2日」「R8.4.3」「4/4」「2026-04-05」の5パターンがあります。
年が無いものは2026年とみなす)
2. H2: E列の金額を数値にする数式
(「1,200円」「¥3400」「2400 円」「12,000」などがあります)
3. I2: B列の得意先の表記ゆれを統一する数式
(末尾の空白、「ヤマダ商店」→「山田商店」)
数式は Excel 2021 / Microsoft 365 で動くものにしてください。
指示のコツは3つあります。
1つめは、実際の表記を全部書き出すこと。「バラバラです」だけでは、AIは何と何がバラバラなのか分かりません。5パターンあるなら5つとも書きます。
2つめは、どのセルに入れるかを指定すること。「G2に」と書けば、参照するセルを間違えません。
3つめは、使うExcelのバージョンを伝えること。新しい関数は古いExcelでは動きません。ここを書かないと、動かない数式が返ってくる可能性があります。
返ってきた3本の関数
90.5秒で、3本まとめて返ってきました。金額と得意先はこれです。
H2 に入れる式(金額を数値にする)
=VALUE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(
TRIM(E2),"円",""),"¥",""),"¥",""),",","")," ",""),CHAR(160),""))
I2 に入れる式(得意先の表記をそろえる)
=SUBSTITUTE(TRIM(SUBSTITUTE(SUBSTITUTE(B2," "," "),CHAR(160)," ")),
"ヤマダ商店","山田商店")
読めなくて構いません。中身が分からなくても、答え合わせはできます。
答え合わせの結果
実際のExcelに入れて、20行を1行ずつ確認しました。
| 直す対象 | 20行中の正解数 |
|---|---|
| 金額を数値にする | 20行 |
| 得意先の表記をそろえる | 20行 |
| 日付を日付にする | 0行 |
金額と得意先は満点でした。全角の「¥」も半角の「¥」も、カンマも「円」も、途中の空白も、すべて正しく取り除いて数値になりました。合計を出すと126,210円で、手で足した金額と一致しました。
問題は日付です。20行すべてが「#NAME?」というエラーになりました。
原因は「考え方」ではなく「名前」だった
エラーの原因を調べたところ、意外な場所でした。
AIの数式は、途中で計算結果に一時的な名前を付けています。プログラムでいう変数です。そのときAIが付けた名前が「p1」と「p2」でした。
ところがExcelでは、「P1」も「P2」もセルの番地そのものです。P列の1行目、P列の2行目。だからExcelは「これは名前じゃなくて場所の話だ」と判断してしまい、数式全体が読めなくなっていました。
Microsoftの公式説明にも、変数名は「名前マネージャーで使用できる有効な名前」でなければならず、参照形式と競合する名前は使えないと書かれています(LET 関数)。
そこで「p1」「p2」を「pa」「pb」に置き換えて、同じ数式をもう一度入れてみました。
結果は20行すべて正解でした。
つまり、AIが考えた日付の直し方は最初から100%正しかったわけです。和暦の「R8.4.3」を2026年4月3日に変換する部分も、年が書かれていない「4/4」を2026年とみなす部分も、全部合っていました。間違っていたのは、名前の付け方だけでした。
エラーを伝えたら、AIは直せるのか
ここが実務では一番知りたいところだと思います。エラーが出たとき、自分で原因を調べられる人ばかりではありません。
そこで、エラーの文言をそのままAIに伝えました。「この数式をExcelに入れたら #NAME? になりました。原因を説明して、直した数式を出してください」と、それだけです。
44秒で返ってきた回答は、こうでした。
原因は、LET の変数名 p1 と p2 が Excel ではセル番地(P1、P2)として解釈されるため、名前として使えず #NAME? になります。
正解です。しかも変数名を「p_1」「p_2」に直した数式まで一緒に出してきました。それを実際のExcelに入れたところ、こちらも20行すべて正解でした。
エラーが出ても、その文言をコピーして貼るだけで直る。これは覚えておいて損がない使い方です。
ただし、条件がひとつあります
もうひとつ分かったことがあります。同じ数式でも、元の列の状態によって結果が変わりました。
日付の列を「文字列」の状態にして数式を入れると20行正解。ところが、CSVをそのまま開いたときのようにExcelが日付を自動で日付データに変換していると、同じ数式が20行中8行しか合いませんでした(残り12行は「#VALUE!」エラー)。
理由は単純です。AIが書いた数式は「文字を切り貼りして日付を組み立てる」考え方でできています。相手が文字ではなく最初から日付データになっていると、切り貼りする文字がないのでエラーになります。
AIは、渡された前提のとおりに考えます。「文字列がバラバラです」と伝えれば、文字列を直す数式を書きます。実際の列が文字列でなければ、動きません。
だから指示に一行足すだけで防げます。「A列は文字列です」または「A列はExcelが日付として認識しているものと文字のものが混ざっています」。ここを書くかどうかで、結果が変わります。
よくある失敗と、その回避策
失敗1:数式をそのまま貼って、エラーが出たので諦める。 今回のように、考え方は合っていて名前だけが原因ということが実際に起きます。エラーの文言をそのままAIに返す。これだけで直る可能性が高いです。
失敗2:数式が動いたので、全部正しいと思い込む。 エラーが出ないことと、答えが合っていることは別です。今回も金額の数式は「動いた」のではなく「20行とも合っていた」ことを確認しています。数行だけ手で計算して突き合わせる時間は必ず取ってください。
失敗3:元データを上書きしてしまう。 今回は「ファイルは書き換えないでください」と最初に指示しました。直した結果は別の列に出すのが安全です。元の列を残しておけば、間違いに気づいたときに戻せます。
失敗4:バージョンを伝えない。 今回AIが使った関数は、比較的新しいExcelでないと動きません。古いExcelを使っている会社では、そもそも動かない数式が返ってきます。「Excel 2019です」と一言添えるだけで、回避できます。
実務としての結論
今回の検証から言えることを、作業の分担にするとこうなります。
| 工程 | 誰がやるか |
|---|---|
| 表記のパターンを洗い出して伝える | 人 |
| 直すための関数を考える | AI |
| エラーの原因を調べる | AI(文言を伝えれば) |
| 数行を手で計算して答え合わせする | 人 |
| 直した結果を元データと別の列に置く | 人 |
AIに任せられるのは「考える」ところまでです。合っているかどうかを決めるのは、今のところ人の仕事です。
とはいえ、今回の3本の関数は90.5秒で出てきて、直しは1回のやりとり(44秒)で済みました。ここは実測です。関数に慣れていない人がゼロから調べて書くことを考えれば、答え合わせの時間を足しても短く済むはずです。
同じように「AIは数字を作らずに空欄で返してきた」という結果は問い合わせメールの返信をAIに書かせた検証でも出ています。実際に動かして確かめた記事はツール比較に、社内での進め方はAI活用ガイドにまとめています。
まずは、いま手元にある集計できずに困っている表を1つ選んでみてください。表記のパターンを書き出して渡すところから始めれば、今日試せます。どの業務から手を付けるかで迷ったら、業務の棚卸しの手順が先に役立ちます。
まとめ
- AIが書いた関数3本のうち、金額と得意先は20行すべて正解だった
- 日付だけ20行すべてエラー。原因は考え方ではなく、変数名がセル番地と同じ形だったこと
- 名前を変えるだけで20行すべて正解になった
- エラーの文言をそのまま伝えたら、44秒で原因を特定して直してきた
- 同じ数式でも、元の列が文字列か日付かで結果が変わる(20行中8行に落ちた)
- 答え合わせは人がやる。数行を手で計算して突き合わせるだけで十分

