取引先から届いたCSVをダブルクリックで開いたら、郵便番号の先頭の0が消え、品番の「1-2」が「1月2日」になっていた。どの会社でも起きる、Excelのよくある事故です。原因と崩さずに開く手順、社員に配れる短い手順書をまとめました。
CSVをダブルクリックで開くと何が起きるか
CSV(項目をコンマで区切った、文字だけのファイル)は、会計ソフトや通販の管理画面、名簿の書き出しなどで毎日のように使われます。ところがダブルクリックでExcelに開くと、次のように中身が変わります。
| 項目 |
CSVの中身 |
Excelでの表示 |
何が起きたか |
| 郵便番号 |
0600001 |
600001 |
数値にされ、先頭の0が消えた |
| 電話番号(ハイフンなし) |
0312345678 |
312345678 |
同上 |
| 社員番号・会員番号 |
00123 |
123 |
同上 |
| 品番 |
1-2 |
1月2日 |
日付にされた |
| 品番 |
3/4 |
3月4日 |
日付にされた |
| 型番 |
12E3 |
1.20E+04 |
「E」を指数の記号とみなされた |
| 16桁のカード番号など |
1234567890123456 |
1.23457E+15 |
15桁を超えた分が0になった |
Togetterでは2026年3月、同じ失敗談が大量に集まりました。きっかけは「Excelの技能試験でCSVを渡され、Excelで開いていいか質問したら合格」という冗談です。それだけ多くの人が経験している問題です。
なぜ0が消え、日付に化けるのか
CSVには「この列は文字」「この列は数値」という情報がありません。そこでExcelは、開くときに中身を見て、数値らしいものは数値に、日付らしいものは日付に自動で変えます。Microsoftのサポート情報も、CSVを開くと「既定のデータの書式設定」で各列を解釈すると説明しています。
数値として扱うと、先頭の0には意味がないので消されます。また、Excelが数値として正確に持てるのは15桁までです。16桁以上の数字は、16桁目から先が0に置き換わります。
日付への変換は、日付を入力しやすくするための仕組みです。Microsoftは、セルに直接入力したときの日付への変換を「オフにする方法はありません」としています。CSVの場合は、開き方を変えることで避けられます。
正しい開き方 「データ」タブの「テキストまたはCSVから」
Microsoft 365やExcel 2019以降では、次の手順で開けば中身を変えずに読み込めます。Excel 2016でボタンが見当たらないときは、「データ」タブの「新しいクエリ」→「ファイルから」→「テキストから」を使います。
- Excelで空白のブックを開く
- 「データ」タブの「データの取得と変換」グループで、「テキストまたはCSVから」を選ぶ
- 開きたいCSVを選び、「インポート」を押す
- プレビューの画面で、下の表の3か所を確かめる
- 「読み込み」を押す。新しいシートに表として入る
Microsoftのヘルプに載っている、「データ」タブからテキスト/CSVを選ぶメニュー出典: Microsoft サポート「Excel で CSV UTF-8 ファイルを正しく開くには」(引用)
プレビューの画面では、上に並ぶ3つの欄を確かめます。
| 欄 |
何を決めるか |
選ぶもの |
| 元のファイル |
ファイルの文字コード |
文字化けしていたら別のもの(UTF-8か日本語(シフトJIS))に変える |
| 区切り記号 |
項目の区切り |
通常は「コンマ」 |
| データ型検出 |
各列を数値や日付に変えるか |
「データ型を検出しない」 |
「データ型を検出しない」を選ぶと、すべての列が文字として読み込まれます。初期設定の「最初の200行に基づく」のままだと、先頭200行が数字だけの列は数値にされ、0が消えます。
金額や数量など計算したい列は、読み込んだあとに選んで数値に変えれば足ります。手順を覚えきれない人には、まず「データ型を検出しない」の一点だけを覚えてもらいましょう。
列ごとに文字か数値かを決めたいとき
毎月同じ形のCSVを扱うなら、列ごとに型を決めておくと便利です。プレビューで「データの変換」を押すと、Power Query エディター(取り込むデータを整える画面)が開きます。
- 文字のまま残したい列の見出しを選ぶ(Ctrlキーを押しながらで複数選べる)
- 「ホーム」タブの「データ型」で「テキスト」を選ぶ
- 確認が出たら、今の型を置き換えるほうを選ぶ
- 「閉じて読み込む」を押す
この手順は「クエリ」として保存されます。次の月に同じ名前のCSVへ差し替えたら、「データ」タブの「すべて更新」で同じ変換がかかります。
昔ながらのテキストファイルウィザードを使う方法
古い手順に慣れている人は、テキストファイルウィザードも使えます。Microsoftの説明では、CSVの拡張子を「.csv」から「.txt」に変えてから開くと、ウィザードが起動します。3つ目の画面で、0を残したい列のデータ形式を「文字列」にします。
ウィザードは「データ」タブからも呼び出せます。「ファイル」→「オプション」→「データ」で、従来(レガシ)のインポートウィザードを表示する欄の「テキストから(レガシ)」にチェックを入れてください。
文字化けするときは UTF-8 と Shift_JIS の違いを疑う
開いたら日本語が「縺ゅ≠」のような記号の列になる。これは文字化けで、文字コード(文字を数字に置き換える決まり)の食い違いが原因です。日本で使われるCSVの文字コードは、主に次の2つです。
| 文字コード |
よく使われる場面 |
起きやすいこと |
| Shift_JIS |
昔からの日本の業務ソフト、古いシステムの書き出し |
海外のサービスや新しいシステムに取り込むと化ける |
| UTF-8 |
クラウドのサービス、新しいシステム、世界共通の形式 |
目印(BOM)がないと、ダブルクリックで開いたときに化ける |
BOMは、ファイルの先頭に付ける「これはUTF-8です」という目印です。Microsoftは、UTF-8のCSVは「BOM(バイト オーダー マーク)で保存されている場合、通常どおり開くことができます」と説明しています。BOMがないUTF-8のCSVは、「テキストまたはCSVから」で開くよう案内しています。
両方の形式が今も並んで使われています。たとえば日本郵便は、2023年6月更新分から郵便番号のデータをUTF-8形式でも公表しています。
| 症状 |
考えられる原因 |
対処 |
| ダブルクリックすると日本語が記号の列になる |
BOMのないUTF-8のファイル |
「テキストまたはCSVから」で開き、「元のファイル」をUTF-8にする |
| 取り込み先のシステムで日本語が化ける |
先方が求める文字コードと違う |
先方の指定を確かめ、その文字コードで保存し直す |
| 一部の記号や旧字体だけが「?」になる |
Shift_JISにない文字が入っている |
UTF-8で受け渡せないか先方に相談する |
保存するときは、受け取る側のシステムが求める文字コードを先に確かめます。UTF-8を求められたら、「名前を付けて保存」のファイルの種類で「CSV UTF-8(コンマ区切り)」を選びます。
Microsoft 365なら「自動データ変換」をオフにできる
Microsoft 365とExcel 2024には、勝手な変換を止める「自動データ変換」の設定があります。「ファイル」→「オプション」→「データ」の「自動データ変換」で、止めたいものを選びます。Microsoftのサポート情報では、次の4つを切り替えられます。
| 設定の項目 |
オフにするとどうなるか |
| 数値テキストから先頭のゼロを削除して数値に変換する |
00123が00123のまま文字として残る |
| 数値データを15桁の精度に切り捨て、指数表記で表示される数値に変換 |
16桁以上の数字がすべて残る |
| 文字"E"を囲む数値データを指数形式に変換する |
123E5が123E5のまま残る |
| 連続した文字と数字の文字列を日付に変換 |
JAN1が日付にならない |
同じ画面には、CSVなどを開くときに変換が起きそうなら知らせる、というチェックもあります。オンにすると、変換が起きる前に警告が出て、そのファイルだけ変換せずに開く道を選べます。
Microsoft 365 Insider Blogに載っている、自動データ変換の設定(英語版)出典: Microsoft 365 Insider Blog「Control data conversions in Excel for Windows and Mac」(引用)
設定は1台ずつのパソコンに入ります。全員に設定してもらうより、開き方そのものを揃えるほうが確実です。
社員に配る短い手順書
社内のチャットや掲示板にそのまま貼れる形にしました。社内の事情に合わせて書き換えてください。
今日からできること
最後に、情シスや総務の担当者が今週中にできることをまとめます。
CSVの事故は、Excelの使い方の問題に見えて、実は業務の手順の問題です。開き方を1つに決めて、全員で同じ手順を使うことが、いちばん効く対策です。