如何用动态INDIRECT(INDEX(MATCH))替代SUMIF实现可拖拽汇总
替换SUMIF为动态INDEX(MATCH)公式实现自动计算
核心思路
你不需要用INDIRECT,INDEX(MATCH)组合本身就能实现动态匹配,同时解决投资者行定位和收入类型匹配的问题,拖拽时会自动适配新增的投资者或收入类型。
具体公式(根据常见表结构)
假设你的表结构是:
- TestFund表:A列是投资者姓名,第1行(B1:Z1)是各类收入类型,对应金额在B2:Z区域的单元格中
- Aggregate表:A列是投资者姓名,第1行(B1:Z1)是要匹配的收入类型
在Aggregate表的B2单元格输入以下公式,然后横向/纵向拖拽即可:
=INDEX(TestFund!$B:$Z, MATCH($A2, TestFund!$A:$A, 0), MATCH(B$1, TestFund!$B$1:$Z$1, 0))
公式拆解
MATCH($A2, TestFund!$A:$A, 0):在TestFund的A列精准匹配当前行的投资者,返回对应的行号MATCH(B$1, TestFund!$B$1:$Z$1, 0):在TestFund的第1行精准匹配当前列的收入类型,返回对应的列号INDEX(TestFund!$B:$Z, 行号, 列号):根据上面得到的行号和列号,直接定位到TestFund中对应的金额单元格
如果是按交易行求和的场景(原SUMIF是求和多笔交易)
如果TestFund表是每行一笔交易(A列投资者,B列收入类型,C列金额),需要对同一投资者同一收入类型的金额求和,用SUMIFS更直接,同样支持拖拽自动适配新增数据:
=SUMIFS(TestFund!$C:$C, TestFund!$A:$A, $A2, TestFund!$B:$B, B$1)
注意事项
- 公式中的
$是绝对引用符号:$A2保证纵向拖拽时始终匹配A列的投资者,B$1保证横向拖拽时始终匹配第1行的收入类型 - 不需要固定行/列范围,公式会自动识别TestFund表中新增的投资者行或收入类型列
内容的提问来源于stack exchange,提问作者CRTone24
相关产品推荐
相关产品推荐

