• 締切済み

CSV変換作業について困ってます

CSV変換作業について困ってます 事の顛末から書きます。 とあるCSVをダウンロードし、エクセル2007で開くと、セルの見た目は[May-10]となっていて 数式バーの中では[2010/5/1]となっています。 このCSVファイルをそのまま上書き保存をしたら 今度はセルの見た目が[10-May]となっており、数式バーの中が[2010/5/10]と変化してました インポートする為のデータなので、セルの見た目は[May-10] 数式バーの中では[2010/5/1] の状態で保存したいのですが何か回避方法はありますか? また、何故同じCSVを同じOfficeで開いているのに変化が起きてしまうのでしょうか?

みんなの回答

  • end-u
  • ベストアンサー率79% (496/625)
回答No.3

>そのCSVファイルをダウンロード直後、Excelで開かずにメモ帳などのテキストエディタで開いた場合、 >[May-10]の箇所はどうなっていますか? この質問に対するお答えが頂けなかったようで。 実はここがポイントだったのかなと思います。 >[コントロールパネル]-[地域と言語のオプション]-[地域オプション]タブで... などとごちゃごちゃ書いてしまい申し訳なかったです。 そんな事ではなく、ただ単に、データが 2010/5 や 2010/05 2010-5 2010-05 なだけです。多分。 確認してみてください。 Excelで開いて保存する事によって、  【CSV】   【Excel】  2010/5 → 表示[May-10](2010/5/1) → →May-10 → 表示[10-May](2010/5/10) と変換されたのでしょう。 >開いたCSVを一回保存すると、違った内容になるのはなかなか厳しい物がありますね。 『保存すると、』ではなく、『Excelで開くと、』です。 日付と認識されて表示形式が変わってしまい、実データがシリアル値に置き換えられてしまいます。 その場合、【保存時に表示形式を "yyyy/mm" や "yyyy/m"、"yyyy-m" などにする】と良いです。 ※インポートの項目を確認して、それに合わせてください。 ※本来、yyyy/m/d の日付データが入ってないといけないけど、日データが抜けてる不正値なのかもしれないですよね。 >システム上セルの見た目は[May-10]となっていて数式バーの中では[2010/5/1] この様な形式でないと取り込めない.. そんな事は無いはずなので、よく確認してください。 CSVファイルもTXTファイルも単なるテキスト(文字列)データですから、表示形式は無いです。 Excelを使って確認しようとした時に、『見た目は[May-10]となっていて数式バーの中では[2010/5/1]』になるだけです。 重ねて言いますが、そのまま保存せずに、 インポート先のシステムの、取り込みデータの条件に合わせたデータ形式で保存すれば回避できるはずです。

全文を見る
すると、全ての回答が全文表示されます。
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.2

おっしゃている事がよく分からないなあと訝しく思いながら再現してみました。 当方xl2000ですが、 A1:2010/5/1→書式1-May A2:2010/5/1→書式May-10 というシートをcsvで保存して再度読み出すと、 A1:1-May A2:10-May に変わってしまいました。(A2:2010/5/10になってます) csvファイルをテキストエディターで開いてみると、 1-May May-10 という内容でした。 エクセルでCSVを読み込む時に、誤る様です。 これって、2000→2007まで改善されていないバグ? エクセルでcsvに書き出すと、セルの値でなくテキスト(VBAで表現するとRange("A1").valueでなく、Range("A1").text)で、表示されている通りにCSVに書き出す様なので、年の情報(あるいは日の情報)が消えてしまいます。 1-Mayは止めて、2010/5/1という書式にして書き出すのが吉だと存じます。

lovethee_ever
質問者

お礼

そうなんです、私もこの状態を見た時はじめは気がつかずに、何でインポートでエラーが発生してるの?? と思いながらCSVを眺めておったのです… ただ、システム上セルの見た目は[May-10]となっていて数式バーの中では[2010/5/1] この様な形式でないと取り込めない事から焦っておりました。(取込先の書式は「日時」を限定しておりましたゆえ…) 何とかtxt形式にして取込むことはできたので回避はしたのですが、しっくり来なかったので… end-u様の回答を見る限りバグというかMSの認識の方法の問題ですね。 再現ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • end-u
  • ベストアンサー率79% (496/625)
回答No.1

前提条件がちょっと解せない感じです。 『とあるCSVをダウンロードし、エクセル2007で開くと、セルの見た目は[May-10]となっていて 数式バーの中では[2010/5/1]となっています。』 そのCSVファイルをダウンロード直後、Excelで開かずにメモ帳などのテキストエディタで開いた場合、 [May-10]の箇所はどうなっていますか? CSVファイルは単なるテキストデータですから、書式情報は保持しません。 それに、『mmmm-yy』のつもりで May-10 という文字で保存したとしても、 Excelで開く時に、自動的に組み込み形式の日付形式に変換されます。 http://support.microsoft.com/kb/214233/ja "月-日"という形式の日付だと認識して、『d-mmm』に勝手に変換されるわけです。 それに、単なる文字列である[May-10]には"日"の情報がないです。 別の年月でも常に1日にしたい場合はともかく、[2010/5/2]や[2010/5/3]などの設定はできません。 >セルの見た目は[May-10] 数式バーの中では[2010/5/1] の状態で保存したい... 保存したい場合はCSVファイルではなくXLSファイルなどで表示形式の情報も保存するしかないです。 もっとも、保存ではなく、Excelで開いた時のデータの見え方だけの問題でしたら、 『セルの見た目は[May-10] 数式バーの中では[2010/5/1]』にする事は可能です。 [コントロールパネル]-[地域と言語のオプション]-[地域オプション]タブで [日付]の「短い形式」を 「dd/mm/yy」 にします。 でもこれはかなり無理矢理な設定で、他の作業にも影響しますし、混乱の元です。あまりお勧めしません。 要は、そのCSVテキストデータを何に使いたいかという問題なのだと思います。 インポートの条件が "mmmm-yy" という『文字列』なら、素直に[May-10]という文字にするだけで良いのではないですか? Excelで開いて作業する必要がある場合は、 [外部データの取り込み]などを使って、日付データとしてではなく『文字列』として読み込むか、 あるいは 普通にCSVで開いて作業し、保存時に表示形式を"mmmm-yy"に戻してあげれば良いです。

lovethee_ever
質問者

お礼

解りにくい文章の理解からありがとうございました。 他のシステムから何故かその形でCSVをダウンロード出来たので、何か方法があるのかな?と思ってました。(自分で作ったもので無いので詳しくはわかりませんが…) 文字列ではインポート先で何故か蹴られてしまうのです…  txtデータでは行けるのですが… ただ開いたCSVを一回保存すると、違った内容になるのはなかなか厳しい物がありますね。 MSのサイト参考になりました。ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • CSVをExcelに変換したい

    お世話になります。 CSVファイルをExcelファイルに変換する場合、CSVファイルをExcelで開いて拡張子を「xls」もしくは「xlsx」を指定して保存すればよいかと思いますが、PCにExcelがインストールされてない環境の場合、Excelに変換することは不可能でしょうか。 今回、Accessにてツールを作成し、CSV(カンマ区切り)のデータを読み込もうとしておりますが、そのデータの中には単語の中にカンマが含まれているものがある為、普通にCSVをインポートしようとすると、ズレてしまいます。 なので、インポートする前準備としていったんExcelに変換したいと考えているのですが。。そのPCにExcelがインストールされてないと、やはり変換することは出来ないでしょうか。 もしくは、カンマ区切りのCSVファイルをタブ区切りに変換したりすることは出来ますでしょうか。 ご教授の程、宜しくお願い致します。

  • ExcelからCSV出力して読込むと削除変換される

      Excelのブック1のシートに入力されたデータを 一度、CSVファイルに出力して このCSVファイルを別のツール(perlなど)で変換して この変換されたCSVファイルを再び 別のExcelのブック2のシートに読み込ませたいのですが Excelのブック1から出力したCSVファイルを 別のツールで変換しなくてもそのまま Excelのブック2のシートに読み込ませた時点で 文字の一部が消えたり数式が値になったりしてしまっています。 具体的には、 セルの先頭の ' (シングルクォーテーション) が消えてしまったり、 1つ足りなくなったりしています。また、 先頭の =1+1 などは、(表示上) 2になったりしてしまっています。 なお、セルの書式設定が標準だと、先頭の @ の後に続けて入力すると 正しく入力できませんが、セルの書式設定を文字列にすると、 この @ の問題は起きなくなりました。でも、セルの書式設定を文字列にしても ' (シングルクォーテーション) や数式が計算結果になる問題は 解決していません。 (問1) 削除されたり変換されてしまうのは     ・先頭の ' (シングルクォーテーション)     ・先頭の =     ・先頭の @    の3つのケースだけでしょうか。    このほかにもありましたら教えてください。 (問2) 先頭の =1+1 の場合ですが    セルの書式設定が標準の状態で =1+1 と入力すると    数式バーには =1+1 と表示されていて    セルの書式設定が標準だと2と表示されていてその後    セルの書式設定を文字列にしても2と表示されています。    逆に、    セルの書式設定が文字列の状態で =1+1 と入力すると    数式バーには =1+1 と表示されていて    セルの書式設定が文字列だと =1+1 と表示されていてその後    セルの書式設定を標準にしても =1+1 と表示されています。    いずれも入力したデータは同じなのに    入力時点での表示形式で表示内容が固定されてしまっていて    その後、表示形式を変更しても表示内容が反映されていない    ように感じるのですが何が起きているのでしょうか。 (問3) 前述の理由により、CSVファイルをセルの書式設定が文字列    の状態で読み込ませることはできるのでしょうか。    (後でセルの書式設定を文字列に変更しても =1+1 と表示されないので) (問4) Excelのブック1のシートのセルには     ユーザーが好き勝手な文字や数値や記号を入力します。     何を入力されても変化してしまわないようにすることはできるでしょうか。      ( 頭に ' を付けることをユーザーに強要するとか、       事前にセルの頭に ' を入力しておくなどはなしです) (問5) もし、できない場合、Excelのブック1のシートの各セルの先頭に     ' (シングルクォーテーション) や = から始まる数式を    入力することができないように制限をかけることはできるのでしょうか。 よろしくお願いします。(Windows7,Excel2010)

  • EXCEL|csvで保存→開くcsvを閉じる

    xlsファイルからcsvで書き出したいのですが、書き出し後そのcsvファイルが開いてしまいます。この時保存をしてしまうと、セルが勝手に日付書式に読み込まれたまま保存されてしまいます。 これを回避するために、開いたcsvをそのまま保存せずに閉じたいのです。これはvbaでなんとかなるのでしょうか? もしかしたら設定でできるのかも知れませんがどうしても見つかりませんでした。よろしくお願いします。

  • エクセルをCSVに変換時に不具合が出てしまう。

    エクセル2007を使用している者です。 エクセルファイルをCSV変換時に出る 不具合がどうしても改善できず困っております。 操作内容は以下の通りです。 エクセルにて列ごとに違う項目で A~Oまでの列にそれぞれ5行異なるデータを入れ、 これをCSVに変換した後のファイルを保存して 内容を確認してみますと、 何と、驚くことに入れたはずのない行が増えており また入れたはずのないデータが入っており、 さらに列の順番も少し変化し、 また元データと異なる列も作成され、そこには 全く入力していないデータが反映しています。 データ内容を見ますと、 以前、異なる階層のフィルに作成した CSVデータの内容からも読み込んでいるような感じです。 つまり、エクセルの元ファイルデータに加え 以前作成した全く関係ないCSVフィルからもデータを取り込み これを複合されたようなCSVデータができています。 PCを何度も再起動しても改善されないため office2007をまるごと入れ直してみますが、 やはり結果は変わらないです。 また、読み込んでしまう関係ないCSVファイルを 別の場所に移動してみても結果は同じです。 エクセルを開いて左上にあるボタンから表示される 【最近使用したドキュメント】の履歴も すべて削除しています。 尚、エクセルファイルに数式等は一切いれていません。 また、CSVに変換後のファイルの拡張子もCSVとなっています。 原因を特定することができなくて困っています。 原因や改善方法をご存知の方がいらっしゃいましたら どうかお知恵をお借りできますよう アドバイスを宜しくお願いいたします。

  • NetscapeでのCSVインポート

    CSV形式のデータの中に、EMAILアドレスがあるので、インポートしようとしています。 OUTLOOKはできましたが、Netscapeはインポート中に、「インポートができなかったので 変換ファイルのldifファイルを保存し、それをインポートしてください。」というメッセージ が表示され、言われた通りの操作をしたつもりですが、ファイルを選択して、開くボタンを クリックしても、アドレス帳の画面に戻り、何の表示もありません。なぜインポートできないの でしょう?よろしくお願いします。

  • txtファイルを「,」で区切ったcsvにしたい

    txtファイルをcsvに変換しようとしています。 要はカンマ「,」でtxtファイルの中の文字を区切りたいのです 「excelで名前を付けて保存」→「保存するファイル形式」でCSVを選択すればできるのですが、excelを持っておらず困っています。 無料でできる簡単ないい方法はありますか? ちなみに、open officeやkingsoftの無料officeで「名前を付けて保存」→「保存するファイル形式」でCSVを試してみたのですが、ダメでした。OSはwin7とMacOS10.8を使っています。winでできればベストですが、ダメならMacでも大丈夫です。

  • エクセル 数字の変換について

    windowsXP office 2003exelを使用しています。 数字の並んでいるセルのあるファイルを、csv形式で保存し再度開くと、「1.02E+08」や「8.01E+09」のように変換されてしまいます。 コレを変換させないようにする方法はあるのでしょうか? また、書式を変えれば元に戻るのでしょうか?

  • SJISのCSVをutf-8に変換してインポート

    WAMP初級者です。 とある情報を検索するサイトを運営していますが、その検索対象となる元データはCSVで作成し、MySQLへインポートして情報を更新しています。 環境は文字コードutf-8としているので、エクセルで編集したCSVそのままではだめなので、いったんKanjiTranslator(http://www.kashim.com/kanjitranslator/ )を使ってutf-8に変換し、それをインポートするやり方をとっています。 皆さんも、こんな感じでひと手間かけているのかと、ふと疑問に思いましたので、質問させていただきます。 1)CSVでutf-8で保存する方法がある?(調べていますが、なさそうでした。。) 2)KanjiTranslatorなどは使わずに、もとのSJISのCSVから直接utf-8でインポートする方法がある? 3)エクセルではなくもっと良いのがある? ちなみに環境はMySQL Server 5.6 Apache/2.2.4 (Win32) PHP/5.4.22です どなたかご存知の方ご教授いただけますと幸いです。

  • ExcelからCSVファイルへの変換と文字化け

    エクセルからCSVファイルへの変換したときの文字化けに悩まされています。 たとえば、 千代田区大手町19-1 という住所がはいっているセルがあり、CSVに変換すると、 千代田区大手町19?1 となります。 エクセルで開いても、テキストエディタで開いても「-」が「?」に文字化けします。 エンコードの問題なのでしょうが、どうすれば文字化けが解消されるのか、わかりません。 エクセルはデフォルトではSJISで保存されるようなので、 UTF8で保存すれば、文字化けはなくなるのかもしれません。 ただ、 http://web-laboratories.com/excel-csv こちらのサイトにあるように、 [WEBオプション]をつかってUnicode[UTF-8]で保存しても、 テキストエディタで開きなおすと、SJISのままになっているようです。 文字化けをさせないCSVファイルへの保存のやり方を教えてください。

  • csvファイルを上書き保存でカンマ区切りされない

    csvファイルのセルに文字を入力して、「上書き保存」をすると ”XXXXX には、CSV(カンマ区切り)と互換性のない機能が含まれている可能性があります。この形式でブックを保存しますか? ” というメッセージが出たので「はい」をクリックして上書き保存しました。 再度そのファイルを開いてみると、カンマ区切りされておらず、各セル内の文字が結合されていました。 そこで質問なのですが、 試しに上記の上書き保存をせず、右上の「ウィンドウを閉じるボタン(×ボタン)」をクリックして、 「保存しますか?」との問いに「はい」と答え、 次に”XXXXX には、CSV(カンマ区切り)と互換性のない機能が含まれている可能性があります。この形式でブックを保存しますか? ” との問いに「はい」と答えた形で保存をすると、きちんとカンマ区切りされていました。 なぜ上記の方法では正常にカンマ区切りされなかったのでしょうか? どうぞよろしくお願いいたします。

専門家に質問してみよう