プロが教えるわが家の防犯対策術!

ExcelでのCSVファイルの編集について、

オートフィルタ機能を使いたいため、
ExcelでCSVファイルの編集しようとしているのですが、ちょっと苦戦しています。。。

私が試してみたこと
1.もとのCSVファイルの拡張子を○○.csv → ○○.txtに変更。
  ↓
2.Excelの「開く」からその○○.txtを読み込む。
  ↓
3.テキストファイルウィザードに従い、
  1「カンマやタブなどの区切り文字によって~ 」にチェック
  2「区切り文字」→ カンマ、「文字列の引用符」 → "
  3「列のデータ形式」 → 文字列 ※090などの数字を、90と先頭の0を消されないように

上記のような手順でCSVファイルを取り込み、編集を終え、
保存する時は

  「○○.txtにはテキスト(タブ区切り)と互換性のない機能が含まれている可能性があります。
   この形式でブックを保存しますか?」 → このまま保存するため「はい」を選択

これでバッチリOK!…かと思われたのですが、
元の編集前の○○.txt は"名前","ヨミ","電話番号1", …… ""とカンマ区切りであったのが、
編集後の○○.txtは名前ヨミ電話番号1  …… タブ区切り(?)
となってしまっています。
(CSVファイルとしてはタブ区切りでも問題ないのでしょうが…)


どうすれば元のカンマ区切りの形式のまま保存できますでしょうか。


アドバイスよろしくお願い致します。

A 回答 (6件)

CSVは「値をカンマで区切ってある」テキストなので、タブ区切りは


確実に間違いですね。Excelはテキスト形式をタブ区切りかスペース
区切りだと思い込むので、上書き保存せず「名前をつけて保存…」
で形式にCSVを選択して下さい。

文字列を全部なにもかもダブルクォーテーションで囲むのは、CSVと
しては傍流です。数値と紛らわしい数字だけで構成される文字列や
文字列の中にカンマや改行を含める場合に限定して囲む、のが主流
です。問題は、Excelは数字で構成された文字列を囲まないってとこ
ろですかね。相手のアプリケーションがちゃんとしたデータベース
なら特に問題にならないはずですが、どうなんでしょう。

フィルタで条件設定して加工するのが目的なら、Accessやファイル
メーカーでヤル方が楽でしょう。やっぱり、CSVをExcelで開くのは
負け組一直線ですよ。
    • good
    • 1
この回答へのお礼

皆様ご回答ありがとうございました。
大変勉強になりました。

お礼日時:2010/09/19 11:16

今の手順で拡張子を変えてテキストインポートウィザードで読み込ませます。


保存するときに,名前を付けて保存でファイルの種類をCSV(カンマ区切り)に変えて保存します。
以上です。
    • good
    • 2

>csvのままエクセルでファイルを開き、編集しますと、


>1つ目の問題点は、それこそ090など0から始まるの数字の先頭の0を消してしまいますよね??

これはcsvファイルをダブルクリックで直接開いた場合の挙動です。

エクセルから「データ」「外部データの取り込み」で「データの取り込み」を選択し、そのcsvファイルを指定すればテキストファイルウィザードが起動しますので、該当の列を「文字列」にして取り込んでください。

>2つ目はカンマ区切りはともかく、文字列の引用符の"がキレイさっぱりなくなってしまいます。

そもそもこの必要はあるのでしょうか?

どうしても特定の列のデータを「”」で囲みたいなら、エクセルで編集する時にセルの書式設定で表示形式をユーザー定義にして「!"@!"」としてそのままcsvで保存し、このcsvファイルを右クリックして「プログラムから開く」で「Notepad」を指定し、「編集」「置換」で検索する文字列に「"""」置換後の文字列に「"」として「すべて置換」して上書き保存して下さい。


>私はExcel 2003を使っていますが、
>他のヴァージョンだとうまくいったりするのでしょうか??

バージョンに関係なくcsvファイルをエクセルで開く場合は全く同じ挙動になります。
    • good
    • 0

CSVは、アプリケーションに依存するファイルです。

excelだと、文字列中の"は""とされる。数値は,で区切られるなど・・
 そこで、最初からtsvで保存するとか・・

 私は、excelの出力するCSVをテキストデータとして利用するときは、Perlを使っていったん配列に変更して処理しています。
 CSV形式の行から値のリストを取り出す ( http://www.din.or.jp/~ohzaki/perl.htm#CSV2Values )

 どういうexcelデータを、どういう目的で他のソフトで開いて、最終的にどんなデータ形式が欲しいのか示されていないので、一般的な方法を説明しました。

 もう一度、作業の具体的な目的、処理を教えてください。現段階ではそれ以上のアドバイスは無理です。
    • good
    • 0

↓のヒトに同意(拡張子変える必要なし)なのだが、「タブ区切り」を「カンマ区切り」にしたい、という要件だけ答えれば、フリーのテキストエディタの置換機能使えば一発で出来るよ。



あ、あとExcelって「090などの数字を、90と先頭の0を消されないように」みたいな余計な処理をするから、出力先のファイルを“テキストエディタで”もう一度見直したほうがいいよ。
    • good
    • 0

なぜ、拡張子をtxtに変更するのですか?


それさえしなけりゃ問題ないはず。
Windowsは拡張子がすべての特殊なOSですから、拡張子変えたら保存するときそうなる。編集後CSVに変更して保存する。
    • good
    • 1
この回答へのお礼

ご回答ありがとうございます。

拡張子をわざわざtxtに変更したのは、確かここの過去ログにもあったと思うのですが、
Excelの解説サイトなどでよく取り上げられてのでそうしてみました。

csvのままエクセルでファイルを開き、編集しますと、
1つ目の問題点は、それこそ090など0から始まるの数字の先頭の0を消してしまいますよね??
2つ目はカンマ区切りはともかく、文字列の引用符の"がキレイさっぱりなくなってしまいます。

私はExcel 2003を使っていますが、
他のヴァージョンだとうまくいったりするのでしょうか??

お礼日時:2010/05/12 03:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!