- ベストアンサー
文字列を年月に変換して、差を月数で計算したい
アンケートで6ケタで回答してもらった年月(例:201012)の2つの数値を計算して、差を月数で出したいのですが、どのようにしたら良いでしょうか? 例えば、下記のA-Bの差を月数で出したいのですが、どのような関数(あるいは方法)を使えば良いか教えてください。 例) 年月 A 201012 B 200511
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
文字列でも数値でも、文字列が数値に変換できるものなら、次でOKのはず。 A1,B1にデータがあるとする。負になればB1のほうが大きいだけ。 =(INT(A1/100)-INT(B1/100))*12+MOD(A1,100)-MOD(B1,100)
その他の回答 (4)
- kagakusuki
- ベストアンサー率51% (2610/5101)
Excelのバージョンによっては、LEFT関数やRIGHT関数で数値データを処理すると、数値データではなく、文字列データとして扱われてしまう事があり、その場合には、そのままでは計算出来ない場合もあり得ます。 ですから、もし、ANo.2様の数式で上手く計算出来ない様な場合には、次の数式を試してみると良いと思います。 =(FLOOR(B1,100)-FLOOR(A1,100))*0.12+MOD(B1,100)-MOD(A1,100)
お礼
回答ありがとうございます。 アンケート収集の時に半角英数で回答してもらうつもりですが、もし文字列データとなってしまった場合はアドバイスいただいた件を試してみます。
- FEX2053
- ベストアンサー率37% (7991/21371)
#1さんのDATEDIF関数ですが、バグがあって「経過月数」の計算が正しくない事があるんです。式をテストしたわけじゃないので何とも言えませんが、条件的に引っ掛かりそうな気がします。実際にお使いになる場合は、以下のurlを確認された方が良いと思います。 http://www.niji.or.jp/home/toru/notes/50.html
お礼
ありがとうございます。 確認してみます。
- FEX2053
- ベストアンサー率37% (7991/21371)
このデータはどこにどんな形で入っているんですか? とりあえずExcelシート上で、セルA1とセルB1に、A1の方が必ずB1より後、という形で入っているとするならば。 =(LEFT(B1,4)-LEFT(A1,4))*12+RIGHT(B1,2)-RIGHT(A1,2) 日付シリアルなどを使わずに、単純に前半の差を12倍して、後半の差に足すだけでオッケーの筈です。
お礼
ご回答ありがとうございます。 上記の計算式で行うと、回答は-(マイナス)で出てきてOKですか?
- mu2011
- ベストアンサー率38% (1910/4994)
一例です。 =DATEDIF(TEXT(B1,"0000!/00")*1,TEXT(A1,"0000!/00")*1,"m")
お礼
早速の回答ありがとうございました。 きちんと月数で出てきました。
お礼
回答ありがとうございます。 こちらで計算してみようと思います。 ありがとうございます。