如何从Sheet 2提取员工服务费率并在Sheet 1按月汇总至指定单元格
员工月度总薪酬自动计算方案
我来帮你搞定这个Excel薪酬计算的需求,直接上可复用的公式和详细逻辑解释:
核心公式(以员工1为例)
11月总薪酬(Sheet1!C13)
直接套用这个公式即可:
=SUMPRODUCT(INDEX(Sheet2!$A:$Z,MATCH("员工1",Sheet2!$A:$A,0),MATCH(Sheet1!C2:C4,Sheet2!$1:$1,0)))
12月总薪酬(Sheet1!D13)
只需要把服务区域从C2:C4换成D2:D4,其他部分保持不变:
=SUMPRODUCT(INDEX(Sheet2!$A:$Z,MATCH("员工1",Sheet2!$A:$A,0),MATCH(Sheet1!D2:D4,Sheet2!$1:$1,0)))
公式逻辑拆解(完全对应你的需求步骤)
- 步骤1:定位员工1的服务费率行:
MATCH("员工1",Sheet2!$A:$A,0)会在Sheet2的A列精准找到员工1所在的行号,确保我们取到的是该员工的专属费率数据。 - 步骤2:匹配月度提供的服务:
MATCH(Sheet1!C2:C4,Sheet2!$1:$1,0)会把Sheet1中对应月份(11月为C2:C4,12月为D2:D4)的每个服务名称,对应到Sheet2第1行的服务表头列号,实现服务和费率的精准匹配。 - 步骤3:汇总对应费率:
INDEX函数结合前面的行号和列号,提取出每个服务对应的费率值,最后SUMPRODUCT自动把这些费率加总,得到最终的月度总薪酬。
员工2的适配方案
只需要把公式里的"员工1"替换成"员工2",对应到员工2的目标单元格即可:
- 员工2 11月总薪酬(比如Sheet1!C14):
=SUMPRODUCT(INDEX(Sheet2!$A:$Z,MATCH("员工2",Sheet2!$A:$A,0),MATCH(Sheet1!C2:C4,Sheet2!$1:$1,0)))
- 员工2 12月总薪酬(比如Sheet1!D14):
=SUMPRODUCT(INDEX(Sheet2!$A:$Z,MATCH("员工2",Sheet2!$A:$A,0),MATCH(Sheet1!D2:D4,Sheet2!$1:$1,0)))
优化建议(处理空白或无效服务)
如果Sheet1的服务区域存在空白或Sheet2中没有的服务名称,公式会返回错误。可以加入IFERROR来规避这个问题:
以员工1 11月为例:
=SUMPRODUCT(INDEX(Sheet2!$A:$Z,MATCH("员工1",Sheet2!$A:$A,0),IFERROR(MATCH(Sheet1!C2:C4,Sheet2!$1:$1,0),0)))
这样无效的服务会被识别为0,不会影响最终的汇总结果。
内容的提问来源于stack exchange,提问作者nmeffert
相关产品推荐
相关产品推荐

