• ベストアンサー

日付を含むCSVをExcel2019で開くと不正確

添付画像のようにCSV(画像左)の日付がExcelで不正確に解釈されます。 ・16/08/2021 これは、そのまま16/08/2021で取り扱われます。 ・09/08/2021 これは、日付として扱われ、September,8,2021 になります ・02/08/2021 これは、日付として扱われ、February,2,2021 になります CSVのコピペで発生、マクロでCSVを読み込んでも同じです。 CSVのデータをそのままの形(Excelの解釈不要)で扱いたいのですが、どうしたらよいでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.3

>添付画像のようにCSV(画像左) タブ区切りのテキストファイルですね。 つまり、 comma-separated values:CSV ではなく、 character-separated values:CSVの一種ということでいいでしょうか。 また、 日付と思しき文字列が日付形式(日付Serial値)に変換されてしまうことを避けたい。 ということですね? エクセルの貼り付け先のとなるセルたちの表示形式を 予め文字列にしておき、 課題のテキスト(文字たち)をクリップボード経由で貼り付けることで 期待の動作になると思います。 それとも、これらの作業をVBAで行うコードを 期待していますか?

その他の回答 (2)

  • asciiz
  • ベストアンサー率70% (6849/9742)
回答No.2

「日付っぽい物」を「適当に」解釈するのはExcelの悪癖ですので、ただの「文字列」として読み込ませればいいと思います。 Excelの操作で言うと、 ・新規シート作成 ・「データ」リボンから「外部データの取り込み:テキストファイル」を選択 ・ファイル選択ダイアログでCSVファイルを選択し、[インポート] で開く ・テキストファイルウイザード1/3→「カンマやタブなどの(略)」を選択して次へ ・テキストファイルウイザード2/3→「区切り文字:カンマ」を選択して次へ ・テキストファイルウイザード3/3→日付のある列をクリックし、「文字列」を指定。複数列あるならそれぞれ文字列指定。 ・[完了]ボタンで読み込み。 これで、どんな日付データが入っていようとも化けなくなると思います。 というか日付データ扱いされないので右寄せにならず、単なる文字列として左寄せでセルに入ります。 手動で出来るんだから、マクロでそういう読み込み指定もできると思うのですが、組んだことありません…。

  • kzr260v2
  • ベストアンサー率48% (863/1797)
回答No.1

Excelは、csv読み込み時に列ごとにデータ型を指定できる「テキストインポートウィザード」の機能があります。また最新バージョンでは「Power Query」という機能がさらに追加され、どちらも利用できるようです。 詳細な使い方については、Googleなどで以下のキーワード検索をお試しください。 Excel テキストインポートウィザード データ型 日付 Excel Power Query データ型 日付 ※ Power Queryは読み込み後にもデータ型の変更ができるようです。テキストインポートウィザードは、読み込み時の内容のままですが、古いバージョンのExcelとデータを共有しているときは、こちらのほうが良いかもしれないです。 以上、参考にならなかったらごめんなさい。

関連するQ&A