私はいくつかの.csvファイルを持っています。それらのいくつかはカンマ区切りで、いくつかはタブ区切りです(多分それらは.tsv …と呼ばれるべきでしょう)
csv
拡張子は、ExcelがインストールされているときにExcelに関連付けられます。しかし、これらのファイルをエクセルで開くと、すべてが同じ列にダンプされ、カンマはデリミタとして解釈されません
ファイル -> インポート…の代わりに、ファイルを選択して、内容を正確に解釈する方法(区切り文字、データ型など)を選択することができますが、ほとんどの場合、私は単に明確なテーブルビューを通してファイルを見たいだけです。エクセルで処理したいわけではありません
Excelがデリミタを自動解釈して、CSVファイルを開くとすぐに適切なテーブルとして表示する方法はありますか?このようなファイルのクイックビューアとしてExcelを使えるようにしたいので必要です
何か方法があるのではないかと疑っていますが、そうでなければExcelはCSVファイルと関連付けることはありません
111 Szabolcs 2013-06-11
CSVファイルを開いている間、ExcelはList separator
と呼ばれるシステムの地域設定を使用して、使用するデフォルトの区切り文字を決定します
Microsoft Excelは.csvファイルを開きますが、システムの地域設定によっては、カンマの代わりにセミコロンを区切り文字として使用する場合があります。(Wikipediaより)
Windowsの場合は、Officeサポートサイトで指定されているList separator
の設定をRegional and Language Options
に変更することができます
CSVテキストファイルの区切り文字を変更します
- Windowsのスタートメニューをクリックします
- コントロールパネルをクリックします
- 地域と言語のオプション] ダイアログ ボックスを開きます
- 地域オプション] タブをクリックします
- カスタマイズ/追加設定(Win10)をクリックします
- リストセパレータボックスに新しいセパレータを入力します
- OKを2回クリックします
注意:これは、十進記号がカンマとしても指定されていない場合にのみ機能します(上記のWikipediaの引用文に沿って)。指定されている場合は、たとえカンマが選択されていても、Excelはリストの区切り記号としてカンマを使用しません。米国以外の多くの地域では、カンマがデフォルトの十進記号となっています
Mac OS Xでは、この設定は10進数セパレータの設定から推測されるようです(システム環境設定の「言語と地域」ペインの「詳細設定」に進みます)。小数点区切り文字がポイントの場合、デフォルトのCSV区切り文字はカンマになりますが、小数点区切り文字がカンマの場合、デフォルトのCSV区切り文字はセミコロンになります
コメントでご自身がおっしゃっているように、MacユーザーがこれらのCSVファイルを素早く見るための代替手段があります。それはquicklook-csvと呼ばれるクイックルック用のプラグインで、セパレータ検出を処理します
99 zakinster 2013-06-11
ファイルの形式を変更したいわけではなく、ExcelをONLY対象としている場合は、以下のExcelのコツを参考にしてみてください
ファイルの先頭に"sep=,"
(引用符を含む)というテキストで改行を追加し、Excelがリストの区切り文字として「,」でファイルを開くようにします
これは、Windowsの地域設定を変更せず、一貫した結果を得るための非常に簡単なトリックです。しかし、これはエクセル特有のものです
115 user280725 2013-12-10
sep=,
の周りの引用符は必要ありません – ファイルの最初の行であれば、少なくともExcel 2016では動作します
ファイルがタブ区切りの場合、sep=\t
は引用符があってもなくても問題なく動作することを発見しました
13 Stephen Hemingway 2017-06-02
受け入れられた答えは正しいですが、私は視覚的な人です。ここでは、Windows 10でこれを行う方法のスクリーンショット形式のすべての単一のステップがあります
8 Sam B 2018-07-21
地域設定の区切り文字がカンマではなくセミコロン(オランダ語の区切り文字)の場合は、CSVファイルの名前をTXTファイルに変更します。TXTファイルを右クリックして「で開く」を選択し、「Excel」を選択します。エクセルで最初の列を選択し、リボンでデータを選択し、テキストを列に区切ります
OR
LibreOfficeをインストールし、LibreOffice CalcでCSVファイルを開きます
2 Eric VDB 2018-06-25
私は、セパレータ .csv
ファイルにセパレータ ;
を設定し、地域設定をリストセパレータ ;
に設定していました。しかし、Excelはまだ列を解析しませんでした
エンコードの問題であることが判明しました。ファイルはSQL Server Management Studio 2005からエクスポートされ、UCS-2 LE BOM
でエンコードされていました。メモ帳++を使って、エンコーディングをUTF-8
に切り替えたら、すべてが動作するようになりました
1 Ogglas 2019-09-23
CSVファイルが適切にフォーマットされていることを確認するために、必ずメモ帳のような簡単なエディタでCSVファイルを検査してください
VBで作成したCSVファイルがエクセルで列を分けて開かないというアホなバグを解決してから、この回答を追加しました。私は、行の書き方が各行を引用符で囲んでいたことを発見しました。エクセルは引用符を隠してA列に行全体を表示し、カンマ区切りを無視しているように見えました
0 edj 2017-06-12
最良の方法は、csvの拡張子を持つテキストファイルに保存することです
Sub ExportToCSV()
Dim i, j As Integer
Dim Name As String
Dim pathfile As String
Dim fs As Object
Dim stream As Object
Set fs = CreateObject("Scripting.FileSystemObject")
On Error GoTo fileexists
i = 15
Name = Format(Now(), "ddmmyyHHmmss")
pathfile = "D:\1\" & Name & ".csv"
Set stream = fs.CreateTextFile(pathfile, False, True)
fileexists:
If Err.Number = 58 Then
MsgBox "File already Exists"
'Your code here
Return
End If
On Error GoTo 0
j = 1
Do Until IsEmpty(ThisWorkbook.ActiveSheet.Cells(i, 1).Value)
stream.WriteLine (ThisWorkbook.Worksheets(1).Cells(i, 1).Value & ";" & Replace(ThisWorkbook.Worksheets(1).Cells(i, 6).Value, ".", ","))
j = j + 1
i = i + 1
Loop
stream.Close
End Sub
0 AzizD 2017-07-31
オランダ人の私は、Windows 7上のExcel 2008がRFC4180に準拠していないという問題を抱えていました
“改行(CRLF)、二重引用符、カンマを含むフィールドは二重引用符で囲むべきです。”
カンマで区切られたファイルでは、カンマ(オランダ語の小数点以下の区切り文字)が二重引用符で囲まれたフィールドが正しく表示されていました。オランダ語のロケールでは、10進数の区切り文字は,
で、リストの区切り文字は;
なので、Excelは,
が両方に使用されているファイルを読み取ることができませんでした(コントロールパネルでリストの区切り文字を,
に明示的に変更しても読み取ることができませんでした)
入力はこんな感じです
"06-07-2017 17:03:18","********",0:01:04,Uitgaand,"0,1879","0,2273","0,0395",21
解答は@user280725さんからいただきました
メモ帳を使って1行目として挿入します
sep=,
(これは、ユーザーの @zakinster さんのソリューションでの注意事項を適用する必要がなくなったことを意味します)。
面白いことに、csv ファイルが読み込まれたままの状態で、コントロールパネルでロケールを US English に設定してファイルを保存すると、US English 形式に変換されています (リストセパレータとしてカンマ、10進数セパレータとしてドット)
0 Paul Ogilvie 2018-01-22