• ベストアンサー

文字列を年月に変換して、差を月数で計算したい

アンケートで6ケタで回答してもらった年月(例:201012)の2つの数値を計算して、差を月数で出したいのですが、どのようにしたら良いでしょうか?  例えば、下記のA-Bの差を月数で出したいのですが、どのような関数(あるいは方法)を使えば良いか教えてください。 例)  年月 A 201012 B 200511

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

  • ベストアンサー
  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.5

文字列でも数値でも、文字列が数値に変換できるものなら、次でOKのはず。 A1,B1にデータがあるとする。負になればB1のほうが大きいだけ。 =(INT(A1/100)-INT(B1/100))*12+MOD(A1,100)-MOD(B1,100)

YYae
質問者

お礼

回答ありがとうございます。 こちらで計算してみようと思います。 ありがとうございます。

その他の回答 (4)

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.4

 Excelのバージョンによっては、LEFT関数やRIGHT関数で数値データを処理すると、数値データではなく、文字列データとして扱われてしまう事があり、その場合には、そのままでは計算出来ない場合もあり得ます。  ですから、もし、ANo.2様の数式で上手く計算出来ない様な場合には、次の数式を試してみると良いと思います。 =(FLOOR(B1,100)-FLOOR(A1,100))*0.12+MOD(B1,100)-MOD(A1,100)

YYae
質問者

お礼

回答ありがとうございます。 アンケート収集の時に半角英数で回答してもらうつもりですが、もし文字列データとなってしまった場合はアドバイスいただいた件を試してみます。

  • FEX2053
  • ベストアンサー率37% (7991/21371)
回答No.3

#1さんのDATEDIF関数ですが、バグがあって「経過月数」の計算が正しくない事があるんです。式をテストしたわけじゃないので何とも言えませんが、条件的に引っ掛かりそうな気がします。実際にお使いになる場合は、以下のurlを確認された方が良いと思います。 http://www.niji.or.jp/home/toru/notes/50.html

YYae
質問者

お礼

ありがとうございます。 確認してみます。

  • FEX2053
  • ベストアンサー率37% (7991/21371)
回答No.2

このデータはどこにどんな形で入っているんですか? とりあえずExcelシート上で、セルA1とセルB1に、A1の方が必ずB1より後、という形で入っているとするならば。 =(LEFT(B1,4)-LEFT(A1,4))*12+RIGHT(B1,2)-RIGHT(A1,2) 日付シリアルなどを使わずに、単純に前半の差を12倍して、後半の差に足すだけでオッケーの筈です。

YYae
質問者

お礼

ご回答ありがとうございます。 上記の計算式で行うと、回答は-(マイナス)で出てきてOKですか?

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

一例です。 =DATEDIF(TEXT(B1,"0000!/00")*1,TEXT(A1,"0000!/00")*1,"m")

YYae
質問者

お礼

早速の回答ありがとうございました。 きちんと月数で出てきました。

関連するQ&A