如何用单一公式从多个工作表提取数据汇总至主工作表
结论
存在可直接使用的单一公式实现该需求,仅支持Excel 365、Excel 2021及以上的高版本Excel,无需额外插件、无需逐表操作即可完成跨8个工作表的指定数据汇总。
可用公式及说明
基础版本(自动包含所有匹配行)
假设各工作表中「公司名称」存储在X列(使用时替换为你实际的公司名列,比如公司名存在D列就替换为D:D),在主工作表要展示结果的首个单元格输入以下公式,按回车即可自动溢出所有匹配到的A-N列数据:
=FILTER(VSTACK(Sheet1:Sheet8!A:N), VSTACK(Sheet1:Sheet8!X:X)="Daisy Trucking Inc")
去表头重复版本(仅保留1次表头)
如果你不需要把各分表的表头重复汇总到主表,可以用以下公式,默认取Sheet1的表头作为汇总表的唯一表头,无匹配数据时会自动显示兜底提示:
=VSTACK(Sheet1!A1:N1, FILTER(VSTACK(Sheet1:Sheet8!A2:N), VSTACK(Sheet1:Sheet8!X2:X)="Daisy Trucking Inc", "无匹配数据"))
注意事项
- 低版本Excel(2019及更早)不支持VSTACK、动态数组溢出特性,无法使用该公式,可改用Power Query批量合并多表后再做筛选实现同等需求
- 公式内的
Sheet1:Sheet8是连续工作表的写法,如果你的工作表名称不是连续序号、或者中间有不需要统计的工作表,需要把VSTACK内的参数改为逐个指定工作表,比如VSTACK(Sheet1!A:N,Sheet2!A:N,Sheet5!A:N)这种形式 - 所有分表的A-N列的列顺序必须完全一致,否则汇总后的数据会出现列错位问题
内容的提问来源于stack exchange,提问作者CYL
相关产品推荐
相关产品推荐

