エクセルでCSVに保存する前に、番号の列を1回だけ見てほしいんだよ。12桁でも『1.23457E+11』で書きこまれた

標準のまま、送らないで。CSVと書いた封筒からはみ出した紙テープにE+11とだけ残り、右側はハサミで切られている。先輩がE+11を指さし、後輩A君が「番号が消えた!」と驚いている絵 A君の成長

おはよう、後輩A君。

もらったCSVをエクセルで開いて、直して、CSVのまま送り返す。そんな仕事をするときに、送る前に1つだけ見てほしいところがあるんだ。今日はその話だよ。

先に答えを言うね。⭐ 番号の列の表示形式が「標準」のままCSVに保存したら、12桁の番号 123456789012 は、ファイルに「1.23457E+11」と書きこまれたんだ。7けた目から先が消えたんだよ。15桁でも同じだったよ。

⚠️ CSVを開くときに出る画面で「変換」を押しても「変換しない」を押しても、同じだった。列の幅を広げても、同じだったんだ。

11月13日と11月14日に、Mac版のエクセル(16.113.2)で測ったよ。CSVを開くときに出る画面のボタンは、わたしが自分の手で押したんだ。ほかの操作(表示形式を変える・保存する)は、命令(プログラム)でやったよ。

1. CSVで返す前に、番号の列を1つクリックして、表示形式を見るんだよ

点検は、これだけなんだ。

❶ 番号が入った列のセルを、1つクリックする
❷ 表示形式が「標準」になっていないか見る
❸ 「標準」だったら、そのまま保存しない

今日の測定で、表示形式ごとに番号が守れたかどうかは、こうだったよ(くわしい表は4章・5章で見せるね)。

⚠️ 標準のまま → 12桁・15桁は「1.23457E+11」の形になって、7けた目から先が消えた
⭐ 数値・小数0桁 → 12桁・15桁は守れた
⭐ 000…(ユーザー定義。番号のけた数と同じ数の0の形。今日は10けたなので 0000000000) → 12桁・15桁と、先頭の0が守れた
⭐ 文字列(元の番号を入れ直した) → 全部守れた

⚠️ 16桁の番号だけは、もう一段きびしかったんだ。「変換」を押して開いたあとでは、文字列にして元の番号を入れ直したときしか守れなかったよ。

2. 測ったCSVは、番号を4種類並べたものなんだよ

CSVは、命令(python)で作ったんだ。中身は数字と半角の文字だけ。見出しは英字(A_d12 など)だよ。

並べた番号は、こうだよ。

種類 1つ目 2つ目 3つ目
12桁 123456789012 987654321098 4901234567894(⚠️ これだけ13桁)
15桁 123456789012345 987654321098765 490123456789012
16桁 1234567890123456 9876543210987654 4901234567890123
先頭0 0312345678 0011223344 0000012345

この4列を1まとまりにして、A・C・D・E の4まとまりを横に並べたんだ。まとまりごとに、保存する前の表示形式を変えたよ。

A そのまま(標準)
C 数値・小数0桁
D 000…(ユーザー定義の「0000000000」)
E 文字列(文字列にしてから、元の番号を入れ直した)

保存は、開いたCSVにそのまま上書きしたよ。保存したファイルと元のファイルは、命令(python)で1文字ずつ比べたんだ。

3. CSVを開いたときに、この画面が出たんだよ

CSVを開くと、こんな画面が出たんだ。
CSVを開いたときに出た画面。「既定では、Excel はこのファイルで次のデータ変換を実行します:」「大きな数値を科学的記数法に変換する」「先頭のゼロを削除する」「これらの変換を永続的に保持しますか?」と書かれ、「.csv または類似のファイルでの既定の変換について通知しません。」のチェック欄と、「変換しない」「変換」のボタンがある。後ろのエクセルの表では、A2 が 1.2346E+11、D2 が 312345678 と出ている
画面の文は、こうだよ。

既定では、Excel はこのファイルで次のデータ変換を実行します:
・大きな数値を科学的記数法に変換する
・先頭のゼロを削除する
これらの変換を永続的に保持しますか?
[変換しない][変換]

「科学的記数法」というのは、1.2346E+11 のように、けたの多い数を短く書く書き方のことだよ。⚠️ この画面が出たのは、開いたときなんだ。(保存は命令でやったから、手で保存したときに何が出るかは見ていないよ)

次の章から、「変換」と「変換しない」のそれぞれで、保存したらどうなったかを見せるね。

4. ⚠️「変換」を押したあと、標準のまま保存したら「1.23457E+11」になったんだよ

「変換」を押して開いた直後は、12桁の番号は画面に 1.2346E+11 と出ていたよ(表示形式は標準)。先頭0の 0312345678 は、312345678 になっていたんだ。

ここで、まとまりごとに表示形式を変えて、CSVに保存したよ。保存したファイルの中身は、こうだったんだ。

番号 A 標準のまま C 数値・小数0桁 D 000… E 文字列
12桁 ⚠️ 1.23457E+11(9.87654E+11・4.90123E+12) ⭐ 無事 ⭐ 無事 ⭐ 無事
15桁 ⚠️ 1.23457E+14 ⭐ 無事 ⭐ 無事 ⭐ 無事
16桁 ⚠️ 1.23457E+15 ⚠️ 1234567890123450(最後が0) ⚠️ 最後が0 ⭐ 無事
先頭0 ⚠️ 312345678(0が消えた) ⚠️ 0が消えた ⭐ 無事(0312345678) ⭐ 無事

元の 123456789012 と、書きこまれた 1.23457E+11 を並べてみようか。数字として残っているのは 1.23457 の6けたぶんだけ(6けた目は四捨五入されて 6 が 7 になっているよ)。7けた目から先は、ファイルのどこにも書かれていないんだ。

⇒ 送り返した相手は、このファイルから元の番号を取り出せないんだよね。

16桁は、数値・小数0桁や000…にしても、最後のけたが0になっていたよ。E(文字列)で無事だったのは、文字列にしたあとで元の番号を入れ直したからなんだ。

11月13日にも1回測ったんだけれど、そのときは、ボタンを押す前がどういう状態だったのかが、はっきりしないんだ。だから主な結果は、11月14日の2回目のほうにしたよ。1回目に保存されたファイルは、2回目の「変換」のファイルと同じだったよ。

5. ⚠️「変換しない」を押しても、12桁と15桁は守れなかったんだよ

次は、「変換しない」を押して開いたよ。開いた直後は、こうだったんだ。

12桁 → 1.2346E+11(数値になった)
15桁 → 1.2346E+14(数値になった)
16桁 → 1234567890123456(文字のまま)
先頭0 → 0312345678(文字のまま)

こちらは表示形式を変えずに、そのまま保存したよ。保存したファイルは、こうだったんだ。

12桁 → ⚠️ 1.23457E+11 の形
15桁 → ⚠️ 1.23457E+14 の形
16桁 → ⭐ 無事
先頭0 → ⭐ 無事

A・C・D・E の4まとまりとも、同じ結果だったよ。

⇒ 「変換しない」を押すと、16桁と先頭0は文字のまま残って、守れたんだ。でも12桁と15桁は、「変換しない」でも数値になって、保存したら7けた目から先が消えたんだよ。

⚠️ 「変換しない」のあとで表示形式を変えてから保存するのは、今日は試していないんだ。

6. 列の幅を広げても、書きこまれる形は同じだったんだよ

「画面に見えている形のまま保存されるなら、列を広げて全部見えるようにすればいいのでは?」と思うよね。それも試したよ(「変換」を押して開いたファイルで)。

A〜D列の幅を30に広げたら、画面の表示が変わったんだ。

幅を広げる前の画面 → 1.2346E+11
幅を広げたあとの画面 → 1.23457E+11(表示形式は標準のまま)
保存したファイル → ⚠️ 1.23457E+11

⚠️ 幅を広げても、保存される形は変わらなかったよ。

それに、ふつうの幅のときは、画面は 1.2346E+11、ファイルは 1.23457E+11 だったよね。⇒ 画面の見た目のまま書きこまれる、というわけでもなかったんだ。だから、画面を見て「これなら大丈夫そう」と決めるのはむずかしい。見るのは表示形式のほうなんだよ。

7. 前に書いた2本と、合わないところがあったんだよ

正直に書いておくね。

① 指数表示を解除する記事で、12〜15桁は「中身は無事」と書いたよ。これはエクセルの中では正しいんだけれど、⚠️ 標準のままCSVに保存すると壊れるんだ。
② 先頭の0が消える記事で、000…(ユーザー定義)でも「CSVに保存すると0は消える」と書いたよ。⚠️ でも今日の測定では、0は残ったんだ(0を10個の形・10けたの番号で。0312345678 のまま)。書いたことと、逆の結果だったよ。

8. ⚠️ 今日測れなかったこと

・測ったのはMac版のエクセル(16.113.2)だよ。Windows版で同じになるかは、分からないんだ
・「変換しない」を押したあとで、表示形式を変えてから保存するのは、試していないよ
・「名前を付けて保存」で、形式(CSV UTF-8など)を選んで保存したときは、試していないんだ
・日付・小数・日本語の見出しが入ったCSVは、試していないよ
・開いたときの画面で「通知しません」にチェックを入れたときは、試していないんだ
・けた数がそろっていない番号の列は、試していないよ
・フォルダの使用の許可を出したまま保存したときは、試していないよ。1回目(11月13日)は、命令で保存したとき、フォルダの使用の許可を聞く画面が出て、わたしがキャンセルしたのに保存されていたんだ。理由は分からないよ
・保存したCSVの中身は、写真に撮れなかったんだ。だから、命令で1文字ずつ比べた結果を表で見せたよ

9. エクセルの記事、これで35本目だよ

34本目は、目次のリンクが、行を足したらちがう行に飛んだ話だったね。

CSVを開くときの話は、7章の2本(指数表示と先頭の0)に書いたよ。今日は、CSVに保存するときの話なんだ。

結論:CSVで返す前に、番号の列を1つクリックして、表示形式を見ようか。標準のままだと、12桁でも7けた目から先が消えたんだよ

今日測った結果をまとめるとこうだよ。

① 表示形式が標準のままCSVに保存すると、12〜15桁は「1.23457E+11」の形で書きこまれ、7けた目から先が消えた
② 開くときに「変換」「変換しない」のどちらを押しても、列の幅を広げても、同じだった
③ 画面の表示(1.2346E+11)と、書きこまれた形(1.23457E+11)はちがった
④ 守れたのは、数値・小数0桁(12〜15桁)/000…(12〜15桁と先頭0)/文字列(全部)
⑤ 16桁は、「変換」のあとでは文字列にして元の番号を入れ直したときだけ守れた

CSVは、エクセルの中で見えている数字とはちがう形で書きこまれることがあるんだ。送り返す前に、番号の列を1つクリックして、表示形式が「標準」になっていないか見ようか。

よくある質問

Q1. 「変換しない」を押して開けば、番号は全部守れますか

⚠️ 全部は守れなかったんだ。今日の測定では、「変換しない」を押すと16桁と先頭0は文字のまま残って、保存しても無事だったよ。でも12桁と15桁は数値になって、標準のまま保存したら「1.23457E+11」の形になったんだ。⇒ どちらのボタンを押しても、保存する前に番号の列の表示形式を見ようか。

Q2. 16桁の番号は、どうすれば守れますか

今日の測定で守れたのは2つだよ。「変換しない」を押して開いて、文字のまま残ったとき。それから、「変換」のあとで文字列にして元の番号を入れ直したとき。⚠️ 「変換」のあとで数値・小数0桁や000…にしても、最後のけたが0になったままだったんだ。⇒ 16桁の番号があるCSVは、元のファイルを手元に残しておこうか。

Q3. 列の幅を広げて、番号が画面に全部見えるようにすれば大丈夫ですか

⚠️ 大丈夫じゃなかったんだ。幅を30に広げたら、画面の表示は 1.2346E+11 から 1.23457E+11 に変わったけれど、保存したファイルは 1.23457E+11 のままだったよ。⇒ 見るのは列の幅じゃなくて、表示形式のほうなんだ。

【本日のミッション:CSVで返す前に、番号の列を1回だけ見てみようか】

  • ☐ CSVで送り返す前に、番号の列のセルを1つクリックして、表示形式が「標準」になっていないか見てみようか
  • ☐ 「標準」だったら、12〜15桁の番号の列は数値・小数0桁に、先頭が0の番号の列は番号のけた数と同じ数の0の形(今日は10けたなので 0000000000)にしてから保存してみようか
  • ☐ 16桁の番号があるときは、元のCSVを残したまま作業してみようか
  • ☐ (後輩A君へ)CSVは、画面で見えている数字のまま書きこまれるとは限らないんだよ。送る前の1クリックで、相手の番号を守ろうか

📚 AI活用シリーズ(おすすめ)

▼ シリーズの全記事一覧を見る

コメント

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