AIに作らせた表がExcelで崩れる。16個の値で変わり方を数えた

2026-09-22AIの使い方
表の取り込みチェック表と依頼文(Excel)をダウンロード

無料・登録不要 / 19KB / 版 1.0 / Excel 2010以降

AIが出した表をExcelに入れると値が変わるのは、区切り文字だけの話ではない。タブ区切りに直しても、16個の値のうち8個は別のものに変わった。

変わらなくする場所は貼り先だ。貼る前に列を文字列にしておくと、同じ16個が全部そのまま残る。指示の書き方で直るのは、列が1つにまとまる問題のほうだけになる。

表をもらってから貼るまでの順番。タブ区切りで出ているかを見て、貼り先の列が文字列かを見て、見出しの並びと行数を見る

以下の数は、Microsoft 365のExcel(バージョン16)に実際に入れて、セルの中身を読んで数えたものだ。確認日は2026年9月22日。Windows 11で、貼り付けの設定は既定のままにしてある。使った16個は、社員番号、商品コード、型番、電話番号、郵便番号、日付、数量、割合、時間など、事務の表によく出るものにした。

Markdownの表を貼ると、16個とも1つの列に入る

縦線で区切った表をそのまま貼った。使われた列は1つだけで、16個の値はどれもセルに入らなかった。

1行目に入ったのは見出しの行ではなく、縦線とハイフンだけの区切り行だった。Excelは縦線を区切り文字として見ない。行ごと1つのセルに入る。

画面で見た形がそのままExcelに移ると思って貼ると、ここで止まる。上位の記事が書いているとおり、まず出力形式をタブ区切りにさせる。

タブ区切りに直しても、値は8個しか残らない

同じ16個をタブ区切りで貼ると、列は16に分かれた。形は直っている。ただし値のほうは8個が別のものに変わった。

0012              →  12
1-2               →  1月2日
SEP-3             →  3-Sep
2026-09-01        →  2026/9/1
1234567890123456  →  1.23E+15
=1+1              →  2
45                →  45
0312345678        →  3.12E+08

仕組みはこうなっている。表示形式が標準のセルに文字が入ると、Excelはその文字を数値、日付、時刻、論理値の順に読めるかどうか試す。読めたらその型に変えて、どれにも読めなければ文字列のまま置く。

だから1-2は1月2日と読めて日付になる。SEP-3は英語の月名と日に読める。0012は数値に読めるので前のゼロが落ちる。16桁の数字は、Excelが持てる有効桁が15桁なので16桁目から0になる。=1+1は式として計算される。

そのまま残ったのは3-1E503-1234-5678100-0001の3つだけだった。どれも数値にも日付にも読めないので、文字列のまま置かれる。

見た目が変わらなくても型が変わるものもある。2026/9/1は表示が同じだが、中身は文字列ではなく数値になっている。16個のうち文字列のまま残ったのは3個で、残り13個は数値か論理値になった。型が混ざると、あとで照合するときに外れる。VLOOKUPが合わない原因を200件で数えたときも、数値と文字列の取り違えが19件あった。

16個の値をExcelに入れて、そのまま残った数を数えた。Markdownは0個、CSVは8個、タブ区切りも8個、文字列にした列なら16個

CSVのファイルにして開いたときも、同じ8個が変わった。貼るか開くかで結果は変わらない。

貼り先の列を先に文字列にすると、16個とも残る

貼り先の16列をあらかじめ文字列にしてから同じものを貼ると、16個ともそのまま残った。

手順は2つだ。貼る範囲の列を選んで、ホームタブの表示形式で文字列を選ぶ。そのあとで貼る。

順番を逆にしても戻らない。貼ったあとで列を文字列に変えても、0012は12になったあとの「文字列の12」になるだけだ。1回変わったものは元に戻らない。

文字列のままだと合計が出せない列がある。金額や数量は、貼ったあとでその列だけ数値に直す。先に数値の列を作らないのがこつになる。

カンマが1つ入ると、列が1つ増える

CSVで出させたときの失敗をもう1つ数えた。20行の表を作り、そのうち3行の品名に「デスク, 天板付き」のようにカンマを入れた。

開くと列が4つではなく5つになり、20行のうち3行で値が1つ右にずれた。ずれた行は日付の列に数量が入り、日付が5列目にはみ出す。

見つけ方は、5列目に何か入っている行を数えることだ。本来の列数より右に値があれば、その行は区切りが増えている。

依頼文には「値の中にタブとカンマと改行を入れない」と書いておく。タブ区切りならカンマは平気だが、値の中にタブが入れば同じことが起きる。

列の名前と順番を指示に書く

AIは頼んでいない列を足すことがある。並び順も指示しないと変わる。列が入れ替わると、貼ったあとの式が別の列を見る。

指示にはこう書く。列の名前と順番はこのとおりにする。増やさない。減らさない。並べ替えない。

貼ったあとは目で見ないで、機械で比べる。比べる関数はEXACTを使う。大文字と小文字、全角と半角を区別するからだ。COUNTIFやMATCHは区別しないので、「部署」と「部 署」を同じものとして通してしまう。

=IF(EXACT($B3,$C3),"合っている","違う")

B列に指示した見出し、C列に貼られた実際の見出しを置いて、1行ずつ比べる。列名を「部署」から「所属」に変えた表を入れてみたら、その行が違うと出た。

そのまま送れる依頼文

4つのことを書けば、直せる範囲は直る。出力形式、列と順番、各列の書き方、行数だ。

次の条件で表を作ってください。

出力形式: タブ区切り。1行目を見出しにする。コードブロックに入れる。
 表の前後に説明を付けない。
列と順番: 社員番号, 氏名, 部署, 入社日, 基本給
 列の名前と順番はこのとおりにする。増やさない。減らさない。並べ替えない。
各列の書き方:
 社員番号 4桁。前のゼロを含めてそのまま書く(例 0012)
 入社日  YYYY/MM/DD(例 2026/04/01)
 基本給  桁区切りを入れない半角数字(例 250000)
 どの列も、値の中にタブとカンマと改行を入れない
行数: 20行。足りないときは行を作らず、足りないと文で書く。
値がないセル: 空にしないで 未定 と書く。

出力形式を書かないと縦線の表が返る。列と順番を書かないと並びが変わる。各列の書き方を書かないと日付の形がそろわない。行数を書かないと、足りない分を埋めた表が返る。

空のセルを空のままにしないのは、行がずれたときに気づくためだ。全部のセルに何か入っていれば、空いているセルはずれの跡になる。

数式を頼むときも同じで、頼み方と確かめ方を分ける。式のほうはExcelの数式をAIに頼むときの型に書いた。

貼ったあとに数える

配ったブックは4枚だ。貼り付け用のシートは、A列からH列の表示形式を文字列にしてある。検査のシートで、貼った表を数える。

取り込みチェック表。列名を入れ替えた表を入れると、並びの欄が違うと出て、重複と数値になった数が赤くなる

数えるのは6つにした。見出しの並び、行数、空の数、いちばん短い字数といちばん長い字数、先頭の列の重複、数値になってしまった数だ。

字数の幅を見るのは、前のゼロが落ちた行を見つけるためだ。社員番号が4桁でそろっていれば、短いほうも長いほうも4になる。1行でも数値に変わると短いほうが2や3になる。全部を目で見なくても、この2つの数が違えば混ざっている。

重複はCOUNTIFでは数えない。COUNTIFは0012と12を同じものとして数えるので、まさに今回の壊れ方を見落とす。EXACTで1つずつ比べて数える。

=SUMPRODUCT(--EXACT($K$1:$K$200,$K3))

壊した表を入れて確かめた。列名を1つ変え、社員番号を1行だけ数値にして、番号を1つ重複させた表を入れると、並びの欄に違うと出て、いちばん短い字数が2、重複が2件、数値になってしまった数が1と出た。3つとも拾えている。

読み取った表を機械で検算する考え方は、PDFの表をExcelに起こすときの確かめ方と同じだ。人が見比べる前に数を合わせる。

確かめていないこと

Web版のExcelとGoogleスプレッドシートでは試していない。型の読み替えの決まりが同じかどうかは確認していない。

同じ依頼文を送ったとき、何回中何回がタブ区切りで返ってくるかは数えていない。モデルごとの差も測っていない。ここで数えたのはExcel側の動きだけだ。

貼り付けのときに働くデータ型の自動検出は、設定で切れる場合がある。切った状態では試していない。既定のままの結果として読んでほしい。

動作確認: Microsoft 365のExcel(バージョン16) / Windows 11 / 2026-09-22確認

AIExcel取り込みテンプレート