首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >休假追踪工具-创建在一年中的特定日期按指定数量递增的像元值

休假追踪工具-创建在一年中的特定日期按指定数量递增的像元值
EN

Stack Overflow用户
提问于 2011-12-08 02:14:10
回答 2查看 2.8K关注 0票数 1

我正在使用MS Excel2007,并且正在创建一个帮助员工跟踪带薪休假(PTO)的工作表。员工每月两次在特定日期使用递增的特定时数的小时数。特别是每个月的2号和17号。我将每个支付周期相加的小时数放在一个单元格中,假设今天,我将= A1 ()函数放在另一个单元格中,假设B1,还有一个单元格中可用的总小时数,比方说C1。我希望总小时数可用单元格(C1)中的值按我在单元格A1中指定的数字递增,当=today()单元格达到该特定月份和日期时,每个月的2号和17号。例如:

一名员工在每个支付期获得5小时的PTO。支付期在每月2号和17号结束。假设今天的日期是2011年3月2日。计算需要将每个支付期从年初2011年1月1日到今天的所有累计时数相加。3月2日的总数将等于25美元。在17马赫时,这个数字将增加5(A1中的值),总数将是30。这种情况将持续到今年年底。

我希望这是有意义的-我不是一个真正的程序员类型的人。

EN

回答 2

Stack Overflow用户

发布于 2011-12-08 02:31:03

你可以用一个公式来完成所有的事情:

代码语言:javascript
复制
=hrs*(2*(MONTH(today)-1)+IF(DAY(today)>=day_one,1,0)+IF(DAY(today)>=day_two,1,0))

在您的示例中:

代码语言:javascript
复制
hrs = 5
day_one = 2
day_two = 17
today = today's date

使用您给出的单元格引用,它将如下所示:

代码语言:javascript
复制
=$A$1*(2*(MONTH($B$1)-1)+IF(DAY($B$1)>=2,1,0)+IF(DAY($B$1)>=17,1,0))

当然,如果您愿意,也可以直接在公式中使用can ()函数:

代码语言:javascript
复制
=$A$1*(2*(MONTH(TODAY())-1)+IF(DAY(TODAY())>=2,1,0)+IF(DAY(TODAY())>=17,1,0))

下面是它的分解方式:

  1. MONTH(today)返回一个介于1和12之间的数字,表示当前month
  2. 2*(MONTH(today)-1)返回在这个月之前的所有月份中已经过去的整个支付周期的数目(由于在每个month)
  3. DAY(today)返回中恰好有两个,所以month
  4. +IF(DAY(today)>=number,1,0)的当前日期将使总数加1,只要当月的当前日期大于或等于number.
  5. 2*(MONTH(today)-1)+IF(DAY(today)>=day_one,1,0)+IF(DAY(today)>=day_two,1,0),您就会得到截至今日date
  6. Wrapping的总支付期数,然后=hrs*(...)中的全部内容将提供截至今日

的总可用小时数

票数 1
EN

Stack Overflow用户

发布于 2011-12-08 02:31:47

这更像是一个超级用户的问题,而不是一个编程问题,但是...

这就是下面的例子所显示的。截至2011年1月1日,该人员的工作时间超过40小时。今年到目前为止,这个人已经使用了16个小时。E2是完成所有繁重任务的地方。它确定打开excel的时刻是否有>17天(可能应该是>=),然后采用rate *2,因为它们获取时间的地方已经发生了2个实例。如果日期大于2(可能应该是>=2),那么只取利率*月数(忽略当前月数),然后添加结转并得出所用的时间。

复制公式:

代码语言:javascript
复制
=IF(DAY(NOW())>=17,I3*2,IF(DAY(NOW())>=2,I3))+((MONTH(NOW())-1)*I3*2)+D2-F2

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8420344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档