ファイルはダブルクリックで開かないでください。Excel で データ > テキストまたは CSV から を選んでファイルを指定し、プレビューで文字コード(元のファイル)と 区切り記号 を確認してから データの変換 を選びます。Power Query エディターで自動追加された 変更された型 ステップを削除し、ID、コード、電話番号の列をテキストに、数値の列にはそれぞれの型を設定して 閉じて読み込む を選びます。インポートの設定そのものを省きたい場合は、先に CSV を文字列セルの XLSX に変換してください。
インポートの前にファイルを確認する
インポートがうまくいくかどうかは、列の区切りに使われている文字、テキストが保存された文字コード、数量ではなく識別子が入っている列の 3 点がわかっているかで決まります。CSV ビューアーと CSV 検証ツールなら、ファイルを変更せずにこの 3 点を確認できます。
| 区切り記号 | 日本の業務システムや会計ソフトの出力はカンマ区切りが一般的です。小数点にカンマを使う欧州のシステムではセミコロンがよく使われ、タブ区切りやパイプ区切りのファイルもあります。 |
|---|---|
| 文字コード | 最近の出力の多くは UTF-8 ですが、古い Windows ソフトや国内の基幹システムでは今も Shift_JIS(Excel の表示では「932: 日本語 (シフト JIS)」)がよく使われ、欧米の古いソフトなら Windows-1252 のこともあります。選択を誤ると、日本語は意味のない記号の列になり、欧文のアクセント記号は é ではなく é と表示されます。 |
| 見出し行 | 1 行目に列名があり、その上にレポートのタイトルや空行がないことを確認します。 |
| 保護する列 | ID、コード、電話番号、郵便番号、15 桁を超える値が入った列をすべて書き出しておきます。これらはテキスト型にする必要があります。 |
「テキストまたは CSV から」(Power Query)で取り込む
現在の Microsoft 365 版 Excel と最近の Windows 版 Excel では、これが標準のインポート方法です。Power Query を備えた Mac 版 Excel でもほぼ同じ手順です。メニュー名はバージョンによって多少異なります。
- データ タブで テキストまたは CSV から(バージョンによっては データの取得 > ファイルから > テキストまたは CSV から)を選び、ファイルを指定します。
- プレビューで 元のファイル をファイルの文字コード(例: 65001: Unicode (UTF-8) や 932: 日本語 (シフト JIS))に合わせ、区切り記号 を設定します。文字化けがなく、値がそれぞれ別の列に入っていれば正しい設定です。
- 読み込み ではなく データの変換 を選びます。すぐに読み込むと Excel の型推測が適用され、その時点で長い ID が丸められることがあります。
- Power Query エディターで 適用したステップ を確認します。通常、Excel は 昇格されたヘッダー(1 行目を列名にする)と 変更された型 を追加しています。変更された型 を横の × で削除します。
- ID、コード、電話番号の列を選び、変換 タブで データ型 を テキスト にします。数値への変換ステップがなくなっているので、元のファイルの値がそのままテキストになります。
- 計算に使う列には 整数、10 進数、日付 などの型を設定します。小数点がカンマで書かれた数値には データ型 > ロケールの使用 を選び、ファイルが作られた地域のロケールを指定します。
- ホーム > 閉じて読み込む を選びます。
バージョンによっては、最初のプレビューに データ型検出 の一覧が表示されます。データ型を検出しない を選ぶとすべての列がテキストとして読み込まれるので ID は安全で、あとは数値の列だけ型を変えれば済みます。
従来のテキスト ファイル ウィザードで取り込む
古いウィザードでは、各列の形式を最初に指定します。Windows の Microsoft 365 版 Excel では既定で非表示になっているため、Excel のオプションの[データ]にある従来のデータ インポート ウィザードの設定で テキストから (レガシ) をオンにし、データ > データの取得 > 従来のウィザード > テキストから (レガシ) から起動します。古いバージョンでは データ タブに テキスト ファイル などのボタンがあり、Mac 版 Excel でもテキスト ファイルをインポートすると同様のウィザードが開きます。表示名はバージョンによって異なります。
- ステップ 1: カンマやタブなどの区切り文字によってフィールドごとに区切られたデータ を選び、元のファイル を文字コードに合わせ、1 行目が列名なら 先頭行をデータの見出しとして使用する にチェックを入れます。
- ステップ 2: 区切り文字(カンマ、セミコロン、タブ、その他)にチェックを入れ、プレビューを確認します。
- ステップ 3: プレビューで保護したい列をそれぞれ選び、列のデータ形式 を 文字列 にします。数値の列は G/標準 のままにするか、日付 を選んで YMD などの正しい順序を指定します。
- 完了 を選び、データを貼り付ける場所を指定します。
Power Query と同じく、ウィザードも値がセルに入る前に型を決めます。だから長い ID を守れるのはこの方法で、あとから書式を変える方法では守れません。
インポート設定を省く:先に XLSX に変換する
ファイルを開く人にこうした手順を求めたくないなら、CSV ではなくブックを渡しましょう。CSV を Excel に変換するツールは CSV をアップロードせずにブラウザー内で読み込み、既定ですべての値を Excel の文字列セルとして書き込むので、Excel が推測する余地がありません。
- CSV を Excel に変換するツールで CSV を開きます。列の分かれ方がおかしい場合は、読み込み設定 で区切り文字や文字コードを指定します。
- 固定長のテキスト、複数の区切り文字が混在するファイル、見出しの上にレポートの行があるファイルには テキストをインポート… を使います。区切り文字、固定幅、パターンのいずれかで分割し、先頭の行を飛ばし、プレビューを確認して インポート を選びます。
- ID やコードを含むファイルでは すべての値を文字列のまま扱う のままにします。数値と true/false を判定する は単純な数値だけの列を数値にしますが、使う前に電話番号や E を含むコードがどう扱われるかを確認してください。
- XLSX をダウンロード を選び、ブックを Excel で開きます。
サンプル ファイルで試してみましょう。先頭の 0、20 桁の ID、日付に見えるコード、数式に見える備考が入っています。
インポートでよくあるトラブルと対処法
- すべてが A 列に入ってしまう。 区切り記号が違います。プレビューで正しいものを選ぶか、ViewCSV なら 読み込み設定 で指定します。
- 日本語が文字化けする、アクセント記号が
éや?になる。 文字コードが違います。まず UTF-8 を試し、だめなら Shift_JIS(932)や Windows-1252 など、ファイルが作られた地域の文字コードを試します。 - 列名が 1 行目のデータになっている。 Power Query では 1 行目をヘッダーとして使用、ウィザードでは 先頭行をデータの見出しとして使用する を使います。
- 日付の月と日が入れ替わる。 列をテキストとして取り込むか、ファイルが作られた地域のロケールを使って型を設定します。
- 長い ID の末尾が 0 になる。 テキストにする前に変換されています。インポートしたデータを削除し、元の CSV からやり直してください。桁が取り戻せない理由も参考にしてください。
- 数値が合計できない。 テキストとして取り込まれています。Power Query で列を数値の型に変えるか、Excel で 数値に変換する を使います。
結果を共有する前に
シートを再び CSV として保存すると型の情報は失われ、次にダブルクリックで開いた人が同じ問題にぶつかります。ブックを共有するか、CSV にこのインポート手順を添えて送ってください。ViewCSV の変換ツールが扱えるのは最大 25 MB、100,000 行、250 列、200 万セルまでです。これより大きいファイルは先に分割してください。
出典
Microsoft のドキュメントを独自の言葉で要約しています。メニュー名はお使いの Excel のバージョンによって異なる場合があります。