ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[已解决] 要基于E列和F列的特定条件,在A列和B列中搜索匹配项,并将相应的C列数据填充到H列中

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-3-24 14:03 | 显示全部楼层 |阅读模式
本帖最后由 学习的老黄牛 于 2024-3-25 08:32 编辑

要基于E列和F列的特定条件,在A列和B列中搜索匹配项,并将相应的C列数据填充到H列中。请各位大神帮帮忙,适合2021版或WPS使用的方法。

屏幕截图 2024-03-24 140009.png

6# - 副本.zip

7.44 KB, 下载次数: 13

TA的精华主题

TA的得分主题

发表于 2024-3-24 14:34 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
B列数据修改一下,然后用下面的公式处理:
  1. =LOOKUP(F2,FILTER(B$2:C$14,A$2:A$14=E2))&""
复制代码


image.png

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-3-24 14:44 | 显示全部楼层
miaojohn45 发表于 2024-3-24 14:34
B列数据修改一下,然后用下面的公式处理:

感谢大神,请问有没有不改变A、B、C列的情况下实现?因为有太多的数据,一个个整理太麻烦。

TA的精华主题

TA的得分主题

发表于 2024-3-24 14:54 | 显示全部楼层
本帖最后由 miaojohn45 于 2024-3-24 14:56 编辑
学习的老黄牛 发表于 2024-3-24 14:44
感谢大神,请问有没有不改变A、B、C列的情况下实现?因为有太多的数据,一个个整理太麻烦。

不改表格,就得把这些表数据写在公式里,比改表还麻烦。
=LOOKUP(F2,FILTER({0,"1米";0.001,"2米";5.951,"3米";26.951,"4米";32.801,"5米";35.801,0;0,"4W1";0.001,"4W2";5.951,"4W3";10.151,"4W4";18.551,"4W5";26.951,"4W6";32.801,0},{"KZ1";"KZ1";"KZ1";"KZ1";"KZ1";"KZ1";"KZ2";"KZ2";"KZ2";"KZ2";"KZ2";"KZ2";"KZ2"}=E2))&""

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-3-24 15:07 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
miaojohn45 发表于 2024-3-24 14:54
不改表格,就得把这些表数据写在公式里,比改表还麻烦。
=LOOKUP(F2,FILTER({0,"1米";0.001,"2米";5.951 ...

尽管过程较为复杂,未能完全满足预期,但我仍然对您的帮助表示感激。

TA的精华主题

TA的得分主题

发表于 2024-3-24 18:53 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
把b4 中的“-” 改成“~”
=LOOKUP(,0/FREQUENCY(IFERROR(--F3,),IF(A$3:A$12=E3,--LEFT(IF(B$3:B$12<>0,B$3:B$12),FIND("~",B$3:B$12&"~")-1))),OFFSET(C$1,MATCH(E3,A$2:A$12,),,99))

TA的精华主题

TA的得分主题

发表于 2024-3-24 20:03 | 显示全部楼层
=IF(F2="",FILTER($C$2:$C$12,($A$2:$A$12=E2)*($B$2:$B$12=0)),IFERROR(FILTER($C$2:$C$12,($A$2:$A$12=E2)*(IF($B$2:$B$12=0,0,VALUE(LEFT($B$2:$B$12,FIND("~",$B$2:$B$12)-1)))<F2)*(IF($B$2:$B$12=0,0,VALUE(RIGHT($B$2:$B$12,LEN($B$2:$B$12)-FIND("~",$B$2:$B$12))))>=F2)),""))

然后把$B$2:$B$12  中的 “-”  替换后为 “~”,你的原本数据有问题,中间的符号“-”、“~”都有
多条件查询.gif

TA的精华主题

TA的得分主题

发表于 2024-3-24 20:11 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
公式改了一下,不用该原始数据了
  1. =IF(F2="",FILTER($C$2:$C$12,($A$2:$A$12=E2)*($B$2:$B$12=0)),IFERROR(FILTER($C$2:$C$12,($A$2:$A$12=E2)*(IF($B$2:$B$12=0,0,VALUE(TEXTBEFORE($B$2:$B$12,{"~","-"})))<F2)*(IF($B$2:$B$12=0,0,VALUE(TEXTAFTER($B$2:$B$12,{"~","-"})))>=F2)),""))
复制代码


多条件查询2.gif

TA的精华主题

TA的得分主题

发表于 2024-3-24 20:27 | 显示全部楼层
=LET(a,FILTER($B$2:$B$12,($A$2:$A$12=E2)*($B$2:$B$12<>0)),b,--TEXTSPLIT(a,{"~","-"},,1),c,HSTACK(VSTACK(0,b+1%%),FILTER($C$2:$C$12,($A$2:$A$12=E2))),VLOOKUP(F2,c,2))

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-3-25 08:31 | 显示全部楼层
感恩各位老师的悉心指导,特别感谢“痛痛痛痛”老师的绝妙方法,使难题得以完美解决。
=IF(F2="",FILTER($C$2:$C$12,($A$2:$A$12=E2)*($B$2:$B$12=0)),IFERROR(FILTER($C$2:$C$12,($A$2:$A$12=E2)*(IF($B$2:$B$12=0,0,VALUE(TEXTBEFORE($B$2:$B$12,{"~","-"})))<F2)*(IF($B$2:$B$12=0,0,VALUE(TEXTAFTER($B$2:$B$12,{"~","-"})))>=F2)),""))
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-18 12:37 , Processed in 0.050427 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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