• ベストアンサー

エクセル・文字列で保存されているデータを日付にしたい

人からもらったデータです。 日付が文字列で保存されていて20060322という書き方で沢山入力されている列があります。 2006/03/22の表示に変更したいです。 列を指定して書式、セル、表示形式、日付、種類で変更してみようとしましたが、できませんでした。 そういえば、テキストデータを読み込む時、表示形式を指定し忘れて勝手に日付になってしまった文字列(数なのですが)を、後で文字列にするとおかしな数になってしまったことがありました。。。 保存されている表示形式を上手に変更する方法はありますでしょうか? 教えてください。

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

  • ベストアンサー
  • EL-SUR
  • ベストアンサー率76% (83/108)
回答No.3

■「区切り位置」で変換 その列を選択 メニューの「データ」-「区切り位置」 表示されたウィザード画面の下にある「次へ」を2回クリックして3画面目へ 「列のデータ形式」を「日付」にして「完了」をクリックで日付データに変換されます。 ■関数を使って変換 元データがA1からあるとして 別セルに =TEXT(A1,"0-00-00")*1 シリアル値に変換されるので表示形式を「日付」にしてください。 必要なだけ下にフィルコピー

6923
質問者

お礼

本当にいろいろな方法があるのですね。関数の式、これくらい単純な式なら覚えておいて、これからも利用できそうです(笑)ありがとうございました。

その他の回答 (2)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

"20060322" は、エクセルでは有効な日付データとして認識されません。 別に列を設けて =DATEVALUE(REPLACE(REPLACE(A1,5,0,"/"),8,0,"/")) (セルの表示書式を日付にする) の様な感じで変換する必要があります。 変換が終わったら、 コピーして形式を選択して貼り付けから値で貼り付けし セルの表示書式を日付にして 作業列を削除します。

6923
質問者

お礼

ありがとうございました。いろいろな方法があるのですね。

  • akio_myau
  • ベストアンサー率34% (515/1480)
回答No.1

現在の状況は文字列ではなく、数値なのでは? 表示上だけの話であればまず、セルの書式設定でユーザー定義を選び 0000/00/00としてみてください。 これで日付のように表示されれば現在の書式設定は数値です。 しかし、文字列として認識しているのであれば セルの書式設定で変更することは出来ません。 例えばA1にデータがある場合別のセルなりに =date(left(a1,4),mid(a1,5,2),right(a1,2) のような式で日付にへんこうしてはどうでしょうか。

6923
質問者

お礼

データは文字列です。人からもらったデータなのですが、テキストをエクセルで読み込む時に、その人が日付で読むべき列を間違えて文字列に指定したようです。この式で無事、日付にできました。ありがとうございました。