【问题标题】:Formula to calculate a days pay depending on the date range根据日期范围计算天薪的公式
【发布时间】:2017-10-27 16:03:01
【问题描述】:

我正在按病假工资表工作。我遇到的问题是我们以两种不同的方式付款;每个月,除了二月,一天的工资是使用(在我的工作表中)计算出来的:

B21/365*P28   (where B21 = annual salary and P28 = number of days)

但是,我想创建一个公式来区分一个人在 2 月份生病的时间,并以

的比率支付 2 月份的费用
B21/12/28*P28 

我认为这将是一个简单的if(and()),但我无法让它工作。

我的病假日期添加在F28(开始)-G28(结束)之间。

我希望它知道日期是在 2 月,并以 2 月的比率计算那么多天,并以正常比率计算其他天数。

例如,如果某人在 1 月 25 日至 2 月 5 日期间生病,我想按正常费率支付 7 天,并自动按 2 月费率支付 5 天。单元格S28 是显示付款的地方。

【问题讨论】:

    标签: excel excel-formula


    【解决方案1】:

    选项 1 - 包括周末

    我在D2 中使用了这个公式(并向下拖动):

    =SUMPRODUCT(--(MONTH(ROW(INDIRECT(A2&":"&B2)))=2)
    

    E2 很简单:

    =(B2-A2+1)-D2
    

    选项 2 - 排除周末

    使用以下公式:

    =SUMPRODUCT((MONTH(ROW(INDIRECT(A2&":"&B2)))=2)*(WEEKDAY(ROW(INDIRECT(A2&":"&B2)),2)<=5))
    

    =NETWORKDAYS(A2,B2)-D2
    

    【讨论】:

    • @ScottCraner,这行得通吗?总是如此繁琐地处理这样的日期!
    • 我会留下两个选择,因为 OP 没有指定,但我认为这是正确的。
    • @CallumDA 对我来说看起来不错,但对于选项 2,您不需要在 NETWORKDAYS 中使用 -1,因为它包括开始日期和结束日期
    • @CallumDA 我有这个; =MAX(0,MIN(IF($B2="",TODAY(),$B2),EOMONTH(DATEVALUE(C$1&"-17"),0))-MAX($A2,DATEVALUE(C$1& "-17"))+1) 计算所选月份和年份内出现在上述范围内的所有天数,但我希望能够区分一年中该月的总天数和工作日.
    • @xan21uk 上面的选项二就是这样做的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-16
    • 2011-02-05
    • 1970-01-01
    • 1970-01-01
    • 2022-07-22
    • 2019-04-12
    相关资源
    最近更新 更多