• ベストアンサー

エクセルで年月の合計を求める関数を教えてください。

  A列     B列       C列 2000/4/1  2002/3/31   2年 2002/4/1  2004/9/30   2年6ヶ月 2005/4/1  2005/6/30   3ヶ月 として,C列の関数は(=TEXT(DATEDIF(A1,BI,"Y"),"0年;;")&TEXT(DATEDIF(A1,B1,"YM"),"0ヶ月;;")としています。 そこで,C列のみで(空白期間があるので)年月を合計する関数を教えてください。 (上記の例の場合,4年9ヶ月となるように) よろしくお願いします。

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

  • ベストアンサー
  • fmajin
  • ベストアンサー率61% (75/122)
回答No.3

実用性を考えれば、期間の年と月を2列に分けるという方法もあるのではないでしょうか。 たとえば、C列は「=DATEDIF(A1,B1,"Y")」で表示形式を「0"年";;」とし、D列は「=DATEDIF(A1,B1,"YM")」で表示形式を「0"ヶ月";;」とする。 こうすれば年合計は「=SUM(C:C)+INT(SUM(D:D)/12)」、月合計は「=MOD(SUM(D:D),12)」で、表示形式も同様に設定すればOKですよね。罫線の引き方とか工夫すれば、元の表と見た目もあまり変わらないし、よろしかったら検討してみてください。

pires7
質問者

お礼

思ったとおりにできました。どうもありがとうございました。

その他の回答 (2)

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

C列が文字列の為、AB列で計数しましたが如何でしょうか。 =TEXT(SUMPRODUCT(DATEDIF(A1:A10,B1:B10+1,"Y"))+INT(SUMPRODUCT(DATEDIF(A1:A10,B1:B10+1,"YM"))/12),"0年;;;")&TEXT(MOD(SUMPRODUCT(DATEDIF(A1:A10,B1:B10+1,"YM")),12),"0ヶ月;;;")

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんにちは。 No.1723754『エクセルで年月の合計の関数を教えてください。 』の#3で回答したWendy02です。一言、コメントぐらいはつけてくださいね。(^^; =TEXT(INT(SUMPRODUCT(INT(DATEDIF(A1:A3,B1:B3,("M"))))/12),"0年;;")&TEXT(MOD(SUMPRODUCT(INT(DATEDIF(A1:A3,B1:B3,("M")))),12),"0ヶ月;;") 2000/4/1  2002/3/31   2年 ←2年にはなりません。1年と11ヶ月です。 現在は、片入れ計算になっていますから、両入れ計算の場合は、B列側に、以下のように、1日足さなくてはなりません。 =TEXT(INT(SUMPRODUCT(INT(DATEDIF(A1:A3,B1:B3+1,("M"))))/12),"0年;;")&TEXT(MOD(SUMPRODUCT(INT(DATEDIF(A1:A3,B1:B3+1,("M")))),12),"0ヶ月;;") >C列のみで(空白期間があるので)年月を合計する関数を教えてください。 というのでしたら、不十分(年のみの計算が抜けている)ですが、このような計算になります。 =SUM(IF(ISERROR(FIND("年",C1:C3)-1),0,LEFT(C1:C3,FIND("年",C1:C3)-1)*1))+INT(SUM(IF(ISERROR(FIND("年",C1:C3)),SUBSTITUTE(C1:C3,"ヶ月","")*1,SUBSTITUTE(MID(C1:C3,FIND("年",C1:C3)+1,4),"ヶ月","")*1))/12)&"年"&MOD(SUM(IF(ISERROR(FIND("年",C1:C3)),SUBSTITUTE(C1:C3,"ヶ月","")*1,SUBSTITUTE(MID(C1:C3,FIND("年",C1:C3)+1,4),"ヶ月","")*1)),12)&"ヶ月" なお、この式は、配列数式ですから、配列確定が必要になります。このように、文字列での計算の場合は、ユーザー定義関数というもののほうが便利です。

pires7
質問者

お礼

ありがとうございます。頑張ってみます。