答案1
我假设 A 列是真实日期值,格式化为也显示星期名称。可以使用自定义格式来实现DDD dd/mm
。
节假日时间需要确定 A 列是否为星期日。这可以通过WEEKDAY()
返回1
星期日的函数来完成。
您还需要包括公共假日,但 Excel 本身并不支持公共假日,因为每个国家的假日都不同。您可以在另一张表上设置假日列表,并为该列表指定一个范围名称(例如Holidays
)。然后,您的计算需要确定 A 列日期是否出现在该范围内。使用VLOOKUP()
.VLOOKUP
有一个特殊的怪癖,即如果未找到值,它将返回#N/A
,因此您需要测试错误。
因此,如果没有错误,那么这一天就是星期日,否则WEEKDAY(A13)=1
就是假日。VLOOKUP(A13,Holidays,1,FALSE)
单元格I13
需要包含一个条件来结合这两个测试。只要您的假期列表不包含星期日,您就可以将它们加在一起。
=IF(WEEKDAY(A13)=1,F13,0) + IF(ISERROR(VLOOKUP(A13,Holidays,1,FALSE)),0,F13)
请注意,我在这里使用的是F13
总小时数,因为假日工作不太可能获得加班资格和节假日津贴,我怀疑加班费是一个简单的计算TimeOut - TimeIn - Breaks - DailyTimeToWork
(这是其他地方设置的常数)。由于问题没有定义精确的业务规则,您几乎肯定需要调整这些建议。