dポイントプレゼントキャンペーン実施中!

エクセルで、『2003214』と入力したものを
『2003/2/14』という風に書き換えたいのですが、
上手くいきません……。
text関数で”yyyy/m/d”とやったら、
シリアル値で表示されて区切られてしまいます。

どなたか、良い方法を教えてください!!!

A 回答 (7件)

入力されている値はシリアル値でなく単なる数字ですよね?


また、『20030214』と言う様に西暦4桁、月2桁、日2桁とかではないのですよね?
上記と違うのであれば、2003年1月14日と2003年11月4日が同じ値(2003114)となるため、どちらの日付か判断が難しいと思います。
    • good
    • 0
この回答へのお礼

なるほど、、、どうもありがとうございます
1月と11月のことは
すっかり考えに入っていませんでした

確かにそうですね…
そもそも2003214という記述自体に
無理がありました。

早くの御回答、ありがとうございました

お礼日時:2003/11/09 18:24

セルの書式設定でよいとおもいます。


任意のセルを指定する
指定したセル内で右クリックする、
セルの書式設定を選択する、
日付 を選択する、
表示形式を選択して
OK でよい、
    • good
    • 0

書き換えるだけなら


セルの書式設定→ユーザー定義で
「####"/"#"/"##」と入力して下さい。
ただ、この方法だと10月以降は適用されません。
10月を10月と認めさせるためには8桁で入力しないと・・・。
すべてが8桁でしたら
=LEFT(A1,4)&"/"&MID(A1,5,2)&"/"&RIGHT(A1,2)
で表示させ、
=TEXT(DATE(VALUE(LEFT(A1,4)),VALUE(MID(A1,5,2)),VALUE(RIGHT(A1,2))),"yyyy/m/d")
で、日付として認識させることができます。

が、一番問題なのが7桁と8桁が混在することのような気がします。
IF関数などを駆使して、7桁のときは先頭文字列から4文字目だけを8桁のときは4文字目と5文字目を月データとして抽出する必要がありそうです。
    • good
    • 0

セルの書式設定の表示形式の分類(C)の種類(T)で


[1977/3/4]というのを選択します。
[2/14]と入力すると[2003/2/14]と表示されます。
    • good
    • 0

2003214なら2003/2/14と判断できますが、仮に2003111だったらどうなります?


2003/1/11ですか?2003/11/1ですか?YYYYMMDDといった並びの記載でないと判断がつきませんね。したがって変換は無理です。
    • good
    • 0

すでに多数のセルに『2003214』といった形式で入力済みで、入力しなおすのが困難という状況と見ました。


書き換えについては、#3のHageoyaGさんの最後の式が非常にすばらしいように思えます。で、HageoyaGさんが指摘する問題点の7桁、8桁の混在ですが、6桁の場合(1月1日など)も考えられますので、IF関数でとても長い式になってしまいます。
=IF(A1>=10000000,TEXT(DATE(VALUE(LEFT(A1,4)),VALUE(MID(A1,5,2)),VALUE(RIGHT(A1,2))),"yyyy/m/d"),IF(A1>=1000000,TEXT(DATE(VALUE(LEFT(A1,4)),VALUE(MID(A1,5,1)),VALUE(RIGHT(A1,2))),"yyyy/m/d"),TEXT(DATE(VALUE(LEFT(A1,4)),VALUE(MID(A1,5,1)),VALUE(RIGHT(A1,1))),"yyyy/m/d")))
これは単純にHageoyaGさんの式をIF関数で6、7、8桁に対応できるようにしたものです。
しかし、一番厄介なのは#1のlistさんが指摘された、7桁のとき、月が2桁なのか、日が2桁なのかの判断が付かないことです。こうなるとお手上げです。上記の式は、7桁入力時に、月が1桁・日が2桁のときにのみ有効です。入力桁数を8桁固定にしておけば問題なかったのですが…。

今後入力する際は、#4のkotokoさんの言うように、[2/14]と入力しましょう。表示形式の選択無しでも[2003/2/14]と表示されます(Excel2002で確認)。ちなみに年の表示は現在の年表示になるので、年が明ければ同じように入力しても[2004/2/14]になります。
    • good
    • 0

(1)A列にデータがあるとして、B列に=LEFT(A1,4)、C列に=MID(A1,5,LEN(A1)-4)といれます。


(2)B列2003、C列に121となったとします。
12月1日か1月21日かは、コンピュタには判りません。あなたが判断しなければなりません。
(3)そこで少ない方と思われる10月11月12月行だけあなたが判断してD列にサイン1桁をいれます。10-12月の時は「1」(何でも良い)をいれます。
(4)E列に=IF(D1=1,LEFT(C1,2),LEFT(C1,1))
と入れます。月がでます。
(5)F列に=IF(D2=1,MID(C2,3,LEN(C2)-2),MID(C2,2,LEN(C2)-1))といれます。日が出ます。
(6)後はB、E、F列を使って日付を作ります。
=DATE(B1,E1,F1)
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!