[[20030307092601]] 『12ヶ月表記を1年とするには?』(さくさく) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『12ヶ月表記を1年とするには?』(さくさく)

「DATEDIF」関数で2つの期間の年数(○年○ヶ月となるように設定)をもとめたのですが、

1年未満の年数は「0年12ヶ月」と表示されてしまうので、それを「DATEDIF」関数をこわさずに12ヶ月を超えたら「年」の方へ繰り上げるように設定するにはどうしたらよいでしょうか?


 DATEIFの関数は月数を求めて、12以上であれば○年とするような式を指定しているのでしょうか?

 もしそうならば比較が 12を含まず、13以上の判定になっていませんか?

 開始日がA1、終了日がB1 にデータがあると仮定して、

 表示させたいセルに =DATEDIF(A1,B1,"Y")&"年"&DATEDIF(A1,B1,"YM")&"ヶ月"

 と指定しても、「1年0ヶ月」と表示されます。(すーさん)


すーさん様ありがとうございます。

実は、計算しないといけない年数が、特殊でして・・。

例)S50.3〜H15.1までの年数の表示

『S50.3(書式設定上では『西暦.月.日』でになるようんに設定しています)〜H15.1』までの

年数を「かぞえ」で表示しなければいけないので、

=DATEDIF(A1,B1,"Y")&"年"&DATEDIF(A1,B1,"YM")+1&"ヶ月"と指定しています。

それがいけないのでしょうか?『+1』をつけないでかぞえの年数を

出す方法はあるのでしょうか?    (さくさく)


 上記の例でしたら、「27年10ヶ月」となるところを「28年」と表示させたいということですか?

 それでしたら、月数が「0ヶ月」以外のときに年数を+1すればよいのですから、

 =IF(DATEDIF(A1,B1,"YM")=0,DATEDIF(A1,B1,"Y"),DATEDIF(A1,B1,"Y")+1)&"年"

 と指定すればよいのではないでしょうか?(すーさん)


例の出し方と説明のしかたが悪くて申し訳ありません。

『1年12ヶ月』だったら『2年』・『27年12ヶ月』だったら『28年』となるように

『11ヶ月』まではそのままで、『12ヶ月』の場合のみ年数に繰り越すようにしたいのです。

何度もすみませんが宜しくおねがいします。(さくさく)


 それでしたら、DATEDIF関数では「0年12ヶ月」は自動的に「1年0ヶ月」になりますので、

 「0ヶ月」のときにのみ「年」だけの表示にすればよいのですから、

 =IF(DATEDIF(J35,K35,"Ym")=0,DATEDIF(J35,K35,"Y")&"年",DATEDIF(J35,K35,"Y")&"年"&DATEDIF(J35,K35,"YM")&"ヶ月")

 と指定すればできます。

 ただ、月での比較となりますので、仮に 2003/3/1〜2003/3/31 の場合は「0年」となります。

 これを「0年1ヶ月」と表示するには、判断のIF文を追加しなければならないと思います。(すーさん)


すーさん様回答ありがとうございます。

おかげできちんと表示されました。

もう一つ質問なのですが・・この関数でだした年数の合計をだしたいのですが・・

どのようにすればよいのでしょうか?


 集計の必要があるのでしたら、"年"をつけたのでは集計できないと思いますので、

 数字だけにして、"年"を隣の列にすることはできるのでしょうか?

 そうすれば縦集計で、SUM(開始セル番号:終了セル番号)で合計年数を出せます。(すーさん)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.