Janはプログラムを使用してCSVファイルを作成します。このファイルは、さらに分析するためにExcelで開くことができます。 JanがWindowsでCSVファイルをダブルクリックすると、Excelが起動し、ファイルが読み込まれます。問題は、ファイルを開いたときに、Excelで解析されないことです。カンマ区切りの値が異なる列にある代わりに、すべてのレコードが1つの列に表示されます。

この動作の理由はおそらく非常に単純であり、Excel以外のプログラムによってデータがCSVファイルに保存される形式に関係しています。これを理解するには、ExcelがCSVファイルを開く方法を理解することが重要です。

ExcelでCSVファイルを開くと(Windowsでダブルクリックするか、[ファイル] | [Excelで開く]を使用して)、プログラムはファイル内のコンマを区切り文字として扱います。意味あり;結局のところ、ファイルにはコンマ区切り値(CSV)が含まれているはずです。ファイルを開くときに、この自動フィルタリングを上書きすることはできません。

では、Excelは受信データをどのように処理しますか? CSVファイルに次の4つのレコードが含まれている場合を少し考えてみてください。

a,b,c,d,e "a,b,c,d",e a,"b,c",d,e "a,b,c,d,e"

Excelに関する限り、最初のレコードには、コンマで区切られた5つのフィールドがあります。 2番目のレコードには、「a、b、c、d」の2つのフィールドしかありません

および「e」 「a、b、c、d」の前後に引用符を含めると、Excelは文字列を個別の単位として扱います。つまり、Excelは引用符の間に表示される可能性のあるコンマをすべて無視します。

引用符の効果を考えると、Excelが3番目と4番目のレコードをどのように解釈するかを理解できるでしょう。この場合、3番目のレコードには4つのフィールドしかなく、4番目のレコードには1つのフィールドしかないものと解釈されます。

これは、正しくロードされていないように見えるCSVファイルと何の関係がありますか? CSVファイルを作成するプログラムが、各レコードを引用符で囲んでいる可能性があります。これにより、レコード内のすべてがExcelによって単一のフィールドとして扱われます。つまり、CSVファイルが読み込まれると単一の列になります。

これを確認する方法はいくつかあります。 1つ目は、メモ帳でCSVファイルを開き、各レコードを確認することです。 (WindowsでCSVファイルを右クリックし、[プログラムから開く]、[プログラムの選択]、[メモ帳]の順に選択します。)

もう1つの方法は、CSVファイルの名前を変更して、拡張子が.csvではなく.txtになるようにすることです。このファイルをExcelで開くと、テキストインポートウィザードが起動します。 [区切り文字]を選択し、[次へ]をクリックすると、選択されている区切り文字を確認できます。テキスト修飾子に注意してください。変更すると、ダイアログボックスの下部で、Excelがファイルのレコードをどのように解釈するかをすぐに確認できます。

CSVファイルの各レコードの前後に余分な引用符がある場合は、3つの方法があります。 1つ目は、CSVファイルを作成するプログラムを変更して、余分な引用符が追加されないようにすることです。これにより、問題なくインポートできるようになります。 2つ目は、CSVファイルをExcelにロードして、各レコードが列Aにあるようにすることです。インポートプロセスによってサラウンド引用符が削除されていることに注意してください。これは、Text to Columnsウィザードを使用して、列Aのデータを個々の列に分割できることを意味します。

最後に、実行できる3番目のことは、CSVファイルを開いて解析するマクロを作成することです。これは、時間の経過とともに、まったく同じ形式の多くのCSVファイルを開く場合に特に役立ちます。マクロは、インポート時に列をフォーマットしてデータを処理する場合でも、必要に応じて複雑にすることができます。このようなマクロを作成する方法は、ExcelTipsの他の号に記載されています。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(11264)は、Microsoft Excel 2007および2010に適用されます。Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。

link:/ excel-CSV_File_Opens_with_Data_in_a_Single_Column [CSVファイルは単一列のデータで開きます]