我在 知識團 發表過這樣的文章,複製過來給你。
Days360函數, excel中專門用來計算生日的函數
算生日是生活中常需要做的事,但在excel檔案中要去尋找今天生日的壽星,要去算哪些人已經足多少歲?卻也不是直截了當就可以算得出來。
因為譬如今天5/10, 你沒辦法用「尋找」去找不同年份的5/10, 也不能直接用相減的,因為會遇到很多閏年的問題讓你算不準。
所以,excel的設計者就為此特別設計了一個函數,Days360函數,我稱它為「專門用來算生日的函數」。
對於excel日期 的計算,不熟的人請先讀一下這篇:
剖析excel日期、時間、星期的核心
http://tw.group.knowledge.yahoo.com/excel-learn/article/view?aid=4
然後,大家就知道日期是可以相減的。
今天的日期的函數是 today(), today()-A1得到的就是A1和今天差了幾天?
假如沒有閏年,我們可以除以365, 能夠整除的就是今天生日。但中間有很多閏年,就沒辦法這樣算了。
「一年」到底是幾天?數學上沒有一個標準值,它有時是365天,有時是366天.
但生日是哪一天?足歲了沒有?對於「月」和「日」則都要算到精準才行。
這時就要請Days360這個函數出來的。這個函數顧名思義就是「每年不管是平年或是閏年,都一律以360天來算成一年」。乍看之下,你會跳起來,這樣太不精確了。
其實不然,因為這樣一來我要算「年」可以算得很準。年很準之後除下來的尾數,幾月幾日也可以很準。
所以,在算生日的時候,用 days360( today(), A1), 就可以很精確的掌握到 幾年+很精確的幾個月又幾日?
除以360, 就可以很精確的得到是否整除?算它的餘數也可以算出還有幾天?或是已經過了幾天?
Mod(days360(today(), A1),360)
=0, 今天生日
=3 生日過了三天
=359, 還有一天才生日
希望對大家有幫助。