アプリ版:「スタンプのみでお礼する」機能のリリースについて

  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ヶ月となるように)
よろしくお願いします。

A 回答 (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ですよね。罫線の引き方とか工夫すれば、元の表と見た目もあまり変わらないし、よろしかったら検討してみてください。
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/10/21 09:53

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ヶ月;;;")
    • good
    • 0

こんにちは。



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)&"ヶ月"

なお、この式は、配列数式ですから、配列確定が必要になります。このように、文字列での計算の場合は、ユーザー定義関数というもののほうが便利です。
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/10/21 09:54

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