• ベストアンサー

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

  • カンマ区切りの数値文字列を数値に変換

    JSPで数値を入力して、データベースへ更新するプログラムを作成しています。 入力はカンマありでもなしでも通すようにしたいと思っています。 しかも、カンマの位置は特にチェックせずにしたいのです。 ちゃんとしたカンマ区切り数値なら、NumberFormatで数値変換できますよね? データベースの数値を表示する際にもカンマ区切り数値にしますので、1桁目を削除した場合には、カンマの位置が違ってきますよね。 そのためにカンマの位置は意識しないでいきたいのです。 StringTokenizer という便利なクラスがあったので使用してみたのですが、インスタンスを生成した後、トークン分をループで回して文字列を連結する必要がありますよね。 もっとスマートに一発で変換できないでしょうか? 「ある文字列からデリミタを省いた文字列を返すメソッド」みたいな。 よろしくお願いします。

  • 文字列入力したものを数値に変換したい

    excel2007です。 数値を文字列で入力したものを 通常の数値に変換するには どうすれば宜しいのですか。 四則演算ができるようにしたいのですが。

  • エクセル 文字列で入力した数字を数値にする

    エクセルで、文字列の設定で入力した数字は、[セルの書式設定]で、数値として設定しても、文字列のままになります。 (セルの左上に、文字列と分かる緑の三角が付いたままになり、表を作ってもグラフの表示は出来ません。) 数値として数字を入力をした後、[セルの書式設定]で文字列にして、再び[セルの書式設定]で数値にすると、数値にはなります。 (この場合、文字列にしても、セルの左上に緑の三角が付かず、このまま表を作ると数値(小数点以下が0の場合は小数点以下が削除されます。)の扱いとなりグラフの表示が出来ます。) 文字列で入力した数字は、数値にはならないのでしょうか? よろしくお願いいたします。

  • 年月日を月日に変更する方法

    セルに1/1と入力すると1月1日と表示されますが 数式バーには2013/1/1と表示されます。 このため2013年7月1日からはじまり2014年6月末でおわる表を作成 した時、年月日に連動する関数を作成すると2014.1.1で入力した際連動されません。 数式バーをみますと2013年1月1日となっています。 ですので表示だけでなく元を月日だけにしたいです。 もしくは2014年になるよな設定も教えていただけたらとおもいます 簡単な方法を教えてください。

  • 数値を文字列に変換

    文字列を数値変換する関数はありますが、逆に数値を文字列に変換するにはどうやればよいのでしょうか?

  • 文字列が数値に変換されない

    文字列の数字をVALUE関数で数値に変換したくても数値になりません。 ♯N/Aと表示されるだけです。 関数を入れたあとに表示形式を数値にしても変わりません。 元の文字列はVLOOKUP関数で検索した数字です。 これができないと仕事が進みません。急いでます。お願いします。

  • 月日の入力について

    エクセル2002にて 標準に設定されているセルに、”03年10月”と入力しましたが、表示は自動で”2003年10 月”変わってしまいました。 また、入力した文字は、自動で”2003/10/1”に変わってしまいました。 セルの設定を最初に文字列にしておけば問題ないのですが、一旦”2003/10/1”になっ てしまった文字を、自動で”03年10月”に戻す方法はありますか?

  • 文字を入力したら数値が自動入力!(エクセル)

    いつもお世話になっています。 例えばA列の1行目に「りんご」と入力(若しくはリストの中から選択)すれば、B列の1行目には自動的に「5」と数値が入力されるという仕組みを教えて頂ければと思います。 因みにA列1行目に入力する文字(上記の例では「りんご」)が仮にA列の1行目以外に入力しても、それに対応し、数値を出せるようにしたいのです。(例:A列5行目に「りんご」を入力すると、B列5行目に数値の「5」が表示) 以上の説明で分かりにくいかもしれませんが、宜しくお願いします。

  • IF関数で0より大きい数値が入力されたら「あ」と表示、文字列の場合は空白としたい

    エクセル2003です B1に =IF(A1>0,"あ","")とすると「0」のときは、空白となりますが文字列が入力されたときにも「あ」と表示されてしまいます。 A1セルに「0」より大きい数値が入力されたときだけ、B1セルに「あ」と表示したいのです。 よろしく御願いします。

  • アクセス2003で文字列から数値型への変換。

    いつも大変お世話になっています。 アクセス2003で、商品の規格単位を「20mlが4本」のところを「×4」と入力しています。 「単位表示(2)」のフィールドに文字列で「×4」と入力してあるものを「単位表示(3)」のフィールドに「4」と数値型に変換したいです(「単位表示(3)」はあとで計算に使用したいので)。 どのようにしたらよいのでしょうか。どなたかよろしくお願いいたします。

専門家に質問してみよう