脱!公務員ブログ

元地方公務員(市役所職員)のSEが、自身の体験を元に公務員の実態や役立つ知識や経験談、IT関連の技術的な情報、美味しいお店の情報、趣味(野球、音楽、ゲーム、麻雀)に関すること、私自身の波乱に満ちた人生経験について発信します。記事を読んだ後は少し知識が増えて、笑顔になれる(ネタ要素満載)、そんなブログですので是非お立ち寄り下さい♪

CSVファイルの値の先頭が0落ちしてしまう時のExcelでの対処法

CSVファイルをExcelで開いたら、先頭の0が落ちてしまったけど、どうやって対処したらいいかわからない・・・」

ExcelCSVファイルを開いた時に先頭の0が落ちてしまって困った経験をお持ちの方は多いでしょう。

本記事はそんな方に向けた、CSVファイルの値の先頭が0落ちしてしまった時の解決方法について解説する記事です。

0落ちを発生させないようにする方法や、なぜ0落ちが発生するのか、上書き保存してしまった時の対処法などについてお話ししますので、ファイル編集作業の参考としてください。

それではご説明させていただきます。

そもそもなんでCSVファイルは0落ちするのか?

CSVファイルはデフォルトでExcelで開くように設定されていますので勘違いしがちですが、Excel形式のファイルとは異なるものです。

CSV(Comma-Separated Values)はその名の通り、カンマで区切った値であり、テキストファイルです。

そのため、ExcelCSVファイルを開かずに、テキストエディタ(メモ帳、サクラエディタとか)で編集するのが正しい形です。

そしてExcelには自動的に値のデータ型を変換するはた迷惑な機能が実装されています。

このExcelマジックと言うべく勝手に値を編集した結果、

Excel「これは数値っぽいから数値にしておいた方が助かるよね!数値にしておいたから!!」

といらない気遣いが発生してしまい、「0089」が「89」に変換されてしまうという事象が発生します。(勝手に変えないでよ・・・・)

ExcelCSVファイルを0落ちさせずに編集する方法

前述の通りテキストエディタで編集すれば0落ちは発生しないのですが、Excelで編集する場合は、インポート機能を活用すると良いです。

例えば、下記のようなCSVファイルがあります。

サンプルCSV画像

サクラエディタだと上記のように表示されますが・・・

エクセルで開くと、このように「項目1」の値の先頭0が落ちてしまう状態になります。

Excelのインポート機能の利用手順

新規ブックを開き、「データ」タブの「テキストまたはCSVから」を選択します。

編集したいCSVファイルを選択し、インポートを選択します。

このままだと0落ちしてしまいますので、「データ型検出」を「データ型を検出しない」を選択します。

こうすると、「項目1」が勝手に数値に変更されないため、原型を保ったままExcelに取り込むことができます。

「データの変換」を選択すると、下記の画面になりますので、左上の「閉じて読み込む」をクリックします。

これで0落ちせずに、ExcelCSVファイルを読み込むことが可能です。

ExcelCSVファイルを0落ちした状態で上書き保存してしまった時の対処法

知らず知らずのうちに、先頭0が落ちているのに気づかずにCSVファイルを上書き保存してしまうことはよくあります。

その場合は、下記の方法で対処が可能です。

Text関数を利用する

Text関数は、セルの値を任意の形式に変換した文字列にすることができます。

大概の場合は値の桁数が決まっているものと思いますので、サンプルとして0落ちした値を7桁に補正する場合の例を記載します。

★関数の例

・=Text(A1,"0000000")

上記の例は、A1セルの値を0ありの7桁の文字列に変換させる関数です。

このように関数で文字列に変換した値を、コピーして値貼り付けで元の位置に上書きしてあげれば、0落ちする前の状態に戻すことが可能です。

上記のText関数は色々なものに応用可能ですので、データ編集の際に小技として覚えておくととても便利ですよ!

あとがき

CSVファイルの値の先頭が0落ちしてしまう時の対処法に関する記事でした!

他にもCSVExcelにまつわる記事がありますので、事務作業の参考としてくださいね。

www.withdrawal-civilservice.com

www.withdrawal-civilservice.com

PowerShellで指定したフォルダ配下の全ファイルのファイルパスと、容量を降順にソートしてCSV出力するスクリプトの記事です。ファイル整理作業のお供にどうぞ。

www.withdrawal-civilservice.com