Board logo

標題: 歲數,月數?! [打印本頁]

作者: myleoyes    時間: 2011-12-6 12:03     標題: 歲數,月數?!

各位前輩你們好!
         前輩!!A1=1959/1/1是小明的出生年月日
               B1=ROUNDDOWN(DATEDIF(A1,TODAY(),"D")/365,0)
               所以得到是52.96數值因此B1為52歲
               但是當時間走到12/18日以後B1就會變成53歲
               顯然小弟用的公式有誤
               再則又如何在C1表示為12個月
               因為現在小明是52歲又12個月
               也就是說依據A1的日期到今天的日期
               B1來表示它的歲數
               C1來表示它的月數
               請問公式如何?
               請知道的前輩,不吝賜教謝謝再三!!
作者: oobird    時間: 2011-12-6 12:29

年:=DATEDIF(A1,TODAY(),"Y")
月:=DATEDIF(A1,TODAY(),"ym")
作者: myleoyes    時間: 2011-12-6 21:33

回復 2# oobird
oobird前輩你好!
            前輩!謝謝!!
             原來求日D1=DATEDIF(A1,TODAY(),"md")不能用D1=DATEDIF(A1,TODAY(),"yd")
            這是小弟亂拼出來,這個函數在說明搜尋為何找不到呢?
作者: myleoyes    時間: 2011-12-7 08:42

各位前輩!!當E1=2011/5/26日是剛好滿26年資歷
               如果要滿30年資歷時,F1=E1+(30-26)*365        
               請問F1公式如何?
               請知道的前輩,不吝賜教謝謝再三!!
作者: ANGELA    時間: 2011-12-7 09:51

=EDATE(E1,4*12)
作者: myleoyes    時間: 2011-12-7 20:51

回復 5# ANGELA
ANGELA前輩!
                 前輩!謝謝再三!!
作者: myleoyes    時間: 2012-1-7 12:03

回復 3# myleoyes
各位前輩你們好!
        續前題
        A10=DATEDIF(DATE(YEAR(TODAY())-1,12,16),TODAY(),"D")
        因為用程式跑所以A10這個公式,並不適當請問有何公式替代?
        請知道的前輩,不吝賜教謝謝再三!!
作者: jarodz    時間: 2012-1-7 12:37

回復 7# myleoyes


只要在每個公式前面加Application.WorksheetFunction就可以了
如Application.WorksheetFunction.DATEDIF
作者: myleoyes    時間: 2012-1-7 21:43

回復 8# jarodz
前輩!小弟愚昧不懂你的方式
        再附有程式的檔案
        請不吝賜教謝謝再三!!
作者: register313    時間: 2012-1-7 23:51

本帖最後由 register313 於 2012-1-9 12:00 編輯

回復 7# myleoyes


A8=DATEDIF(A6,TODAY(),"Y")
A9=DATEDIF(A6,TODAY(),"YM")
A10=IF(TODAY()=EOMONTH(TODAY(),0),IF(A6=EOMONTH(A6,0),0,DAY(EOMONTH(A6,0))-DAY(A6)),IF(DAY(TODAY())>=DAY(A6),DAY(TODAY())-DAY(A6),EOMONTH(A6,0)-A6+DAY(TODAY())))
作者: Hsieh    時間: 2012-1-8 00:18

回復 9# myleoyes


    A10=DATEDIF(DATE(YEAR(TODAY())-1,12,DAY(A6)),TODAY(),"D")
作者: register313    時間: 2012-1-8 00:29

回復 12# Hsieh


    [attach]9137[/attach]
作者: Hsieh    時間: 2012-1-8 16:20

本帖最後由 Hsieh 於 2012-1-9 10:00 編輯

回復 13# register313

A10=DATEDIF(EDATE(A6,DATEDIF(A6,TODAY(),"M")),TODAY(),"D")

DATEDIF函數在計算日數上差異較大
A10=TODAY()-EDATE(A6,A8*12+A9)
作者: myleoyes    時間: 2012-1-8 23:09

回復 10# jarodz
         前輩!謝謝再三!!
作者: myleoyes    時間: 2012-1-8 23:14

回復 14# Hsieh
   偶像前輩!  謝謝再三!!
    register313 前輩!
              技高又細心謝謝再三!!
        兩位前輩!小弟另有延續問題請教
        再附的檔案說明
        請不吝賜教謝謝再三!!
作者: register313    時間: 2012-1-9 12:45

回復  Hsieh
   偶像前輩!  謝謝再三!!
    register313 前輩!
              技高又細心謝謝再三!!
  ...
myleoyes 發表於 2012-1-8 23:14


DATEDIF有小bug,因此為隱藏函數
以下為個人之結論(可再請教論壇上各位大大)
年  A8=DATEDIF(A6,TODAY(),"Y")
月  A9=DATEDIF(A6,TODAY(),"YM")
日  A10=IF(TODAY()=EOMONTH(TODAY(),0),IF(A6=EOMONTH(A6,0),0,DAY(EOMONTH(A6,0))-DAY(A6)),IF(DAY(TODAY())>=DAY(A6),DAY(TODAY())-DAY(A6),EOMONTH(A6,0)-A6+DAY(TODAY())))

是否先依上列公式先作修正
作者: myleoyes    時間: 2012-1-10 10:57

回復 17# register313
前輩!!辛苦囉!謝謝再三!!
         A10=DATEDIF(EDATE(A7,DATEDIF(A7,TODAY(),"M")),TODAY(),"D")
         A10=TODAY()-EDATE(A7,A8*12+A9)
         經測試在每年2月份皆會出現錯
         A10=DAY(EOMONTH(A7,0))-DAY(A7)+DAY(TODAY())與前輩的公式則正確
         B9=DATEDIF(DATE(YEAR(B7)-1,12,DAY(B7)),B7,"YM")
         B10=DATEDIF(EOMONTH(B7,-1),B7,"D")
         C10=IF(MONTH(B7)=MONTH(B7),DAY(EOMONTH(B7,0))-B10)
         以上是小弟找到的答案不知是否有誤還請各位前輩指導謝謝大家
作者: register313    時間: 2012-1-10 16:35

回復 18# myleoyes

A8=DATEDIF(A7,TODAY(),"Y")
A9=DATEDIF(A7,TODAY(),"YM")
A10=IF(TODAY()=EOMONTH(TODAY(),0),IF(A7=EOMONTH(A7,0),0,DAY(EOMONTH(A7,0))-DAY(A7)),IF(DAY(TODAY())>=DAY(A7),DAY(TODAY())-DAY(A7),EOMONTH(A7,0)-A7+DAY(TODAY())))

B8=DATEDIF(A7,B7,"Y")
B9=DATEDIF(A7,B7,"YM")
B10=IF(B7=EOMONTH(B7,0),IF(A7=EOMONTH(A7,0),0,DAY(EOMONTH(A7,0))-DAY(A7)),IF(DAY(B7)>=DAY(A7),DAY(B7)-DAY(A7),EOMONTH(A7,0)-A7+DAY(B7)))

C8=DATEDIF(A7,C7,"Y")
C9=DATEDIF(B7,C7,"M")
C10=DAY(EOMONTH(B7,0))-B10
作者: myleoyes    時間: 2012-1-11 21:04

回復 19# register313
前輩!!哇非常的感恩真是辛苦囉!謝謝再三!!
         C10=IF(C7=EOMONTH(C7,0),IF(B7=EOMONTH(B7,0),0,DAY(EOMONTH(B7,0))-DAY(B7)),IF(DAY(C7)>=DAY   (B7),DAY(C7)-DAY(B7),EOMONTH(B7,0)-B7+DAY(C7)))
         這樣子才正確        
          D7=SUM(D6*C9,D6/DAY(EOMONTH(C7,0))*C10)




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)