• ベストアンサー

EXCEL・月日のつもりで入力された文字列(数値)を年月日に変えるには

A列に月日のつもりで入力された次のような文字列(又は数値)があります。これをB列に年月日に変換表示したいのですがその方法(関数)をご教示ください。(年月日の表示形式は不問。) なお、「年」を意味する文字列がないので、変換する場合、4.1から12.31までは2006年4月1日から同年12月31日まで、1.1から3.31までは2007年の1月1日から3月31日とします。 はじめデータ・区切り位置コマンドを使おうと思ったのですが、コンマの位置が不揃いでうまく行きませんでした。また入力した者が例えば3月1日を意味する文字列(または数値)をあるときは「3.1」あるときは「3.01」のようにまちまちに入力していて、それも作業が面倒な一因となっています。 A     B(変換表示したい年月日「例」) 4.8   2006/4/8 5.03   2006/5/3 7.28    2006/7/28 12.1    2006/12/1 1.07     2007/1/7 2.15    2007/2/15

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

  • ベストアンサー
noname#204879
noname#204879
回答No.1

B1: =DATE(2006+(A1<4),A1,MID(A1,FIND(".",A1)+1,2)*1)

doubt34
質問者

お礼

ありがとうございました。 数式の組み立て、なるほどですね。 作業者が最初から日付として入力してくれれば余計な手間がいらないのにと思っていたところでした。 早速の後教示感謝します。

その他の回答 (1)

  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.2

SUBSTITUTE関数でピリオド(.)をスラッシュ(/)に変えてみましょう。  (3.01は3/01となるので問題ありません) その後、IF関数でA列の数が4より大きいかを判断して2006年か2007年を判断。 それらの文字を繋げる。 DATEVALUE関数で日付を示すシリアル値に変換して、B列の表示書式を日付にすれば、日付として計算できます。  A2セルに日付を示す文字があるとするとB2セルに、  =DATEVALUE(IF(A2>4,"2006/"&SUBSTITUTE(A2,".","/"),"2007/"&SUBSTITUTE(A2,".","/"))) あとはB2のセルのフィルハンドル(B2セルを選択したときのせる右下にある黒い四角)を下にドラッグするだけです。

doubt34
質問者

お礼

DATEVALUE関数はこういう使い方をするんですね。 一つ勉強になりました。 ご丁寧なご教示感謝します。ありがとうございました。

関連するQ&A