You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel带排除条件的SUMIF序列计算及动态薪资核算问题

动态薪资核算的MMULT公式修正方案

问题背景

  • 项目损益表原用固定薪资计算,需改为适配薪资变动的动态核算
  • 项目周期通过公式 =EDATE($C$2, SEQUENCE(1, $E$2, 0)) 生成(从L1开始的日期序列)
  • 当前薪资成本公式依赖员工分配表的固定薪资列,需移除该列,改为从EmployeeSalaryTbl匹配对应日期的薪资
  • 核心需求:
    1. 按项目周期生成日期序列
    2. 判断员工在对应月份是否参与项目
    3. 若参与,从薪资表匹配当月薪资并按月汇总

原公式报错原因

  1. AND函数不支持数组运算:AND在数组场景下只会返回单个布尔值,无法逐元素判断员工-月份的参与状态,需用*代替逻辑与
  2. SUMIFS维度不匹配:原公式中SUMIFS返回单个值,无法和日期序列、员工分配的多维数组对齐,需改用支持数组匹配的函数
  3. OFFSET易失性问题:OFFSET是易失性函数,会增加计算卡顿风险,建议用INDEX替代

修正后的公式方案

基础版(适配虚构结束日期31/12/9999)

在L7单元格输入以下公式(Excel 365/2021直接回车,旧版需按Ctrl+Shift+Enter):

=MMULT(SEQUENCE(1,ROWS($A$18#)),
  (($L$1#>=INDEX($A$18#,0,4))*($L$1#<=INDEX($A$18#,0,5)))
  *XLOOKUP($A$18#&$L$1#,EmployeeSalaryTbl[员工]&EOMONTH(EmployeeSalaryTbl[薪资生效日期],0),EmployeeSalaryTbl[月度薪资],0,1)
)

公式说明:

  • INDEX($A$18#,0,4)/INDEX($A$18#,0,5):替代OFFSET,稳定引用员工分配表的「开始日期」「结束日期」列
  • ($L$1#>=INDEX(...))*($L$1#<=INDEX(...)):生成员工-月份的参与矩阵,1表示该员工当月参与项目
  • XLOOKUP(...):将员工姓名+当月月末日期作为匹配键,统一日期格式避免匹配误差,精准定位对应薪资记录
  • MMULT:将员工维度的参与矩阵与薪资矩阵相乘,得到每个月的总薪资成本

进阶版(处理薪资结束日期为空的情况)

若将EmployeeSalaryTbl的「薪资结束日期」改为空值(表示当前生效),修改判断逻辑:

=MMULT(SEQUENCE(1,ROWS($A$18#)),
  (($L$1#>=INDEX($A$18#,0,4))*($L$1#<=IF(INDEX($A$18#,0,5)="",TODAY(),INDEX($A$18#,0,5))))
  *XLOOKUP($A$18#&$L$1#,EmployeeSalaryTbl[员工]&EOMONTH(EmployeeSalaryTbl[薪资生效日期],0),
    IF(EmployeeSalaryTbl[薪资结束日期]="",EmployeeSalaryTbl[月度薪资],IF($L$1#<=EmployeeSalaryTbl[薪资结束日期],EmployeeSalaryTbl[月度薪资],0)),
  0,1)
)

补充说明:

  • IF(INDEX($A$18#,0,5)="",TODAY(),INDEX(...)):判断项目结束日期是否为空,为空则用当前日期作为截止
  • XLOOKUP内的嵌套IF:处理薪资表中空结束日期的情况,确保当前生效的薪资能被正确匹配

附参考数据

项目员工分配数据

员工职位学科开始日期结束日期月度薪资
Bob高级程序员编程12/01/202006/05/2020£4,333
Dave中级程序员编程01/02/202030/05/2020£3,167
Peter高级程序员编程01/01/202031/01/2020£4,583
Jack初级程序员编程01/02/202030/06/2020£2,083
Richard高级美术师美术01/03/202030/04/2020£3,750
RodneyQA主管QA01/03/202030/06/2020£4,333
Proj 1 - Hire 1高级制片人制片01/02/202030/05/2020£3,458
RogerQAQA01/01/202030/04/2020£1,667
Wesley中级程序员编程01/02/202031/05/2020£3,750
Rachel高级美术师美术01/01/202030/06/2020£3,333
Proj 1 - Hire 2首席程序员编程01/01/202031/07/2020£4,417

EmployeeSalaryTbl数据

员工薪资生效日期薪资结束日期年薪月度薪资日薪
Bob01/01/202031/03/2021£52,000£4,333£199
Bob01/04/202131/03/2022£55,000£4,583£211
Bob01/04/202231/12/9999£58,000£4,833£222
Dave01/01/202031/03/2021£38,000£3,167£146
Dave01/04/202131/12/9999£42,000£3,500£161
Wesley01/01/202031/12/9999£45,000£3,750£173
Jack01/01/202031/12/9999£25,000£2,083£96
Richard01/01/202031/12/9999£45,000£3,750£173
Rodney01/01/202031/12/9999£52,000£4,333£199
Proj 1 - Hire 101/01/202031/12/9999£41,500£3,458£159
Roger01/01/202031/12/9999£20,000£1,667£77
Steve01/01/202031/12/9999£27,000£2,250£104
Rachel01/01/202031/12/9999£40,000£3,333£153
Peter01/01/202031/12/9999£34,000£2,833£130
Sarah01/01/202031/12/9999£22,000£1,833£84
Chloe01/01/202031/12/9999£33,000£2,750£127
Matthew01/01/202031/03/2021£23,000£1,917£88
Matthew01/04/202131/12/9999£28,000£2,333£107
Proj 1 - Hire 201/01/202031/12/9999£36,000£3,000£138

内容的提问来源于stack exchange,提问作者Automation Monkey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 23:31:06