请教用公式跨工作表统计

如图,假设一个工作簿有1-12月12张工作表,每张表格式一样但行数不一样,如何使用filter函数跨12张表筛选每张表的数据? 方案一: =VSTACK(FILTER('1月'!A:C,('1月'!A:A="部门1")*('1月'!B:B="a")),FILTER('2月'!A:C,('2月'!A:A="部门1")*('2月'!B:B="a"))............) 可以实现,速度快,但公式繁琐 方案二: =DROP(REDUCE("",SEQUENCE(12),LAMBDA(x,y,VSTACK(x,FILTER(INDIRECT("'"&y&"月'!A:C"),(INDIRECT("'"&y&"月'!A:a")="部门1")*(INDIRECT("'"&y&"月'!b:b")="a"))))),1) 可以实现,但indirect效率低 方案三: =REDUCE("",SEQUENCE(12),LAMBDA(x,y,LET(a,TRIMRANGE(INDIRECT("'"&y&"月'!A:C")),b,FILTER(a,(CHOOSECOLS(a,1)="部门1")*(CHOOSECOLS(a,2)="a")),IF(x="",b,VSTACK(x,b))))) 可以实现,但indirect效率低 方案四: =LET(a,VSTACK('1月:12月'!A1:C1000),FILTER(a,(CHOOSECOLS(a,1)="部门1")*(CHOOSECOLS(a,2)="a"))) 可以实现,但行数要比较确定,还不能多 方案五: =LET(a,VSTACK('1月:12月'!A:C),FILTER(a,(CHOOSECOLS(a,1)="部门1")*(CHOOSECOLS(a,2)="a"))) #NUM!,应该是行数超了 方案六: =LET(a,VSTACK(TRIMRANGE('1月:12月'!A:C)),FILTER(a,(CHOOSECOLS(a,1)="部门1")*(CHOOSECOLS(a,2)="a"))) #VALUE!,应该是不支持TRIMRANGE('1月:12月'!A:C)的写法 方案七: =LET(a,WRAPROWS(TOCOL(TRIMRANGE(HSTACK('1月:12月'!A:C))),3),FILTER(a,(CHOOSECOLS(a,1)="部门1")*(CHOOSECOLS(a,2)="a"))) 可以实现,但仅限每张表格式都要一样,列数也不能太多 现在的问题是,有什么更好的方法吗?如果每张表的格式不同,列数不同,但每张表都有一列“部门”,通过筛选每张表的“部门列”要把不同格式的表也拼起来,又如何做到?
上海
浏览 143
2
3
分享
3 +1
4
2 +1
全部评论 4
 
学习
· 广东省
回复
 
懒得批爆

@WPS产品体验官

答: 先大致的看了一遍,没看懂。 然后仔细的看了一遍,发现太啰嗦。 最后清楚WPS 灵犀协助解答 点击查看对话「Excel多工作表数据筛选方法探讨」https://lingxi.wps.cn/share/Op8JYBp5r2Cw 请WPS 灵犀整理成文档,分享给你 【金山文档 | WPS云文档】 Excel多工作表数据筛选方法探讨 https://kdocs.cn/l/ceL6k9fFHN7H
· 四川省
回复
 
黑化新路

WPS函数专家

好长的文章,点个赞,就不看了。
· 重庆
1
回复
专家来指导一下吧
· 上海
1
回复