[[20031016195147]] 『45.6才とか3年5ヶ月と表示したい』(まきりん) ページの最後に飛ぶ

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

 

『45.6才とか3年5ヶ月と表示したい』(まきりん)

日付の計算

 日付の表し方について教えてください。
 Datedifで、得た日数を年に変更したいのですが
 表示を例えば
 45.6才というように、小数以下第一位まで含めた数値に直接直したいのですが
 こんな事可能でしょうか?
 もう一つ、3年5ヶ月というのは、ムリでしょうか?
 datedifの設定で年数のみ、残りの月数のみ、の設定が可能なんですが
 平均をとった値を直したいので、各々にdatedifで設定すると
 平均がズレますよね??あれっ?ズレに上手く平均してくれるのかなぁ?
 平均するなら、日数じゃなきゃ。と思ったのですが・・・。
 その辺りについても、分かる方教えてください。
 スイマセン、宜しくお願いします。


 上記、補足ですが
 45.6才は日数で平均をとった値を365で割って、小数点第一位で四捨五入し
 3年5ヶ月はセルを年と月に分けて、年には365で割って、正数のみ表示し
 月には、平均値から年のセルに365を掛けた値を引いて、さらに30で割った値を
 四捨五入しています。
 何だか、くどくどした説明になってしまいました。
 式が長くなってしまうので、便利な関数とか別の方法があれば
 是非教えて欲しいと思いましたので、登校しました。
 ちなみに、上記の考え方はあっていますか・・・?
 算数の知識も少々欠けておりまして、ちょっと不安になってきました。(笑)
 ご助言宜しくお願いします。(まきりん)


 A1に対してB1にDATDIF(A1,TODAY(),"y")で年、DATDIF(A1,TODAY(),"ym")で月が求まりますので、
B1に =DATEDIF(A1,TODAY(),"y")+DATEDIF(A1,TODAY(),"ym")/12 としコピーします。
この値の平均をB20に =AVERAGE(B1:B19)で求めます。
この平均値仮に(B20)を○才○ヶ月に変換する式は =INT(B20)&"才"&ROUND(MOD(B20,1)*12,0)&"ヶ月"で表示させます。
 (シニア)

 なるほどぉ〜、"ym"を12ヶ月で割ると1年未満の月数が小数点以下で出るのか。
 言われてみると、納得!!ですが、なかなか思いつきませんでした。
 シニアさん、ありがとうございます。
 でも、少し問題が・・・。
 スイマセン、説明不足だったんですが
 VBAでユーザー関数を作る際に使っている関数なのでdatediffなんです。
 びみょ〜に設定が違っていて、なんと"ym"の設定がないんです!!困りました・・・。
 何か上手い方法ありませんか?
 今回質問の表示方法については理解できたので
 この件(VBA用のdatediff関数の設定値について)は、新たな問題なので
 新規にスレッドを立て質問しますので、宜しくお願いします。
 (まきりん)


コメント返信:

[ 一覧(最新更新順) ]


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