一部のコンテンツフィールドにカンマを含むCSVファイルをExcelでインポートするにはどうすればよいですか?


13

ExcelでCSVファイルをインポートするにはどうすればよいですか?

ファイル

CSVであると主張するファイルがあります。これには10個のフィールドが含まれており、それらはすべて二重引用符で囲まれています(はい、日付と数字も)。これらのフィールドの2つまたは3つにコンマが含まれています。ただし、これらのフィールドのデータも引用符で囲まれています。

問題

このファイルを開こうとすると、Excelは引用符を完全に無視し、引用符がデータの一部であると見なします。

したがって、コンマを含むフィールドを複数の列に分割します。

少なくとも私にとっては、これは悪いことです。

サンプルデータ

「20051」、「」、「2009年9月30日02:53:23」、「SOMETEXT」、「」、「5000」、「2000000」、「2008-99999--999​​99、2008-unk-unk」、「191 -SOMETEXT-SOMETEXT、192-SOMETEXT-SOMETEXT、193-SOMETEXT-SOMETEXT、194-SOMETEXT-SOMETEXT、195-SOMETEXT-SOMETEXT、196-SOMETEXT-SOMETEXT」、「45-SOMETEXT-SOMETEXT、1162-SOMETEXT-140 -SOMETEXT-SOMETEXT、141-SOMETEXT-SOMETEXT」
「20052」、「SOMETEXT」、「2009 Sep 08 07:56:50」、「SOMETEXT」、「」、「50000」、「5000000」、「2007-99999-99999」、「146-SOMETEXT-SOMETEXT、145 -SOMETEXT-SOMETEXT、147-SOMETEXT-SOMETEXT、148-SOMETEXT-SOMETEXT」、「103-SOMETEXT-SOMETEXT、1131-SOMETEXT-SOMETEXT」

私は何を試しましたか?

インポート機能を使用して区切り文字などを指定しましたが、これは役に立たないようです。

「テキスト区切り文字」を二重引用符から「{none}」に切り替えて、もう一度元に戻しました。これは最初の列にのみ影響するようです。他の列をクリックして、この設定をそれぞれに適用できる場合、これは合理的です。しかし、これは事実ではなく、これは列をまたいで機能することを意図しているようです。

他に何ができますか?


1
どのExcelバージョンですか?そして、それは完全にパッチされていますか?
harrymc

私は2007年についてはわからないんだけど、私はかなり確信して2002年までに完全にアップしたんだ2002年と2007年にこれを見てきた
ロリー・ベッカー

CSVへのリンクを提供できますか?または、問題を示すカットダウンバージョンですか?
ジョシュコムリー

上記のサンプルデータを追加
ロリーベッカー

回答:


13

私はあなたの問題を再現する簡単なテストを試しました。

test.csv「123」、「4,5、6」としてWordで1行のCSV(スマートクォートを使用)を作成し、説明したようにExcelで開きました。

「」と「」を「


サンプルで遊んだ後、Excelはフィールド間のスペースが好きではないことに気付きました

例えば

"20051", "", "2009 Sep 30 02:53:23", ...

あなたが欲しい

"20051","","2009 Sep 30 02:53:23",...

まともな正規表現の置換はそれを扱うことができるはずです

Find:    |("[^"]*",) |
Replace: |\1|

(視覚的なキューのパイプ文字のみ)

または、アクセスできる場合は、単に.Netコードを変更します;-)

また、Arjanが指摘したように、ファイルをUTF-8からANSIに変換して、セルA1にBOMとその周囲のqoutが含まれないようにする必要がある場合もあります。

ANSIでエンコードされたCSVが国際文字を処理せず、UTFでエンコードされたCSVがExcelで適切に処理されないという問題に遭遇しました。CSVのメンテナンス中に解決策が見つかりませんでした。国際文字のサポートが必要な場合、XML(またはネイティブXLS)形式が唯一の方法であるように見えますが、単純化を犠牲にします。


スマートな引用符は含まれません。このファイルは、.Netで作成されたプログラムから標準引用符を使用するために生成されました。
ロリーベッカー

UTF-8ファイルを別の方法でエンコードする必要があると言うつもりはありませんでした。しかし、UTF-8をインポートする場合、実際には、エンコーディングが何であるかをExcelに伝える必要があります。そして、UTF-8は、その長いエンコーディングのリストのどこかに隠れています。
アルジャン

多くのUTF-8エンコードCSVファイルをインポートしました。ただし、BOMがあったかどうかは確かです。
アルジャン

@lumbarious:あなたはスターです!完全に機能します... Excelでこれを処理できないとは信じられません。(
ロリーベッカー

1
うん、どうやらフィールド間のスペースはExcel 2011を完全に混乱させます。スペースを削除すると問題が修正され、Excelがデータの一部として引用符を含まなくなります。私の推測では、二重引用符はコンマに直接隣接している場合にのみデータを区切るという仕様があるということです。
ピーターグリュック

8

この問題は何年もの間私を悩ませてきました。私は解決策を発見したばかりで、上記の回答で暗示されていますが、明確に記述されていません。

カンマの後のスペースです!

これはExcelにインポートされません。

HEADER1, HEADER2
"1,000", "2,000"

ながら

HEADER1,HEADER2
"1,000","2,000"

動作します!


2
スーパーユーザーへようこそ!この回答は、わかりやすく明確に書かれています。あなたの貢献に感謝し、私たちはあなたが固執することを望みます。
user1717828

やあ!受け入れられた答えには、この答えとは異なり、質問に対する本当の答えが埋められています。opはスマートクォートを使用しません。
dardub


2

このファイルを開こうとすると、Excelは引用符を完全に無視し、引用符がデータの一部であると見なします。したがって、コンマを含むフィールドを複数の列に分割します。

誤っlumbariusのようにスマート引用符を使用していない場合は提案し、あなたがWindows上だと仮定すると:その可能性がある地域の設定が原因です。ダブルクリックするか、[ファイル]»[開く]を使用すると、Excelは詳細の入力を求めず、単にこれらの設定を使用します。

それでも、手動でインポート機能を呼び出すことは(あなたがしたように)機能しているはずですので、地域の設定を変更すると役立つとは思われません...


これは答えではなくコメントのように思えます
...-Metafaniel

この提案は私の問題を正確に解決しました!CSVインポート([データ]> [テキスト/ CSVから])を実行しても正常に機能しませんでしたが、CSVファイルで[ファイル]> [開く]を実行しただけで機能しました。その後、テーブル全体をコピーして他のブックに貼り付けることができました。
WOUNDEDStevenJones

1

ファイルの文字エンコードを確認しましたか?文字エンコードをUTF-8に設定してみてください。

notepad2を使用して文字エンコードを変更できます。


エンコーディングは、「署名付きUTF8」とNotepad2をによって報告された
ロリー・ベッカーを

次に、インポート中に、エンコードリストを下にスクロールする必要があります。UTF-8は、リストの低い場所に隠されています。(不要の使用UTF-8にエンコードされたCSVファイルが、あなたの入力が既にとしてある UTF-8、あなたは確かに使用されることを何Excelを伝える必要があります。通常の引用文字がASCIIで同じことをエンコードすることに注意してください、西洋とUTF -8、ただし署名(バイトオーダーマーク)または他の文字が混乱している可能性がありますか?)
Arjan

@Peterなぜウィキペディアへの公式リンクを変更するのですか?それはまったく意味がありませんか?私たちはあまり多くの人を送りたくはありませんし、これは確かに編集を正当化するものではありません-特に2年前の投稿では。
-slhck

1

ここに答えを追加するだけです。CSVファイルでCOMMASの後にあるスペースに注目してください。データに引用符で囲まれたフィールドがある場合、Excelはこれらを好みません。

Excelが好き(4列のデータ):

a, b, c, d

しかし、好きではありません(3列のデータ):

a, "b, c", d

次のようになります(3列のデータ):

a,"b, c",d

私はちょうどその問題にぶつかりました。このメモに到達するまで、頭を壁にぶつけていました。これは単に驚くべきことです。私は、Excel 2017およびその愚かさがまだ存在する...実行しています
アルバートGodfrind

1

今日私はこの問題に出くわし、私のために働く解決策も見つけました。

私の環境/コンテキスト:二重引用符とコンマの両方を含む(フォーム)質問のあるWebページがあります。質問と回答の両方がデータベースから取り出され、レポート用にExcelファイルに書き込まれます。

上記と同じ問題がありました。二重引用符とコンマの両方を含む質問は、Excelで複数の列に分割されていました。

私の目的のために、二重引用符の代わりに2つの単一引用符を使用するのがうまくいきました。

-> Webサイトでは、サイト訪問者にとって2つの単一引用符は二重引用符のように見えます

-> Excelファイルでも、レポートデータを表示するユーザーにとっては、2つの一重引用符が二重引用符のように見えます

この解決策はすべての人にとってうまくいくわけではありませんが、誰かの助けになることを願っています。


1

私はこれを使用してこれを行うことができました:

a,b,c,"=""(1,2,3)"""

次の4つの列があります。

|  a  |   b   |   c   |   (1,2,3)   |

0

別の方法:

  1. LibreOfficeまたはOpenOffice Calcでファイルを開きます。
  2. UTF-8、カンマ区切りなどの正しいインポートオプションを設定します...
  3. ファイルをodsまたはxlsとして保存します
  4. Excelで新しいファイルを開きます。

この方法では、UTF-8などの正しいエンコーディングを設定できます。これは、多くの(すべての?)バージョンのExcelがBOMなしでは正しく処理できず、フィールド内のテキストを置換する正規表現を心配する必要がありません。あなたはそれに気づきません。

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