看板 Office 關於我們 聯絡資訊
軟體:Excel 2013 版本:檔案為97-2003.xls格式 正在處理年資問題,但EXCEL計算結果對不起來,上板求教~ A到職日(有上班): 88/02/11 B留停起(未上班): 94/10/01 C復職日(有上班): 97/05/01 D結算日(有上班):106/10/31 我的算法如下: 全年資:D-A+1=18年8個月21天 年月算法DATEDIF(A,D+1,"Y/YM") 日算法D+1-DATE(YEAR(A)+18年,MONTH(A)+8月,DAY(A)) 留停前:B-A = 6年7個月20天 年月算法DATEDIF(A,B,"Y/YM") 日算法B-DATE(YEAR(A)+6年,MONTH(A)+7月,DAY(A)) 留停期:C-B = 2年7個月 0天 年月算法DATEDIF(B,C,"Y/YM") 日算法C-DATE(YEAR(B)+2年,MONTH(B)+7月,DAY(B)) 復職後:D-C+1= 9年6個月 0天 年月算法DATEDIF(C,D+1,"Y/YM") 日算法D+1-DATE(YEAR(C)+9年,MONTH(C)+6月,DAY(C)) (日算法是為了避開DATEDIF(起,訖,"MD")的bug) 理論上(全年資-留停期)=(留停前+復職後),或(全年資)=(留停前+留停期+復職後); 但從EXCEL計算結果怎麼算全年資都比(留停前+留停期+復職後)多1天…… 請問我的算法是哪裡出了問題呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.111.13.113 ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1503567491.A.949.html
soyoso: 覺得是畸零大小月的問題,d為10/31,年資的日則是10/11~ 08/24 18:13
soyoso: 10/31為21天,而B留停日5/1未上班,算到4/30,日則為4/11~ 08/24 18:13
soyoso: 4/30為20天,d於大月(31天)時會產生1日落差,如於小月(30 08/24 18:13
soyoso: )時則會相同,如d為9/30時https://i.imgur.com/aehbjE0 08/24 18:14
soyoso: 試上則為相同 08/24 18:15
soyoso: 如將b留停改為11/1算到10/31,a,c,d同原文資料,測試應會 08/24 18:17
soyoso: 相同https://i.imgur.com/ayYLoa3 08/24 18:17
qpowjohn: 是閏年問題? 08/25 16:50
MagusLuLu: 感謝soyoso,確實是大小月造成的差異。 09/12 14:39