ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 如何实现逆向匹配查找

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-12-14 16:34 | 显示全部楼层 |阅读模式

image.png
如图,在C1:S10区域的数据,每行又分成四组,如何实现在A15开始,找到包含A15的一组数据并提取。(一组数据为3个3码)
然后把这组数据对应的S列同行序号也提取出来。



11111.zip

14.95 KB, 下载次数: 22

TA的精华主题

TA的得分主题

发表于 2024-12-14 17:03 | 显示全部楼层
本帖最后由 zwzc 于 2024-12-14 17:15 编辑

C15=OFFSET($B$1,G15,INT((SUM(IFERROR(IF((--$C$1:$Q$10)=A15,COLUMN($C$1:$Q$10),""),))-2)/4)*4+1,1,3)

G15=SUM(IFERROR(IF((--$C$1:$Q$10)=A15,$S$1:$S$10,""),))

TA的精华主题

TA的得分主题

发表于 2024-12-14 17:07 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
C15
=INDEX(A1:S10,MAX((C1:Q10=A15)*ROW(1:10)),LOOKUP(MAX((C1:Q10=A15)*COLUMN(C:Q)),{3,7,11,15})+{0,1,2})

G15
=MAX(($C$1:$Q$10=$A15)*ROW($1:$10)-1)

TA的精华主题

TA的得分主题

发表于 2024-12-14 17:32 | 显示全部楼层
  1. =INDEX($C$1:$Q$10,MIN(IF(ISNUMBER(FIND($A15,$C$1:$Q$10)),ROW($1:$10))),VLOOKUP(MIN(IF(ISNUMBER(FIND($A15,$C$1:$Q$10)),COLUMN($C:$Q)-2)),{1,1;5,5;9,9;12,12},2)+COLUMN(A1)-1)
复制代码

  1. =INDEX($S$1:$S$10,MIN(IF(ISNUMBER(FIND($A15,$C$1:$Q$10)),ROW($1:$10))))
复制代码

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-12-14 19:18 | 显示全部楼层
=LET(a,HSTACK(VSTACK($C$1:$E$10,$G$1:$I$10,$K$1:$M$10,$O$1:$Q$10),REPTARRAY($S$1:$S$10,4)),FILTER(a,BYROW(1*ISNUMBER(FIND(A15,a)),SUM)>0))

image.png

TA的精华主题

TA的得分主题

发表于 2024-12-14 19:57 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
=LET(a,DROP(WRAPROWS(REDUCE(0,$C$1:$R$10,LAMBDA(x,y,VSTACK(x,TEXTJOIN(",",,UNIQUE(IF((y<>"")*(ROW($A$1:$A$10)-1)=$S$1:$S$10,y,"")))))),4),-1,1),b,BYROW(1*ISNUMBER(FIND(A15,a*1)),SUM),HSTACK(FILTER(a,0<b),FILTER(INT(SEQUENCE(COUNTA(a)/3,,1)/4),0<b)))


image.png





TA的精华主题

TA的得分主题

发表于 2024-12-17 11:10 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
=OFFSET($A$1,MAX(IF($A15&""=$C$1:$Q$10,ROW($C$1:$Q$10),""))-1,VLOOKUP(MAX(IF($A15&""=$C$1:$Q$10,COLUMN($C$1:$Q$10),"")),{3;7;11;15},1,TRUE)-1,,3)

TA的精华主题

TA的得分主题

发表于 2024-12-17 14:23 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
  1. =OFFSET($C$1,SUM(IFERROR(IF($C$1:$Q$10*1=A15,ROW($A$1:$A$10),""),""))-1,LOOKUP(MATCH(A15,CHOOSEROWS($C$1:$Q$10,SUM(IFERROR(IF($C$1:$Q$10*1=A15,ROW($A$1:$A$10),""),"")))*1,0),{1;5;9;13})-1,,3)
复制代码

TA的精华主题

TA的得分主题

发表于 2024-12-17 14:25 | 显示全部楼层
  1. =LET(T,SUM(IFERROR(IF($C$1:$Q$10*1=A15,ROW($A$1:$A$10),""),"")),OFFSET($C$1,T-1,LOOKUP(MATCH(A15,CHOOSEROWS($C$1:$Q$10,T)*1,0),{1;5;9;13})-1,,3))
复制代码

TA的精华主题

TA的得分主题

发表于 2024-12-17 15:00 | 显示全部楼层
=LET(_a,SCAN(0,$B$1:$Q$1,LAMBDA(x,y,IF(y<>"",x,x+1))),_b,N($B$1:$Q$10=A15&""),_c,DROP(FILTER($B$1:$Q$10,_a=LOOKUP(1,0/BYCOL(_b,SUM),_a)),,1),FILTER(_c,BYROW(_b,SUM)))

=MAX(($C$1:$Q$10=A15&"")*$S$1:$S$10)
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-12-25 15:50 , Processed in 0.048444 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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