ExcelでCSVファイルのコンマをデフォルトの区切り文字として解釈する方法


91

多数の.csvファイルがあります。それらのいくつかはコンマで区切られ、いくつかはタブで区切られています(.tsvと呼ばれるべきでしょう...)

csvExcelがインストールされているときの拡張子は、Excelに関連付けられます。ただし、これらのファイルの1つをExcelで開くと、すべてが同じ列にダンプされ、コンマは区切り文字として解釈されません。

私がすることができます代わりに、ファイル- >インポート...、ファイルを選択し、その内容(区切り文字、データ型など)を解釈するための正確な方法を選択してくださいしかし、私はちょうどしたいほとんどの時間見て明らか経由のファイルでテーブルビュー。Excelで処理したくありません。

Excelで区切り文字を自動的に解釈し、CSVファイルを開いたらすぐに適切なテーブルとして表示する方法はありますか?このようなファイルのクイックビューアーとしてExcelを使用できるように、これが必要です。

方法があるはずだと思います。さもないと、ExcelはCSVファイルと関連付けられません。


私は本当にあなたの質問にお答えしますが、それはなど、電子メールで共有アクロス働くグローバルソリューション、ネットワークを、提供するため、2番目の1が強調されるべきで選ばれた回答ことを理解
Rafareino

回答:


78

CSVファイルを開く際、Excelはシステムの地域設定を使用して、使用するList separatorデフォルトの区切り文字を決定します。

Microsoft Excelは.csvファイルを開きますが、システムの地域設定によっては、コンマの代わりにセミコロンがセパレータとして使用される場合があります。一部の言語では、コンマが小数点として使用されるためです。(ウィキペディアから)


のWindows、あなたが変更できるList separatorの設定をRegional and Language Options上指定されているOfficeのサポートWebサイト

CSVテキストファイルの区切り文字を変更する

  1. Windowsの[スタート]メニューをクリックします。
  2. コントロールパネルをクリックします。
  3. [地域と言語のオプション]ダイアログボックスを開きます。
  4. [地域のオプション]タブをクリックします。
  5. [カスタマイズ/追加設定(Win10)]をクリックします。
  6. [リスト区切り記号]ボックスに新しい区切り記号を入力します。
  7. [OK]を2回クリックします。

:これは、Decimalシンボルもコンマとして指定されていない場合にのみ機能します(上記のWikipediaの引用に沿って)。選択されている場合でも、Excelはリストの区切り文字としてコンマを使用しません。米国以外の多くの地域では、カンマがデフォルトの10進数記号です。

のMac OS Xは、この設定はから推定しているように見える、小数点記号の設定(に言語と地域のペインシステム環境設定に行くアドバンス)。場合は小数点記号がポイントで、デフォルトCSVの区切りがカンマになりますが、場合小数点記号はコンマで、デフォルトCSVの区切りはセミコロンになります。

コメントで自分自身を言ったように、MacユーザーがこれらのCSVファイルをすばやく見るための代替手段があります。それはのためのプラグインのクイックルックと呼ばれるクイックルック-CSV区切りの検出を処理します。


おかげで、これは理にかなっています。デフォルトではタブを区切り文字として解釈しないだけだと思います(CSVはカンマ区切り値を意味しますが、実際にはCSVでタブを使用するので、対処する必要があります)。
ザボルクス

@Szabolcs ExcelはCSVファイルを開いている間(file-> openまたはexplorerを使用して)区切り文字を検出しようとせず、システム設定を使用します。ただし、インポート機能を使用している間は、区切り文字(タブ、コンマ、セミコロン、またはスペース)を自動的に検出できます。
ザキンスター

1
あなたの答えはOS Xでも有効でした:それは「あなたが答えで述べたように」「トラブル」を引き起こすのはまだ小数点/コンマです。
ザボルクス

1
後で編集:謝罪!これは動作します!どうやら、変更を適用するために、プログラムを再起動するか、ログアウトまたは再ログインする必要があります。正確な時期はわかりませんが、変更後すぐにこれが突然機能しました。
mmo

1
Mac OS Xでは、変更後にExcelを終了することを忘れないでください。開いているすべてのシートのみを閉じると、Excelは開いたままになります。[Excel]> [Excelを終了]をクリックするか、Command + Qを押して完了です。
パウロ・ペドロソ

89

ファイルの形式を変更するのではなく、Excelのみをターゲットにしている場合は、次のExcelのトリックを使用してください。

"sep=,"Excelでファイルを開き、リストの区切り文字として "、"を使用するには、テキスト(引用符を含む)を使用してファイルの先頭に新しい行を追加します。

Windowsの地域設定を変更せず、一貫した結果を得るのは非常に簡単なトリックです。ただし、Excel固有です。


1
ファイルを変更するのではなく、ファイルを見るためだけに使用するようにしてください。そうしないと、次のいずれかの問題が発生する可能性があります。theonemanitdepartment.wordpress.com
Wouter

このファイルを他の人に再配布する必要がある場合はさらに良いので、Excelがどのような構成であってもファイルを理解できるようにします。私は常にcsvを使用してバージョン管理システムを使用してこれらのファイルを共有し、協力しますが、コンマとセミコロンで苦労しており、常に構成を変更するように皆を苦しめています。どうもありがとう!
ラファリーノ

何の上に一人で?
NateS

10

sep=,少なくともExcel 2016では、ファイルの最初の行である限り、引用符を囲む必要はありません。

ファイルがタブ区切りの場合sep=\t、引用符の有無にかかわらず正常に動作することを発見しました。


4

受け入れられた答えは正しいですが、私は視覚的な人です。これは、Windows 10でこれを行う方法のスクリーンショット形式のすべてのステップです。

ここに画像の説明を入力してください ここに画像の説明を入力してください ここに画像の説明を入力してください ここに画像の説明を入力してください ここに画像の説明を入力してください ここに画像の説明を入力してください


2
非常に便利!List separator同じシンボルがに使用されている場合は無視されることを覚えておいてください(上記のどこかで既に述べたように)Decimal symbol。多くの場合,、小数点記号として見つかるので、.に設定List separatorするときは、必ずそれを別のもの(例:)に変更してください,
ダーク

1

地域設定の区切り記号がコンマではなくセミコロン(オランダ語区切り記号)の場合、CSVファイルの名前をTXTファイルに変更します。TXTファイルを右クリックし、「アプリケーションから開く」を選択して、「Excel」を選択します。Excelで最初の列を選択し、リボンでデータを選択して、テキストを列に分けます。

または

LibreOfficeをインストールし、LibreOffice CalcでCSVファイルを開きます。


0

CSVファイルをメモ帳などの簡単なエディターで調べて、正しくフォーマットされていることを確認してください。

VBで作成したCSVファイルがExcelの別の列で開かないという愚かなバグを解決した後に、この回答を追加しました。行の記述方法が各行を引用符で囲むことを発見しました。Excelは引用符を非表示にし、列Aに行全体を表示して、コンマ区切りを無視するように表示しました。


0

最良の方法は、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

オランダ語の場合、Windows 7上のExcel 2008がRFC4180に準拠していないという問題がありました。

「改行(CRLF)、二重引用符、およびコンマを含むフィールドは二重引用符で囲む必要があります。」

コンマ区切りファイルには、二重引用符で囲まれたコンマ(オランダ語の小数点記号)のフィールドが正しくありました。オランダ語ロケールでは、小数点区切り記号,とリスト区切り記号が両方に使用されて;いるファイルをExcelで読み取ることができませんでした,,コントロールパネルで明示的にリスト区切り記号を変更した後でも)。

入力は次のようになります。

"06-07-2017 17:03:18","********",0:01:04,Uitgaand,"0,1879","0,2273","0,0395",21

ソリューションは@ user280725によって提供されました。

メモ帳を使用して、最初の行として挿入します。

sep=,

(これは、ソリューションのユーザー@zakinsterのメモを適用する必要がなくなったことを意味します。)


おもしろい:csvファイルがまだロードされている状態で、コントロールパネルでロケールを英語(米国)に設定して保存すると、英語(米国)形式に変換されます(リスト区切り文字としてコンマ、小数点区切り文字としてドット)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.