Excel中按不同时薪计算总薪资的公式问题(含加班时薪)
Excel中按不同时薪计算总薪资的公式问题(含加班时薪)
我明白你现在的困境啦!你遇到的问题其实是Excel里时间格式的本质导致的,咱们一步步来解决:
首先得搞清楚:Excel里的时间格式本质是小数,1天(24小时)等于1,所以40小时在Excel里其实是40/24≈1.6667这个数值。你之前直接用C11>40比较,相当于拿1.6667和40比,肯定永远小于40,所以公式一直走默认分支;而HOURS()函数只能提取单日0-23的小时数,超过24小时的部分会被循环计算(比如40小时会返回16),自然也用不了。
正确的解决方案:
先把总时长转换成真实的小时数,再计算薪资:
- 用
C11*24把时间格式的时长转换成实际小时数(比如40小时就是40,40小时30分钟就是40.5) - 把这个转换后的数值代入你的逻辑,最终公式是:
=IF(C11*24>40, 40*12 + (C11*24-40)*15, C11*24*12)
举个例子验证:
如果C11是42小时15分钟(格式为[h]:mm),C11*24会得到42.25,代入公式后:40*12 + (42.25-40)*15 = 480 + 33.75 = 513.75,完全符合你的薪资规则~
这个公式也能完美处理带分钟的时长,不需要额外调整格式,直接用就好啦!
备注:内容来源于stack exchange,提问作者dave166




