我已经为此工作了一段时间,并尝试了不同的样式...我需要开发一个跟踪电子表格(适用于 50 名员工),该电子表格将根据以下参数计算累积的休假时间和使用的休假时间:
* 在公司工作不到 3 年但超过 90 天周年纪念日的员工(他们开始累积)(对此还有一个警告...应计日是过去一个月的第一个月 90 天)[我在我的 excel 表上找到了这个 90 天的项目] 它将在:-每月 4 小时,在月底,如果他们可以继续使用 72 小时的最长休假时间,则可以继续使用 72 小时(如果他们可以继续使用 72 小时)
* 在公司工作超过 3 年但不到 6 年的员工结转之前的假期,并从这里开始累积:-每月 6.8 小时,在月底,他们可以存储的最大上限为 122.4 小时(但如果他们使用休假时间并低于 122.4 小时,他们可以继续累积高达 122.4 小时...)
* 员工 6 年及以上的公司进行了他们以前的假期,并开始从这里开始,从这里开始:-10 个小时一个月,在月底,最大上限为 180 小时,他们可以存储(但如果他们使用的休假时间和低于 180 小时,他们可以继续累积到 180 小时...)
& amp;是的,我需要能够扣除使用的休假时间。
有没有人有任何建议布局或公式,可以做这些功能的一部分?
我已经创建了一个测试表,并根据这些条件为第一,并开始在第二组规则(年 3 +)。
然而,当我在第一个政策上累积最多 72 小时时,如果他们使用假期并再次低于 72 小时上限,它就不再正确地累积。
我知道这是一个过于复杂的政策,但这是公司想要的,他们不会让步。。。。任何帮助或建议都值得赞赏。
下面是我在 90 天使用的公式:
=IF(F2<TODAY()-90, F2+90, "90 Day Period")
然后得到一个月的第一天后,我使用:
=IF(G2="90 Day Period","N/A",DATE(YEAR(G2),MONTH(G2)+1,1))
我尝试使用第一个规则的应计(但它有问题...):
=IF(N2="N/A","N/A",IF(N2<=36,MIN(72,((N2*4)-P2),72),(72-P2)))
对于第二条规则:
=IF(AND(N2>36,N2<=72),MIN(122.4,((N2-36)*6.8)+Q2-S2),0)
允许
列 A EmpName
列 B EntryDate
列 C 当前月份的天数
D 列在月底限制 Accruel 缓冲区
逐月重复列 C 和 D
实例
01-Sep-2013 01-Oct-2013
EmpName EntryDate spent buffer spent buffer ... etc ...
.-------.-----------.-----------.------.-----------.------.
me 01-Jan-2010 0 12 0 18.8
you 01-Jun-2013 0 4 0 4
为了不得到意大利面公式,我建议在 VBA 中创建一些用户定义的函数,如
Function GetCap(EntryDate, ThisDate) As Single
Function GetMonthly(EntryDate, ThisDate) As Single
根据经验,在 VBA 中调试 / 维护 2-3 个嵌套的If
或Select Case
比在工作表中没有空白,没有注释等的 92 个字符长的公式更容易。如果业务逻辑发生变化,则需要查看一个代码块-而不是增长了 3x12 个月 x 50 个用户的工作表中的数十个 / 数百个公式。
上述功能可能需要例如
Function EndOfMonth(MyDate) as Date
Function BeginOfNextMonth(MyDate) as Date
所以在床单只是
手动输入每月花费的小时数
将新缓冲区计算为= MIN([oldbuffer] - [Spent] + GetMonthly(...), GetCap(...))
小心地使用相对 / 绝对寻址,使公式跨列 / 行“可复制”,例如
向下复制时从标题中获取ThisDate
上的 row-absolute
向右复制时,每个 Emp 的EntryDate
上的绝对列
您当然可以直接在工作表的单元格中使用=GetCap(...)
和=GetMonthly(...)
来显示中间结果并用于调试目的。
比较日期时要小心
Tips:3 年后并不总是 365x3 天以后
检查 VBA DateSerial () 函数对月 & gt;12 和月 & lt;0 的作用
下月末总是 2 个月的第一天减去 1...即使在闰年的 2 月ggg
并张贴更多的问题,如果你被困在这些功能。
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(84条)