|
6#
楼主 |
发表于 2005-11-10 23:54:00
|
只看该作者
以下是引用红池坝在2005-11-5 22:38:00的发言:
似乎无法再精减了,讲究着用吧。稍稍修改了一下,变成:
=IF(DATEDIF(D5,E5,"m"),DATEDIF(D5,DATE(YEAR(D5),MONTH(D5)+1,1),"d")*C5/DAY(DATE(YEAR(D5),MONTH(D5)+1,0))+(DATEDIF(D5,E5,"m")-1)*C5+DAY(E5)*C5/DAY(DATE(YEAR(D5),MONTH(D5)+1,0)),(DAYS360(D5,E5)+1)*C5/DAY(DATE(YEAR(D5),MONTH(D5)+1,0)))
1、改条件判断:
month(e5)=month(d5) 为:
datedif(d5,e5,"m")
看起来要短点,不过结果刚好相反,当你的条件为1时,我的刚好为0(Excel中,1为真,0为假),所以,后面两部分的位置要调整一下。
2、改中间间隔的月数:
(MONTH(e5)-1-MONTH(d5) 为:
(DATEDIF(D1,E1,"m")-1)
你的如果跨年就完了,比如2005-11-25到2006-1-10就出问题了
3、改上岗月的在岗天数:
(DAY(DATE(YEAR(d5),MONTH(d5)+1,0))-DAY(d5)+1) 为:
datedif(d5,DATE(YEAR(d5),MONTH(d5)+1,1),"d")
也是看起来短些,因为你原来的在乘后面的日工资的时候必须在两边加个括号,而使用Datedif()就不必要这两个括号了
[em01]
先谢谢版主啦
不过有个问题,例如datedif(2005-5-20,2006-1-19,"m")-1 计算结果是 7
而datedif(2005-5-20,2006-1-20,"m")-1 计算的结果的是 8
显然他是从本月20日到下月19日 计算为一个月
"Y"
一段时期内完整的年数。
"M"
一段时期内完整的月数。
"D"
一段时期内的天数。
"MD"
start_date 和 end_date 之间相差的天数。忽略日期的月数和年数。
"YM"
start_date 和 end_date 之间相差的月数。忽略日期的天数和年数。
"YD"
start_date 和 end_date 之间相差的天数。忽略日期的年数。
我想请问一下 用什么办法能实现 只忽略日期的天数 (我就想要结果是 8 啊 嘿嘿)
期待版主早点为我答复哦 [em07]
[此贴子已经被作者于2005-11-10 15:58:47编辑过]
|
|