- ベストアンサー
エクセル 文字列になっている日付を日付データにしたい
エクセル2002を使用しています。 他のシステムからCSV形式で出力されたデータの日付(生年月日)が、ほとんどは文字列(テキスト型)で、一部日付データになっています。 表示は、昭和50年1月12日という具合になっています。 これを、文字列も全て日付データ(そのセルを選択した場合、セルでは元号表示でも、数式バーでは1985/1/12というように西暦で表示)になるようにはできるでしょうか。 隣に作業列を設けても良いと思っています。 データは、約300件(300人)分あります。 たまに日付データとして登録されている者の理由は不明ですが、元のシステムの登録時に西暦で生年月日登録したのかもしれません。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
エクセルに読み込んだ後どういう状況か答えてください。 私がやってみると (1)文字列。数字は半角 =DATEVALUE(A1)でエクセル日付シリアル値になる 昭和18年2月28日 1943/2/28 平成18年2月28日 2006/2/28 大正9年2月29日 1920/2/29 (2)文字列。数字は全角 =DATEVALUE(A1)でエクセル日付シリアル値になる 昭和18年2月28日 1943/2/28 平成18年2月28日 2006/2/28 大正9年2月28日 1920/2/28 (3) 漢字と半角数字で入力。入力した時点で、日付セリアル値に変換して せっとされ、表示は下記の通り。 数式バーには1983/2/23が表示される。 (3)以外は=DATEVALUE(A1)でうまくいくようですが、同でしょう。 質問者の実例での状況(何か障害があるか)を教えてください。 昭和58年2月23日
その他の回答 (2)
- haruko2005
- ベストアンサー率52% (235/447)
セルA1に生年月日が入っているとします。 作業用セルの書式の表示形式を「日付」(yyyy/m/d など)にします。 作業用セルに「=DATEVALUE(A1)」と入力します。 これでうまくいくようでしたら、 作業列を用意して、行数分だけ数式をコピーしてください。
お礼
ありがとうございました。 試してみたのですが、私の望むようには変換されませんでした。 #VALUE! となってしまいました。 元々のファイル形式は、CSV形式(カンマ区切り)だったのですが、 一度エクセルブック形式で保存しても同じでした。 imogasiさんもおっしゃっている、こちらの文字形式に問題があるのかと思いました。 例えば、あるセルは、昭和61年 1月14日と表示されています。 漢字は全角 数字は半角 月日で一桁の場合は、空白+半角数字 です。 この例の場合は 1月が空白+1と表示されています。 では、何が支障かというと、実際に支障は無いのです。 年齢計算を関数で行っていますが、この生年月日でも計算はしてくれます。 あえて言うと、 ・文字列のセルは左詰で、日付データのセルは右詰になっている ・数式バーが、文字列のセルは元号表示で、日付データのセルは西暦表示になることです。 統一されていないことが気に障るだけなのです。 すみません。こんなことで質問してしまって。
- mshr1962
- ベストアンサー率39% (7417/18945)
「データ」「区切り位置」で「次へ」を2回 列の表示形式を「日付」にしてOK セルの書式設定の表示形式を日付から選択 または 何も入力のないセルをコピーして、該当の日付のセルに 「編集」「形式を選択して貼り付け」「加算」で「OK」 セルの書式設定の表示形式を日付から選択
お礼
ありがとうございました。 試してみたのですが、私の望むようには変換されませんでした。 元々のファイル形式は、CSV形式(カンマ区切り)だったのですが、 一度エクセルブック形式で保存しても同じでした。 imogasiさんもおっしゃっている、こちらの文字形式に問題があるのかと思いました。 例えば、あるセルは、昭和61年 1月14日と表示されています。 漢字は全角 数字は半角 月日で一桁の場合は、空白+半角数字 です。 この例の場合は 1月が空白+1と表示されています。 では、何が支障かというと、実際に支障は無いのです。 年齢計算を関数で行っていますが、この生年月日でも計算はしてくれます。 あえて言うと、 ・文字列のセルは左詰で、日付データのセルは右詰になっている ・数式バーが、文字列のセルは元号表示で、日付データのセルは西暦表示になることです。 統一されていないことが気に障るだけなのです。 すみません。こんなことで質問してしまって。
お礼
質問を検証していただいたおかげで、問題点が分かりました。 月日が一桁の場合、「空白」+「数字」になっていたのが問題でした。 SUBSUTITIDE関数で空白を削ると、皆さんの教えていただいた方法が使えました。 ありがとうございました。
補足
回答ありがとうございました。 そしてすみません。 支障は無いといってもいいくらいの問題なのです。 年齢計算を関数で行っていますが、この生年月日でも計算はしてくれます。 あえて言うと、 ・文字列のセルは左詰で、日付データのセルは右詰になっている ・数式バーが、文字列のセルは元号表示で、日付データのセルは西暦表示になることです。 統一されていないことが気に障るだけなのです。 すみません。こんなことで質問してしまって。 imogasiさんもおっしゃっている、こちらの文字形式に問題があるのかと思いました。 例えば、あるセルは、昭和61年 1月14日と表示されています。 漢字は全角 数字は半角 月日で一桁の場合は、空白+半角数字 です。 この例の場合は 1月が空白+1と表示されています。 もしかして、JIS関数とDATEVALUE関数を組み合わせればいいのでしょうか ・・・・・・・ 今、やってみましたが、私のレベルでは失敗しました。 いい方法がありましたら、お教えください。 よろしくお願いいたします。