ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 某工作表格式变化后导致跨表提取数据公式错误求助

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-3-21 10:00 | 显示全部楼层 |阅读模式
有四个班的工作表在同一工作簿内,在汇总表内使用公式跨表提取数据。

在C3单元格内录入以下公式,然后向右拖动向下拖动得到结果。
SUMPRODUCT((INDIRECT("'"&OFFSET($C$1,0,3*(INT((COLUMN()-3)/3)))&"'!a12:a19")=$A3)*(INDIRECT("'"&OFFSET($C$1,0,3*(INT((COLUMN()-3)/3)))&"'!b12:b19")=$B3)*(INDIRECT("'"&OFFSET($C$1,0,3*(INT((COLUMN()-3)/3)))&"'!c11:e11")=C$2)*INDIRECT("'"&OFFSET($C$1,0,3*(INT((COLUMN()-3)/3)))&"'!c12:e19"))

但现在第四班的工作表内格式变化了,某几行被删除
导致汇总表内第四班的数据全都为零了。

请问应该怎么修改公式?

图片1.jpg

例子111.zip

36.53 KB, 下载次数: 5

TA的精华主题

TA的得分主题

发表于 2024-3-21 10:17 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
=SUMIFS(INDEX(INDIRECT(LOOKUP("座",$C$1:C$1)&"!A:Z"),,MID(435,MOD(COLUMN(A1)-1,3)+1,1)),INDIRECT(LOOKUP("座",$C$1:C$1)&"!A:A"),$A3,INDIRECT(LOOKUP("座",$C$1:C$1)&"!B:B"),$B3)

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-3-21 10:19 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
你可以清除数据,但不能删除行,因为你的区域引用都是固定的

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-3-21 11:19 | 显示全部楼层
本帖最后由 cyqiu 于 2024-3-21 13:19 编辑
solextrade 发表于 2024-3-21 10:17
=SUMIFS(INDEX(INDIRECT(LOOKUP("座",$C$1:C$1)&"!A:Z"),,MID(435,MOD(COLUMN(A1)-1,3)+1,1)),INDIRECT(LOO ...

真的非常厉害,但这是什么原理?
Lookup里面的“座”是什么意思?(问了度娘,意思是一个很大的数,用于合并单元格的查找,大概这样的意思)
MID里的435又是什么意思??
完全不懂,看得云里雾里了~
但还是谢谢!

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-3-21 11:22 | 显示全部楼层
nqwl 发表于 2024-3-21 10:19
你可以清除数据,但不能删除行,因为你的区域引用都是固定的

我知道区域引用是固定,但关键是其他工作表是别人填的,无法控制格式。
所以需要想办法看能不能从修改公式入手。

TA的精华主题

TA的得分主题

发表于 2024-3-21 16:54 | 显示全部楼层
=LET(A,INDIRECT(LOOKUP("座",$C$1:C$1)&"!A1"),B,MAX(ROW($1:$30)*(MMULT(N(INDIRECT(LOOKUP("座",$C$1:C$1)&"!A1:B30")=$A3:$B3),ROW($1:$2)^0)=2)),OFFSET(A,B-1,MATCH(C$2,OFFSET(A,LOOKUP(B,TOROW(IF(INDIRECT(LOOKUP("座",$C$1:C$1)&"!$C$1:$G$30")=$C$2,ROW($1:$30),0/0),2))-1,1,,6),)))
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-7-2 05:54 , Processed in 0.045297 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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