You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Excel公式编写求助:根据工作时长分配团队总支付工时

Excel公式编写求助:根据工作时长分配团队总支付工时

嗨,我完全懂你现在的困惑——要把团队的总支付工时,根据每个技术的实际工作时长合理分配到个人,这个逻辑确实需要捋清楚。

先帮你明确核心逻辑:你需要按每个技术的有效工作时长(最多算8小时)的比例,来分配固定的团队总支付工时。当所有人都满8小时工作时,比例是1:1:1,自然就会平均分配(比如总支付30的话,每人10小时),刚好符合你提到的场景。

接下来给你具体的Excel公式方案,假设:

  • 团队总支付工时放在单元格$D$1(比如这里输入30)
  • 三位固定费率技术的实际工作时长分别在A2B2C2单元格

那么,计算技术A的支付工时可以用这个公式:

=($D$1 / SUM(MIN(A2,8), MIN(B2,8), MIN(C2,8))) * MIN(A2,8)

我给你拆解下公式的作用:

  • MIN(A2,8):把该技术的实际工作时长限制在8小时以内,超过8的部分不算入分配基数
  • SUM(...):算出三位技术的有效工作时长总和
  • $D$1 / SUM(...):得到每1小时有效工时对应的支付工时分摊系数
  • 最后乘以该技术的有效工时,就是他应得的支付工时

咱们用你提到的场景验证下:

场景:三位技术都工作了8小时,总支付工时30
有效工时总和 = 8+8+8=24
分摊系数 = 30/24=1.25
每人支付工时 = 8×1.25=10,完全符合你的预期

再举个有差异的场景,比如技术A工作8小时、B工作6小时、C工作4小时:

有效工时总和=8+6+4=18
分摊系数=30/18≈1.6667
A的支付工时≈13.33,B≈10,C≈6.67,加起来刚好是30,逻辑通顺

如果担心出现“所有人都没工作”导致的除零报错,可以给公式加个错误处理:

=IFERROR(($D$1 / SUM(MIN(A2,8), MIN(B2,8), MIN(C2,8))) * MIN(A2,8), 0)

这样当总有效工时为0时,会直接返回0,避免公式报错。

备注:内容来源于stack exchange,提问作者Hans Riegner

火山引擎 最新活动