【问题标题】:How to calculate workdays and compensation for given period based on Employee's monthly salary?如何根据员工的月薪计算给定期间的工作日和薪酬?
【发布时间】:2014-12-17 15:04:06
【问题描述】:

我只有三个可编辑字段:

  1. 薪水 = 15,000
  2. 开始日期 = 2014 年 7 月 18 日
  3. 结束日期 = 2014 年 10 月 12 日

使用这些字段,我需要计算我需要支付的总工资。按月付款:

(7 月 = 15,000 / 31 * 14)+
(8 月 = 15,000 / 31 * 31)+
(九月 = 15,000 / 30 * 30)+
(OCT = 15,000 / 30 * 12)。

我可以根据两个日期(即 87 天,=DAYS($enddate,$startdate)+1))获得总天数,但我需要根据月份来拆分天数。

我需要什么公式来自动获取金额,因为每个人都有不同的薪水和不同的日期?

【问题讨论】:

    标签: excel excel-formula worksheet-function worksheet


    【解决方案1】:

    您可以使用 Excel VBA 自定义函数来解决您的问题:

    1)。首先,您应该使用反映员工姓名、月薪、开始日期和结束日期的数据结构填充 Excel 工作表,如下例所示:

    Employee    M.Salary    Start Date  EndDate
    John     $15,000.00     7/18/2014   10/12/2014
    Ann      $20,000.00     7/19/2014   10/13/2014
    Peter    $16,000.00     7/20/2014   10/14/2014
    Jeff     $25,000.00     7/21/2014   10/15/2014
    

    2)。日期范围内的DAYS可以通过减法(EndDate-StartDate)简单地找到,因为底层数据类型为整数

    3)。对于问题的一般解决方案(计算任意时期和月薪的补偿),您需要创建自定义 VBA 公式并在每个员工的单独列中使用它。解释参考这篇文章:Create a custom worksheet function in Excel VBA

    4)。与固定日期范围的特定情况相关,基于 Excel 工作表公式(无 VBA)的简化解决方案如下所述:

    Employee MoSalary       Start       End         Days FullMo     FirstMo        LastMo        Total
    John     $15,000.00     7/18/2014   10/12/2014  87  30000.00     $6,774.19   $6,000.00   $42,774.19 
    Ann      $20,000.00     7/18/2014   10/12/2014  87  40000.00     $9,032.26   $8,000.00   $57,032.26 
    Peter    $16,000.00     7/18/2014   10/12/2014  87  32000.00     $7,225.81   $6,400.00   $45,625.81 
    Jeff     $25,000.00     7/18/2014   10/12/2014  87  50000.00     $11,290.32      $10,000.00      $71,290.32 
    

    4a)。在从第 2 行开始的 E 列中,为 DAYS 添加公式:=(D2-C2)+1 并将其扩展到整个范围

    4b)。在 F 列从第 2 行开始添加整个月份的公式:=2*B2 并将其扩展到整个范围

    4c)。在从第 2 行开始的 G 列中,添加第一个月的公式:=14*B2/31 并将其扩展到整个范围

    4d)。在从第 2 行开始的 H 列中添加上个月的公式:=12*B2/30 并将其扩展到整个范围

    4e)。在从第 2 行开始的第一列中,添加总补偿公式:=SUM(F2:H2) 并将其扩展到整个范围

    希望这会有所帮助。最好的问候,

    【讨论】:

    • 我同意你的观点,@pnuts,但这就是 OP 在他的样本中的内容:(OCT = 15,000 / 30 * 12)。让我们等待他的回应,而不是猜测。最好的问候,
    • 您好,感谢您的回答,但我相信这不会自动解决。我的意思是公式需要确定两个日期的持续时间涉及哪个月份,然后只能制定每个涉及的月份有多少天数。
    【解决方案2】:

    我已经把它分开了,因为我不完全确定你需要什么,你可能能够以更适合你的方式组装这些部件:

    假设您的数据在 A1:A3 中,则将 1/7/14 放入 C1,将 1/8/14 放入 D1,将 1/9/14 放入 E1,将 1/10/14 放入 F1。

    要按月计算适用天数,请在 C2 中输入:

    =IF(MONTH($A2)=MONTH(C1),EOMONTH(C1,0)-$A2+1,IF(MONTH($A3)=MONTH(C1),DAY($A3),EOMONTH(C1,0)-EOMONTH(C1,-1)))  
    

    要通过计算适用月份的每日费率并将其乘以上述天数来计算该月的工资,请在 C3 中输入:

    =$A1*C2/(DAYS(EOMONTH(C1,0),C1)+1)  
    

    格式化 C2:C3 以适应并复制到 F2:F3。

    【讨论】:

    • 您好,感谢您的回复,但我无法完全理解您的解决方案。如果您能进一步解释,那就太好了。提前致谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-21
    • 1970-01-01
    • 1970-01-01
    • 2017-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多