ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 304|回复: 15

[求助] 请教各位大神,如何根据选择的月份区间汇总求和

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-11-4 08:46 | 显示全部楼层 |阅读模式
工作需要,随时要统计不同月份之间的数据,能根据选择的月份区间,自动把这几个月的数据求和汇总到数据表,名称也能同步更新

律所汇总表.zip

29.19 KB, 下载次数: 43

TA的精华主题

TA的得分主题

发表于 2024-11-4 09:05 | 显示全部楼层
  1. =SUM(VSTACK(INDIRECT("'"&$E$2&":"&$G$2&"'!C$7:C$200"))*(VSTACK(INDIRECT("'"&$E$2&":"&$G$2&"'!$A$7:$A$200"))=$A8))
复制代码


TA的精华主题

TA的得分主题

发表于 2024-11-4 09:39 | 显示全部楼层
本帖最后由 mjm04 于 2024-11-4 09:40 编辑

一步到位的,WPS 与 M365 可用, 低版本建议用PQ解决
函数 写至分表的1000行


=LET(_合并,VSTACK(INDIRECT("'"&E2&":"&G2&"'!A8:M1000")),_去空值,FILTER(_合并,CHOOSECOLS(_合并,1)<>""),_律所列,CHOOSECOLS(_去空值,1),_数据列,CHOOSECOLS(_去空值,2,3,4,5,6,7,8,9,10,11,12,13),PIVOTBY(_律所列,,_数据列,SUM,,-1,1))











律所统计.png

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-11-4 10:38 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2024-11-4 11:11 | 显示全部楼层
=LET(T,DROP(REDUCE("",SEQUENCE(LEFTB(G2,2),,LEFTB(E2,2),1),LAMBDA(X,Y,VSTACK(X,INDIRECT("'"&Y&"月"&"'!A8:M"&SUM(COUNTA(INDIRECT("'"&Y&"月"&"'!A:A")),3))))),1),T)

TA的精华主题

TA的得分主题

发表于 2024-11-4 11:30 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
  1. =LET(a,VSTACK(INDIRECT("'"&E2&":"&G2&"'!A8:M102")),GROUPBY(CHOOSECOLS(a,1),DROP(a,,1),SUM,,-1))
复制代码
核心的思路是mjm04的VSTACK(INDIRECT("'"&E2&":"&G2&"'!A8:M102")),这个省了一大串功夫,1月到12月的表格有多少数据行就写M多少行,省得去空值了。 image.png

TA的精华主题

TA的得分主题

发表于 2024-11-4 11:39 | 显示全部楼层
A8公式
=LET(st,LEFTB(E2),en,LEFTB(G2),a,DROP(REDUCE("",SEQUENCE(en-st+1,,st),LAMBDA(x,y,VSTACK(x,INDIRECT("'"&y&"月'!A8:M999")))),1),b,FILTER(a,TAKE(a,,1)<>0),c,TAKE(b,,1),DROP(GROUPBY(HSTACK(MATCH(c,c,),c),DROP(b,,1),SUM,0,0,),,1))

TA的精华主题

TA的得分主题

发表于 2024-11-4 11:42 | 显示全部楼层
mjm04 发表于 2024-11-4 09:39
一步到位的,WPS 与 M365 可用, 低版本建议用PQ解决
函数 写至分表的1000行

=INDIRECT("'"&E2&":"&G2&"'!A8:M1000")

这种用法我的M365怎么用不了,提示#REF!
我的M365是付费版的
image.png

TA的精华主题

TA的得分主题

发表于 2024-11-4 12:53 | 显示全部楼层
溺水鱼 发表于 2024-11-4 11:30
核心的思路是mjm04的VSTACK(INDIRECT("'"&E2&":"&G2&"'!A8:M102")),这个省了一大串功夫,1月到12月的表 ...

汇总后去空值的想法是:
1、不用去考虑各分表中行数是否相同;一个范围包进去就行!

2、万一函数写完后,分表数据要增加,或减少,造成各分表中 行数不一致; 只要在1000行以内,那就不用重新改函数!

也就是 减少后期 的麻烦! 我懒~~~~




TA的精华主题

TA的得分主题

发表于 2024-11-4 13:12 | 显示全部楼层
mjm04 发表于 2024-11-4 12:53
汇总后去空值的想法是:
1、不用去考虑各分表中行数是否相同;一个范围包进去就行!

嗯嗯,明白您的思路,顺着您的思路来,也可以用tocol清洗一下,=LET(a,WRAPROWS(TOCOL(VSTACK(INDIRECT("'"&E2&":"&G2&"'!A8:M1000")),1),13),GROUPBY(CHOOSECOLS(a,1),DROP(a,,1),SUM,,-1))
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-21 22:59 , Processed in 0.038217 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表