无需VBA实现Excel多工作表筛选匹配行并汇总的问题咨询
Mac版Excel无宏无Power Query多表条件汇总方案
核心思路
因为待汇总工作表只有3个,直接用IFERROR嵌套按顺序读取三个表的匹配结果即可:先读取Sheet2所有符合条件的行,读完后自动跳转读取Sheet3的结果,最后读取Sheet4的结果,不需要临时表也不需要3D引用。
前置准备
在Sheet1的空白列(例如J列)提前存储各表符合条件的行数,减少公式重复计算:
- J1单元格输入:
=COUNTIF(Sheet2!$G:$G,"Hit") - J2单元格输入:
=COUNTIF(Sheet3!$G:$G,"Hit") - J3单元格输入:
=COUNTIF(Sheet4!$G:$G,"Hit")
具体操作
假设所有数据工作表的有效数据范围是第2行到第1000行(可根据实际数据量调整行号上限),Sheet1和其他表保持相同表头:
- 选中Sheet1的A2单元格,粘贴以下公式:
=IFERROR(INDEX(Sheet2!A$2:A$1000,SMALL(IF(Sheet2!$G$2:$G$1000="Hit",ROW(Sheet2!$A$2:$A$1000)-ROW(Sheet2!$A$1)),ROW(1:1))),IFERROR(INDEX(Sheet3!A$2:A$1000,SMALL(IF(Sheet3!$G$2:$G$1000="Hit",ROW(Sheet3!$A$2:$A$1000)-ROW(Sheet3!$A$1)),ROW(1:1)-$J$1)),IFERROR(INDEX(Sheet4!A$2:A$1000,SMALL(IF(Sheet4!$G$2:$G$1000="Hit",ROW(Sheet4!$A$2:$A$1000)-ROW(Sheet4!$A$1)),ROW(1:1)-$J$1-$J$2)),"")))
- 按下Command+Enter触发数组公式计算,公式两端会自动生成大括号
{},无需手动输入。 - 把A2单元格向右填充到和数据列数一致的位置(例如原表有A-G共7列就填充到G2),再向下填充足够多的行(超过J1+J2+J3的总数值即可),超出匹配结果的位置会自动显示为空。
扩展方式
如果后续需要新增待汇总工作表,只需:
- 在J列新增对应工作表的
COUNTIF计数 - 在公式最外层新增一层
IFERROR嵌套,对应调整ROW(1:1)的偏移量即可
内容的提问来源于stack exchange,提问作者Jay
相关产品推荐
相关产品推荐

