メインコンテンツへスキップ
見出し画像

CSVバチ開き撲滅運動

    ちょっと自慢

    私、前々職で社内Excel勉強会の講師とかやってたこともあるんですが。
    その時に、ずっと「CSVは『バチ開き』したらだめです」って言ってたんです。
    ※「バチ開き」=CSVをダブルクリックして開くこと

    ただただ口が悪かっただけなんですが、米津玄師が「IRIS OUT」という曲で「バチ開き」って歌詞に使ってて。
    「私、米津玄師と同じボキャブラリー持ってる……!」って嬉しくなりました。

    CSVバチ開きしてる人~?

    最初からどうでもいい自慢、失礼しました。
    どうしても言いたくて(笑)

    ここから本題です。
    皆さんはCSVファイルを「バチ開き」してませんか?
    私はこれで事故った人(昔の私含む)を本当にたくさん見てきたので、もう一度言わせてください。
    「CSVは『バチ開き』したらだめです」

    もしあなたが「バチ開きしてるけど困ったことがない」なら、とってもラッキーだったかExcelスキルが高い人のどちらかです。
    前者の方は、この記事を読んだらいいことがあるかもしれません。
    後者の方は読む必要がないので、そっとブラウザバックして別の素敵な記事へどうぞ。

    CSVは擬態する

    「私はCSVをバチ開きしている罪深い人間です」と思って、このチャプターに進んでくださったあなた。
    あなたはもう、「無知の知」。
    罪から救われかけています。

    問題なのは、「え?CSVってExcelの仲間でしょ?」って思ってるあなた、
    もしくは「CSVってExcelでしょ?」って思ってるあなたです。
    ここがこの問題の根深いところ。
    アイコンを見ても、「私はExcelの親戚みたいなもんですよ」もしくは、「Excelとは心友!ズッ友だよね!」って顔して鎮座してる。

    画像
    左下にExcelがいる

    そりゃこんなことされちゃ勘違いする人いっぱい出てきます。
    だけど、そもそもCSVって何の略か知ってますか?
    「Comma Separated Values」でCSVです。
    コンマ(,)で区切られた(Separated)値の集合体(Values)ってわけです。
    だから本来、こういうアイコンが正しいと私は思うんですよね。

    画像
    正体はテキストデータ

    事故の原因

    「CSVはExcelじゃないってのは何となくわかった。
    でも、ダブルクリックして開いたらExcelで開くじゃん。」
    そう思ったあなた。鋭い!

    そう、そうなんです。
    これね、Windowsが「CSVはExcelで開くのがデフォ」って決めてるからなんです。
    そして、まさしくそれが事故の原因なんですよ……。

    CSVって、コンマで区切られた値の集合体だって説明しました。
    例えばこういうExcel資料があったとします。

    画像
    よくあるExcel資料

    これ、CSVで保存してバチ開きしたらこうなります。

    画像
    わー最悪……
    • 黄色で色付けしたはずが全部色なしになってる

    • 4行目と6行目の管理コードが変な日付になってる

    • JANコードが変な数字になってる

    これ、「CSVをバチ開きする」=「ホントはExcelじゃないのに互換性に頼って無理やり開いたから」なんです。

    試しに、CSVにしたファイルをメモ帳で開いてみましょう。
    右クリック→プログラムから開く→メモ帳 です。
    メモ帳が出てなければ、別のプログラムを選択→メモ帳 でいけます。

    画像

    そしたら、こんな感じになってるはずです。
    1セルごとの値が、コンマ(,)で区切られてるのが分かりますよね。
    そして、この時点ではまだ変なデータになってないことも確認できます。

    画像

    つまり、Excel→CSVに変換した時点ではまだ事故ってないんです。
    これをダブルクリックでバチ開きした瞬間に事故る。

    「あなたのためだから」はホント厄介

    CSVをバチ開きした瞬間、Excelの「あなたのためだから」が暴走します。
    もうほんとに一瞬で、「余計なお世話」を全部やってくる。
    一回も頼んでないのに「任せろ!すでに仕事は終わっている!完璧に!」ってドヤってくるんです。

    ◆「X-X」形式は、「日付っぽい」やつがあったから日付にしといたよ!
     ※「X/X」形式でも同じことが起こります。

    日付に変換するパターン
    25-11-20→2025年11月20日
    12-25→当年の12月25日
    95-1→1995年1月1日
    4261-1→4261年1月1日
    ※セルの中身自体も変換されてしまうので、元に戻すのは難しいです。

    日付に変換しないパターン
    0256-2
    25-11-31
    13-25
    95-20
    4261-0
    ※これらは全部日付としてはありえないので、日付じゃないと認識して、そのままです。

    ◆頭の「0」は消して数字にしちゃうね!
    0が頭についてる数字データって、テストデータのJANコードもそうなんですが、「数字を記号やコードとして扱っている」んですよね。
    だけど、Excelは「おっけおっけ、数字ね!」って認識するんです。
    いくら元のExcelで書式設定を「文字列」にしてても、Excelからしたら数字なんです。
    だって、CSVにした時点で、「コンマで区切られた値」になってるんだから、Excelの機能である書式設定はリセット済み。
    だから、ここに関しては、実はExcelはそこまで悪くない。

    私自身、まだ営業事務としてひよっこだった時代、何度JANコードの頭の0を失って発狂したことか⋯(笑)

    ◆桁数の多い数字は「指数」にしとくね!
    これ、Excelの悪い癖です。
    0を消しちゃうのはある意味仕方ない。
    だけど、勝手に指数表示にするのはギルティだと私は思ってます。
    指数なんて、普通の人はあんまり馴染みがないと思うんですよね。
    だから、「4.85247E+11」とか「7.40E-09」に変換されたデータを見てみんなパニックになる。

    代表的なのはこんなところだと思いますが、今思いついてないだけで、まだ他にもあるかもしれません。
    とにかく、ExcelはCSVの中の表示形式の判別がつかないデータは、「自分がいいと思う形に勝手に変換しちゃう」んです。
    なぜかと言うと、CSVって書式設定とか全部なくなっちゃうから。
    だから、セルに色を付けても太字にしても罫線引いても「文字列」形式を指定しても、CSVにしたら全部なくなっちゃって、Excelは判別できなくなるんです。

    そして一番厄介なのは、同じ列に変換されているものと無変換のものが混ざること。
    これ、今回はテストデータの行数が少なかったから目視で気付く可能性が高いです。
    でも、行数が多いデータで、上の方に無変換になるデータが偶然固まっていたら……
    あなたは途中からおかしなデータが入っていることに気づけますか?

    もっと言えば、あなたがもうちょっと慎重派で、最後のセルも見るタイプだったとします。
    でも、最初も最後も無変換データが偶然固まっていたら……??
    私は無理です。気付けません(笑)

    救済策、ちゃんとあります

    こんな感じで、バチ開きしちゃっておかしなことになってるCSVを見ると、大体みんな「わー!」ってパニックになります。

    ……なるんですが、まずはマウスとキーボードから手を放して落ち着きましょう。
    そして、上書き保存しないで閉じてください。

    CSVは上書き保存した瞬間、当然ですが 「変換後の変なデータ」で上書きされてしまいます。
    ここで取り返しがつかなくなる。
    こうなると、どんなExcel上手さんでもリカバリは不可能です。

    保存しないで閉じた後は、自分で直せそうなら、もちろん直してOK。
    でも、ちょっとでも不安があるなら、お近くのExcel上手さんのところに持っていくのがいいと思います。

    そして、私のおすすめは 「外部取り込み」 です。

    画像
    「データ」タブ→「テキストまたはCSVから」を選択

    これは、Excelに 「この列は文字列」「この列は日付」と、列ごとに表示形式を設定して開く方法です。
    ちょっと手間はかかりますが、これができるとExcel上手さんに一歩近づけます。

    以上、CSVバチ開き撲滅運動でした

    Excelは今日も「任せろ!」ってドヤ顔で変換しようとしてきます。

    ここまで書いておいて何ですが、CSVの扱い方は人それぞれです。
    「私は開いてからリカバリする派」も全然OK。
    「今困ってないからこれからもCSVはバチ開きだぜ!」でも良いと思います。
    でも、もし今後、データの仕様が変わったりして事故が起こった時に、
    「もしや……?」ってこの記事を思い出してもらえたら本望です。

    Excelは基本的にはあなたの味方ですが、たまに罠を仕掛けてきますからね。
    皆様これからもご安全に!

     
     
    ようこそ、deskbitsへ! AIの記事が多いですが、AIより人間の方が面白いと思ってる人間が書いているので、AI以外もそれなりにたくさん置いてあります。 書きたいことを割と本音で書いているnoteです。 一つでも「面白い」と思っていただける記事があればとっても嬉しいです!

    あなたへのおすすめ