目次
CSVがExcelで正しく開けない場合、その典型的な問題を調査し、最も効果的な解決策を提供します。
CSV形式は、表計算ソフト間のデータのインポート/エクスポートによく使われます。 CSV(comma separated values)という名前は、データフィールドをカンマで区切ることを意味しています。 しかしそれは理論上のことで、実際には多くのいわゆるCSVファイルはセミコロンやタブなどの他の文字でデータを区切っています。 データフィールドをシングルまたはダブルクォーテーションで囲む実装もありますが、その一方でこのため、CSVからExcelへの変換では、さまざまな問題が発生します。
CSVファイルは、Excelで1列で開く
症状 csvファイルをExcelで開くと、すべてのデータが1つの列に表示されます。
原因 .csvファイルの区切り文字がデフォルトの区切り文字と異なる場合、そのファイルは1つの列で表示されます。
ソリューション この場合、VBAマクロやWindowsのグローバルな設定変更など、いくつかの解決策が考えられます。 ここでは、お使いのコンピュータのデフォルトのリストセパレーターを変更せずに、どのアプリケーションにも影響がないように、この問題をすばやく解決する方法を紹介します。
CSVファイルのデリミタを変更する
ExcelでCSVを読むには、CSVファイルに直接デリミターを指定します。 テキストエディター(メモ帳など)でファイルを開き、最初の行に以下のテキストを追加します。 他のデータの前に別の行を追加する必要があることに注意してください。
- カンマで区切る場合:sep=。
- セミコロンで区切る場合:sep=。
同様に、他のカスタムセパレータも設定できます。等号の後に入力するだけです。
適切なセパレータが定義されていれば、通常の方法で、Excel本体またはWindowsエクスプローラからファイルを開くことができます。
CSVファイルをExcelに取り込む際にデリミタを指定する。
Excelでcsvファイルを開く代わりに、テキストインポートウィザード(すべてのバージョンで)またはPower Query(Excel365~2016で)のいずれかを使用してインポートしてください。
テキストインポートウィザード( データ tab> 本文より ) は、ステップ2の区切り文字としていくつかの選択肢を用意しています。 一般的には
- コンマ カンマ区切り値ファイル用
- タブ テキストファイル用
- セミコロン セミコロンで区切られた値のファイルに対して
データに含まれる区切り文字がわからない場合は、さまざまな区切り文字を試し、どの区切り文字が正しく機能するかをデータプレビューで確認してください。
Power Query の接続を作成する際に、プレビューダイアログウィンドウで区切り文字を選択することができます。
詳細な手順については、上記のリンク先の例をご覧ください。
Text to Column機能でセルを分割する
すでにExcelに転送されているデータの場合、別の列に分離するために テキストをカラムに この機能は、基本的にテキストインポートウィザードと同じように動作します。 データプレビュー は、その場で変更を反映させます。
詳しくは、「Excelでセルを分割する方法」をご覧ください。
Excel CSVで先頭のゼロを保持する方法
症状について csvファイルの一部の値には、先頭にゼロが含まれています。 このファイルをExcelで開くと、先頭のゼロが失われてしまいます。
原因 デフォルトでは、Microsoft Excel は csv ファイルを次のように変換します。 一般 の書式で、先頭のゼロを除去します。
解決方法 .開くのではなく、CSVをExcelにインポートし、その中から テキスト の書式で、問題のある列を表示します。
テキストインポートウィザードの使用
開始するには インポートテキストウィザード または、テキストファイルから(レガシー)機能を有効にして、CSVをExcelにインポートしてください。
ウィザードのステップ3では、先頭のゼロを含む値を含む列を選択し、その形式を次のように変更します。 テキスト これは、値をテキスト文字列として読み込み、先頭のゼロをすべてそのままにします。
Power Queryの使用
csvファイルをExcelに接続してインポートすることを好む場合、先頭のゼロを維持する方法が2つあります。
方法1:すべてのデータをテキスト形式でインポートする
プレビューダイアログボックスの データ型検出 を選択します。 データ型を検出しない csvファイルの内容はテキストとしてExcelに読み込まれ、先頭のゼロはすべて保持されます。
注:この方法は、ファイルに含まれるものが、以下のものだけであれば、問題なく動作します。 テキスト 値の種類が異なる場合は、方法 2 で各列に適切な書式を個別に定義します。
方法2:各列に書式を設定する
csvファイルにテキスト、数値、通貨、日付、時間など様々なデータ型が含まれている場合、特定の列ごとにどの形式を使用するかを明示的に指定することができます。
- データプレビューの下で、クリック トランスフォームデータ .
- Power Query Editor で、先行ゼロを保持する列を選択し、クリックします。 データ型 > テキスト .
- 閉じる & 読み込む - をクリックすると、現在のワークブックの新しいシートに結果が読み込まれます。
- 閉じる & 読み込む To... - 結果をどこに読み込むかを指定します。
ヒント:これらの方法は、Excelが自動的に行おうとする他の操作を防ぐこともできます。 例えば、インポートしたデータが"="で始まる場合、Excelはそれを計算しようとします。 このような場合、"="で始まるデータを"="に置き換えることで、Excelが自動的に計算するのを防ぐことができます。 テキスト 形式では、値が数式ではなく文字列であることを示します。
ExcelでCSVの日付形式の問題を修正する方法
症状について CSVをExcelに変換すると、日付の書式がおかしくなったり、日と月が入れ替わったり、一部の日付がテキストに変わったり、一部のテキスト値が日付としてオートフォーマットされたりします。
原因 csvファイルでは、オペレーティングシステムで設定されているデフォルトの日付形式と異なる形式で日付が記述されているため、Excelが正しく日付を解釈できない。
解決方法 どのような問題に直面しているかによって、次の解決策を試してみてください。
曜日と月が混在している
Windowsの地域設定とcsvファイルの日付形式が異なる場合、Excelが判断する方法はありません。 mm/dd/yy に格納されます。 dd/mm/yy その結果、曜日と月の単位が逆になります。 1月3日 になる 3月1日 , 1月10日 になる 10月1日 さらに、以下の日付は 12年1月 は13ヶ月目、14ヶ月目などが存在しないため、テキスト文字列に変換されます。
日付を正しくインポートするために、テキストインポートウィザードを実行し、適切な 日付 の形式を使用します。
一部の値は日付に変換されます
Microsoft Excelは、さまざまな種類の値を簡単に入力できるように設計されているため、与えられた値が日付を表すとExcelが判断した場合、自動的に日付としてフォーマットされます。 たとえば、テキスト文字列の場合 4月23日 そっくり 4月23日 そして 11/3 似ている 11月3日 ということで、どちらの値も日付に変換されます。
Excelがテキスト値を日付に変更しないようにするには、すでにおなじみの方法であるCSVをインポートしてExcelに変換します。 のステップ3では、以下のようになります。 テキストインポートウィザード に変更し、問題のある列を選択し、その形式を次のように変更します。 テキスト .
日付の書式が正しくない
csvファイルをExcelで開くと、通常、日付はデフォルトのフォーマットで表示されます。 例えば、元のファイルでは、次のようになっています。 5月7日-21日 または 05/07/21 と表示されるのに対し、Excelでは次のように表示されます。 5/7/2021 .
日付を任意のフォーマットで表示するには セルのフォーマット 機能を搭載しています。
- 日付の列を選択します。
- Ctrl + 1 を押すと セルのフォーマット のダイアログボックスが表示されます。
- について 番号 タブを選択します。 日付 下 カテゴリー .
- アンダー タイプ を選択し、希望のフォーマットを選択します。
- OKをクリックします。
もし、プリセットの書式が適切でない場合は、「Excelでカスタム日付書式を作成する方法」で説明したように、自分で書式を作成することができます。
Excelで数値が科学的記数法に変換されないようにする
症状について CSVをExcelに変換すると、長い数字は科学的記数法に変換され、例えば、1234578900は1.23E+09と表示されます。
原因 Microsoft Excelでは、数値の精度は15桁に制限されています。 csvファイル内の数値がこの制限を超える場合、Excelは自動的に科学的記数法に変換し、制限に適合させます。 数値に15桁以上の有効数字がある場合、最後の「余分」な桁は全て0に変更されます。
解決方法 .長い数字をテキストとして取り込んだり、Excelで直接数字の書式を変更することができます。
長い数字をテキストとして取り込む
大きな数値をCSVからExcelに正確に転送するには、以下のように実行します。 テキストインポートウィザード に設定し、対象のカラムのフォーマットを テキスト .
これは、正確にインポートするための唯一の真のソリューションです。 数字列 16桁目以降を0に置き換えたり、先頭の0を削除することなく、データを失うことなく、製品ID、口座番号、バーコードなどのエントリーに最適です。
しかし、値が文字列ではなく数値の場合、結果のテキスト値に対して計算を行うことができないため、この方法は最適とは言えません。
この方法は、CSVファイルを変換する際に、他の不要な自動データフォーマットを防止するのにも役立ちます。
Excelで番号の書式を変更する
すでにExcelにデータがある場合は、書式を次のように変更します。 一般 のどちらかになります。 テキスト または 番号 のようになります。
注意:この方法では、削除された直前のゼロや、ゼロに置き換えられた15位以降の桁は復元されません。
詳しくは、「Excelでセルの書式を設定する方法」をご覧ください。
カラムの幅を広くする
最も単純なケースでは、数字が15桁以下の場合、列の幅を少し広げるだけで正常に表示されるようになります。
詳しくは、「Excelで列のサイズを変更して自動はめ込みする方法」をご覧ください。
以上、CSVからExcelへの変換で起こりうる代表的な問題の解決方法でした。 読んでくださってありがとうございました!また来週お会いしましょう。