基于另一表格选择标记使用SUMIF/INDEX/MATCH实现行求和的问题
解决方案
以下方案无需修改现有表格结构,直接在表1的Sum列输入公式下拉即可:
适用Excel 365/2021及以上版本
公式逻辑:先从表2筛选出所有标记为x的班次,匹配表1对应班次列后求和。
=SUM(FILTER(表1[@[Wk_day_1]:[Sun_3]],ISNUMBER(XMATCH(表1[#标题][[Wk_day_1]:[Sun_3]],FILTER(表2[Shift],表2[Work]="x"))),0))
如果是普通单元格区域(未插入结构化表格),假设:
- 表1班次列标题范围为
B1:K1,当前行数值范围为B2:K2 - 表2Shift列范围为
Sheet2!A2:A10,Work列范围为Sheet2!B2:B10
公式可调整为:
=SUM(FILTER(B2:K2,ISNUMBER(XMATCH(B$1:K$1,FILTER(Sheet2!A$2:A$10,Sheet2!B$2:B$10="x"))),0))
适用Excel 2019及更早版本
用兼容性更好的SUMPRODUCT实现,无需数组回车:
=SUMPRODUCT(表1[@[Wk_day_1]:[Sun_3]]*COUNTIFS(表2[Shift],表1[#标题][[Wk_day_1]:[Sun_3]],表2[Work],"x"))
普通单元格区域版本调整为:
=SUMPRODUCT(B2:K2*COUNTIFS(Sheet2!A$2:A$10,B$1:K$1,Sheet2!B$2:B$10,"x"))
注意事项
- 需确保表2的Shift列班次名称和表1的班次列标题完全一致,无多余空格或特殊字符,否则会出现漏算
- 公式输入后直接下拉填充整列即可,后续修改表2的
x标记,Sum列会自动更新结果
内容的提问来源于stack exchange,提问作者Max
相关产品推荐
相关产品推荐

