暂停追踪工具 – 创build一个单元格值,在特定的一年中按指定数量递增
我正在使用MS Excel 2007,我正在创build一个工作表来帮助员工跟踪带薪休假(PTO)。 在特定date,员工可以使用的小时数每月增加两个特定小时数。 特别是每个月的第二和第十七。 我在一个单元里放了个小时加上每个支付周期可以说A1,我把= today()函数放在另一个单元里可以说B1,而在另一个单元里可用的总小时数就可以说C1。 我希望在这个单元格(C1)的总小时数中,当= today()单元格达到特定的月份和date时,每个单元格的第二个值和每个月的第十七个单元格中的值相加。 例如:
每位员工在每个付款期间获得5个小时的PTO。 工资期在每个月的2日和17日结束。 可以说,今天的date是2011年3月2日。计算需要从2011年1月1日至今的每一个开始时期的每个支付期间累计所有小时数。 3月2日的总数等于25.在17号马赫上,数字将增加5(A1的数值),总数为30,这将持续到年底。
我希望这是有道理的 – 我不是一个真正的程序员types的人。
这是一个超级用户问题,而不是一个编程问题,但…
这是下面的例子所示。 截至2011年1月1日,这个人已经过了40多个小时。这个人至今已经用了16个小时。 E2是所有繁重的工作。 它决定excel打开的时间是否大于17日(可能应该大于等于),然后从中得到2个实例,因为有2个实例发生了。 如果date> 2(可能应该大于等于2),那么单独考虑*月数(忽略当前的),然后join结转并抽出使用的时间。
复制公式:
=IF(DAY(NOW())>=17,I3*2,IF(DAY(NOW())>=2,I3))+((MONTH(NOW())-1)*I3*2)+D2-F2
你可以用一个公式做到这一点:
=hrs*(2*(MONTH(today)-1)+IF(DAY(today)>=day_one,1,0)+IF(DAY(today)>=day_two,1,0))
在你的例子中:
hrs = 5 day_one = 2 day_two = 17 today = today's date
使用你给出的单元格引用,它看起来像这样:
=$A$1*(2*(MONTH($B$1)-1)+IF(DAY($B$1)>=2,1,0)+IF(DAY($B$1)>=17,1,0))
当然,如果您愿意,可以直接在公式中使用TODAY()函数:
=$A$1*(2*(MONTH(TODAY())-1)+IF(DAY(TODAY())>=2,1,0)+IF(DAY(TODAY())>=17,1,0))
这是如何打破:
-
MONTH(today)
返回代表当前月份的1到12之间的数字 -
2*(MONTH(today)-1)
返回本月前所有月份通过的全部工资期数(因为每月只有两笔) -
DAY(today)
返回当月的当天 -
+IF(DAY(today)>=number,1,0)
只要当前月份的date大于或等于+IF(DAY(today)>=number,1,0)
就会为总数加1。 -
2*(MONTH(today)-1)+IF(DAY(today)>=day_one,1,0)+IF(DAY(today)>=day_two,1,0)
给你总的支付期数截至今天的date已过 - 然后用
=hrs*(...)
包装整个事物,然后给出今天总的可用小时数