プロが教える店舗&オフィスのセキュリティ対策術

Excel2007です。
年月の差を求めたいのですが
入力の方法と計算式を教えてください。

5年と3年2ヶ月の差を1年2ヶ月と計算したい。
文字列として入力すると計算ができません。
どのように入力して、どのように計算式又は関数を使えばよいか教えてください。

わかり難い質問かも知れませんがよろしくお願いします。

A 回答 (3件)

通常は年齢計算などで使われる式を使うことでしょう。


例えばA1セルに誕生日、B1セルに評価の年月日とでも入力し、それぞれのデータがA2セルおよびB2セルに入力されているとします。
その時の年齢は次のような式で何年年カ月と求めることができます。
=DATEDIF(A2,B2,"Y")&"年"&DATEDIF(A2,B2,"YM")&"ヵ月"
このような式を使うことのできるのはA2セルに例えば1980/1/21,B2セルには2009/10/14のように年月日が入力されていることが必要です。
お示しのケースではA1セルに5年、B1セルに3年2カ月と入力されている状態でその差を求めるのですから上記の式など全く関係ありませんね。
次のような式になるでしょう。
=DATEDIF(IF(ISERROR(FIND("カ月",B1)),SUBSTITUTE(B1,"年","/1/1"),SUBSTITUTE(SUBSTITUTE(B1,"年","/"),"カ月","/1"))*1,IF(ISERROR(FIND("カ月",A1)),SUBSTITUTE(A1,"年","/1/1"),SUBSTITUTE(SUBSTITUTE(A1,"年","/"),"カ月","/1"))*1,"Y")&"年"&(DATEDIF(IF(ISERROR(FIND("カ月",B1)),SUBSTITUTE(B1,"年","/1/1"),SUBSTITUTE(SUBSTITUTE(B1,"年","/"),"カ月","/1"))*1,IF(ISERROR(FIND("カ月",A1)),SUBSTITUTE(A1,"年","/1/1"),SUBSTITUTE(SUBSTITUTE(A1,"年","/"),"カ月","/1"))*1,"YM")-1)&"カ月"
    • good
    • 0
この回答へのお礼

御礼遅れて申し訳ありません。
教えていただいた式複雑で齢70直前の老爺にはちょっと難しすぎます

他の方の式を検討させていただきます。

今後ともご指導ください。

お礼日時:2009/10/29 06:13

差は1年10ヶ月の間違いでは?



もし、入力の仕方自体を変えてもよいのであれば
5年を「5」年「0」ヶ月
3年2ヶ月を「3」年「2」ヶ月
のように年数と月数のみを数値で入力すれば計算は簡単になります。
A1を「5」(年)、B1を「0」(ヶ月)
C1を「3」(年)、D1を「2」(ヶ月)とすると
5年を
=A1*12+B1
で「60」(ヶ月)とし
3年2ヶ月を
=C1*12+D1
で「38」(ヶ月)とし
この二つの差を求めて、12で割って整数部分を取り出す
=INT(((A1*12+B1)-(C1*12+D1))/12)
で、差分の年数「1」(年)
この二つの差を求めて、12で割った余りを取り出す
=MOD((A1*12+B1)-(C1*12+D1),12)
で、差分の月数「10」(ヶ月)
が計算できます。

文字列のまま処理しようとするとかなり複雑になります。
A1に「5年」、B1に「3年2ヶ月」が文字列で入っているとすると
C列、D列を作業列として、C1に
=IF(ISERROR(FIND("年",A1)),0,VALUE(LEFT(A1,FIND("年",A1)-1)))*12+IF(ISERROR(FIND("ヶ月",A1)),0,IF(ISERROR(FIND("年",A1)),LEFT(A1,FIND("ヶ月",A1)-1),MID(A1,FIND("年",A1)+1,FIND("ヶ月",A1)-FIND("年",A1)-1)))
と入力してこれをD1にコピー&ペーストすると
C1がA1を月数に換算した「60」
D1がB1を月数に換算した「38」
になりますので、E1に
=INT((C1-D1)/12)&"年"&MOD(C1-D1,12)&"ヶ月"
とすれば、差分「1年10ヶ月」が計算できます。
なお、C1の式は
・A1の文字列から"年"という文字を探し、"年"より前の部分を数値化して12をかけて月数に換算したもの("年"の文字がなければ0)
・A1の文字列から"ヶ月"という文字を探し、"年"という文字があればその次から、なければ最初から"ヶ月"という文字までの部分を抜き出して数値化したもの("ヶ月"の文字がなければ0)
を足したものです。

この回答への補足

差は、1年10カ月です
齢70直前の前期高齢者、間違いにも気付いていませんでした。

補足日時:2009/10/29 06:17
    • good
    • 0
この回答へのお礼

お礼遅れて申し訳ありません。
やはり、月に直して計算する方法が良さそうですね。

今後ともよろしくご指導お願いします。

お礼日時:2009/10/29 06:16

こんな方法もあります



入力は
5年 => 500
3年2ヶ月 => 302
という様に、年は百の桁、月は十の桁で入力します
セルの書式設定のユーザー定義で
 0"年"00"ヵ月"
とします
図で
C列に
=IF(MOD(A1,100)<MOD(B1,100),A1-B1-88,A1-B1)
と、式を入れます
「Excel 年月の差を求めたい」の回答画像3
    • good
    • 0
この回答へのお礼

お礼遅れて申し訳ありません。

役に立ちました。

今後ともご指導よろしくお願いします。

お礼日時:2009/10/29 06:20

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