• ベストアンサー

<Excel>数字の羅列になっている日付データをxxxx/yy/zzの形式に変換したいのですが。

EXCEL(2000)についてお知恵を拝借致したく。 一つのセルに入っている20030605のような数字の羅列になっている日付データを別のセルに2003/06/05というスラッシュ入りの形式に変換して表示させたいのです。 セルの書式設定ではできません。 関数を使用して何かいい手はないでしょうか。

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

  • ベストアンサー
  • arukamun
  • ベストアンサー率35% (842/2394)
回答No.2

こんにちは 20030605が入っているセルがA1セルだとして、 =LEFT(A1,4)&"/"&MID(A1,5,2)&"/"&RIGHT(A1,2) でいいと思います。 もし、正しいシリアル値にするのであれば、 =DATE(VALUE(LEFT(A1,4)),VALUE(MID(A1,5,2)),VALUE(RIGHT(A1,2))) とすれば、表示形式やさらに関数を追加して =TEXT(DATE(VALUE(LEFT(A1,4)),VALUE(MID(A1,5,2)),VALUE(RIGHT(A1,2))),"yyyy/m/d") のようにも使えます。 ご確認ください。

poppo3
質問者

お礼

丁寧にありがとうございます。試してみます。

その他の回答 (4)

  • dejiji-
  • ベストアンサー率38% (327/858)
回答No.5

数値は20030605というように8桁で表示されていれば関数を使用しなくても一括変更できます。この数値を日付として認識させる方法は(あくまで8桁の場合です。) データの入ったセルを選択し、データ→区切り位置を選択してそのまま2回次へ(何も変更する必要はありません。)から最後に日付を選択すれば日付に変更できます。 但し、日付形式としては2003/06/05ではなく、2003/6/5となってしまいますが。もし、2003/06/05が必要なら、セルの書式設定でユーザー設定からyyyy/mm/ddとすれ2003/06/05と表示されますが。

poppo3
質問者

お礼

これはすごい。ただ、表示したい場所は大元のデータを引っ張ってくるための関数が入っており、大元のデータの書式はいじれないので、今回は使えないかもしれないんですが、感動的に簡単です。必ずどこかで使わせて頂きます。どうもありがとうございました。 みなさん、超特急でご回答頂き、ありがとうございました。まさかこんなに早く解決するとは思っていませんでした。しかもいろいろな方法を教えて頂いて、今回に限らず役立ちそうです。教えて頂いた中からどれが最適か検討させて頂きます。とても助かりました。感謝します。

noname#4564
noname#4564
回答No.4

VBA使用の別解。単に8桁の数値を日付に変換するだけなら、下記で可能。(表示書式は環境に依存) DateSerial((Arg \ 10000), ((Arg Mod 10000) \ 100), (Arg Mod 100))

poppo3
質問者

お礼

前の方と同じお礼になってしまいますが、今のところVBAを使用するにはわたしはちょっと力不足です。でもいずれは、と思ってますので、そのとき参考にさせて頂きます。どうもありがとうございました。

noname#4564
noname#4564
回答No.3

VBAなら、 Format$(Arg, "@@@@\/@@\/@@") Mid$やLeft$、Right$を駆使するより簡潔でエレガントな解法です。

poppo3
質問者

お礼

VBAはちょっと自信がないのですが、いずれVBAを取り入れて再作成したいと思っている表なので、そのときに是非参考にさせていただきます。ありがとうございました。

  • Hageoyadi
  • ベストアンサー率40% (3145/7860)
回答No.1

関数ででしたらこちら。

参考URL:
http://www.okweb.ne.jp/kotaeru.php3?q=563077
poppo3
質問者

お礼

ご紹介頂いたページの方法でできること確認できました。早々にありがとうございました。

関連するQ&A

専門家に質問してみよう