暂停追踪工具 – 创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)) 

这是如何打破:

  1. MONTH(today)返回代表当前月份的1到12之间的数字
  2. 2*(MONTH(today)-1)返回本月所有月份通过的全部工资期数(因为每月只有两笔)
  3. DAY(today)返回当月的当天
  4. +IF(DAY(today)>=number,1,0)只要当前月份的date大于或等于+IF(DAY(today)>=number,1,0)就会为总数加1。
  5. 2*(MONTH(today)-1)+IF(DAY(today)>=day_one,1,0)+IF(DAY(today)>=day_two,1,0)给你总的支付期数截至今天的date已过
  6. 然后用=hrs*(...)包装整个事物,然后给出今天总的可用小时数