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

エクセルで2つの日付から年月数を求める関数(=TEXT(DATEDIF(A1,BI,"Y"),"0年;;")&TEXT(DATEDIF(A1,B1,"YM"),"0ヶ月;;")で出た期間の合計を出す関数を教えてください。(たとえば,2年6ヶ月と1年3ヶ月を足し,3年9ヶ月となるように)
よろしくお願いします。

A 回答 (4件)

=TEXT(DATEDIF(A1,BI,"Y"),"0年;;")&TEXT(DATEDIF(A1,B1,"YM"),"00ヶ月;;")


で月を2桁表示なら
=TEXT(SUMPRODUCT(SUBSTITUTE(SUBSTITUTE(E7:E8,"年",""),"ヶ月","")*1),"0年00ヶ月")
で3年09ヶ月になります。ただし12ヶ月以上になる場合に繰上げされません。

年=DATEDIF(A1,BI,"Y")と月=DATEDIF(A1,B1,"YM")を分けてもらえれば、
年=SUM(年の範囲)+INT(SUM(月の範囲)/12)
月=MOD(SUM(月の範囲),12)
で計算できます。
※「年」「ヶ月」はセルの書式設定の表示形式をユーザー定義で「0年;;」「0ヶ月;;」で表示してください。
    • good
    • 2
この回答へのお礼

ありがとうございました。でも,うまくいきません。説明が足りなかったのかと思いますので,いったん締め切りさせていただきます。

お礼日時:2005/10/20 14:04

こんにちは。


>(たとえば,2年6ヶ月と1年3ヶ月を足し,3年9ヶ月となるように)

日付の差と差を合計するというのは、期間が重なる場合は、重複していますから、以下のような場合は本来できませんが、単に足し算の場合は、このようにできるかと思います。なお、日付まで出す場合は、また違ってきます。

   A      B
1 1999/05/01  2001/12/21
2 1998/10/01  2002/06/03


=INT((B1-A1+B2-A2)/365)&"年"&INT(MOD((B1-A1+B2-A2),365)/30)&"ヶ月"
    • good
    • 5

こんにちは~



作業列を使ってもよろしければ以下の方法をお試しください。

ここでは例として D列を作業列にします。

A列が開始日、B列が終了日
1 ~ 2行目に質問にある数式が入っているとして、
◆ D1セルに
=IF(COUNT(A1:B1)<2,"",DATEDIF(A1,B1,"M"))

と入れて、D2にコピー( それぞれの期間の月数が表示されます )

◆ 期間の合計を出すセルに
=INT(SUM(D1:D2)/12)&"年"&MOD(SUM(D1:D2),12)&"ヶ月"

または、質問にある数式のように 0年とか 0ヶ月は非表示にしたいなら、
=TEXT(INT(SUM(D1:D2)/12),"0年;;")&TEXT(MOD(SUM(D1:D2),12),"0ヶ月;;")

と入れてください。
D1:D2 の部分( 2ヶ所 )は、実際の表に合わせて変更してください。

作業列が目障りなら非表示にしてください。

この回答への補足

とりあえずこの方法でやってみます。

補足日時:2005/10/20 13:09
    • good
    • 1
この回答へのお礼

ありがとうございます。でも,うまくいきませんでした。。。
やり方がわるいんですかね~

お礼日時:2005/10/20 13:23

この式では、文字列に変換した後なので関数一発で変換は難しいと思います。



ちょっと面倒くさいですが、簡単な方法として、
A1-->開始日,B1-->終了日と仮定して

C1=DATEDIF(A1,BI,"Y"
D1=DATEDIF(A1,B1,"YM")
E1=TEXT(C2,"0年;;")&TEXT(D2,"0ヶ月;;")

と分ければ計算できるのではないでしょうか

この回答への補足

できれば,分けずに計算できる方法がないかと思いまして。

補足日時:2005/10/20 13:06
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A