ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] lookup和find函数嵌套的问题

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-7-20 09:02 | 显示全部楼层
cjc209 发表于 2018-7-19 22:56
你的意思可能是 下拉

qus1.jpg
如图红框所示,理论应该输出最后边在b列中存在的值

TA的精华主题

TA的得分主题

发表于 2018-7-20 09:04 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
cjc209 发表于 2018-7-19 23:10
=MID(A2,MAX(IFERROR(FIND(B$2:B$10,A2),)),9)

不是这样的,如果匹配的人名是在第一个或者第二个,那mid就不能用9,会把第三个第四个人名也取出来;如果人名都是3个字就可以把9换成3

TA的精华主题

TA的得分主题

发表于 2018-7-20 09:17 | 显示全部楼层
micch 发表于 2018-7-20 09:04
不是这样的,如果匹配的人名是在第一个或者第二个,那mid就不能用9,会把第三个第四个人名也取出来;如果 ...

他没有说清楚

TA的精华主题

TA的得分主题

发表于 2018-7-20 09:57 | 显示全部楼层
  1. =IFERROR(SUBSTITUTE(MID(A2,MAX(IFERROR(FIND(B$2:B$10&",",A2&","),)),3),",",),"")
复制代码


换个用mid取A列的方法,前提是人名不超过3个字;非要用lookup+find,实在是想不到简单的方法,写出来太长

TA的精华主题

TA的得分主题

发表于 2018-7-20 10:42 | 显示全部楼层
  1. =LOOKUP(,0/FREQUENCY(-LEN(A2),-FIND(","&B$2:B$11&",",","&A2&","&B$2:B$11&",")),B$2:B$5)&""
复制代码

评分

3

查看全部评分

TA的精华主题

TA的得分主题

发表于 2018-7-20 11:21 | 显示全部楼层
本帖最后由 shwangfeng 于 2018-7-20 11:28 编辑

大佬珠玉在前,我凑个热闹:
  1. =IF(SUM(IFERROR(FIND($B$2:$B$10,A2),0)),INDEX($B$2:$B$10,MATCH(1,FREQUENCY(-9^9,-IFERROR(FIND($B$2:$B$10,A2),0)),0)),"不存在")
复制代码

F2三键,下拉。

TA的精华主题

TA的得分主题

发表于 2018-7-20 11:56 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-11-12 09:17 | 显示全部楼层

大神,我如果需要从左往右匹配寻址的话,公式该如何修改啊?

TA的精华主题

TA的得分主题

发表于 2019-5-1 22:01 | 显示全部楼层
本帖最后由 OKJSJSF 于 2019-5-1 22:23 编辑

这个问题太经典实用了,可惜在《Excel 函数其实很简单II》中介绍查询之王Lookup、Find用法时没有写进去,我前几天刚把这个公式教给我的同事,我是三年前在百度贴吧"excel吧"中求得这个公式的。公式应这么写:

=lookup(9^9,find($b$2:$b$10,$a2),b$2:b$10)

向下填充,向右填充,即可。

第三参数b$2:b$10可以根据需返回结果情况写成与查找列表b$2:b$10对应的c$2:c$10或d$2:d$10等都可以。

我是把单列$b$2:$b$10或多列$b$2:$f$10作为参数表预先设置录入好的,比如客户联系地址中的行政村,不包含前面的省市县等,也不包含后面的自然村门牌号等,a2是详细地址,是包含省市县村自然村门牌号的地址全名,但也不一定是准确的全名,也可能会是错误的地址名。通过填充,查询出纯粹的行政村名称,以及与该行政村名对应的管片客户经理姓名,或客户经理代号,或分支机构名称或代码等数据信息,用于数据透视表的字段,生成透视表或图表。这样就免去了多次高级筛选或模糊查找的麻烦。

虽然公式已用了三年多时间,但我自己还没搞懂它的计算原理,我还不知道为什么find可以同时用多个查找值进行同时查找,又为什么不必用数组大括号,当我在lookup()公式中把find($b$2:$b$10,$a2)抹黑后按F9键时,显示出的是错误!?,当把=find($b$2:$b$10,$a2)作为单独的公式填充使用时,并不能进行正常查找!?我正想在本论坛发表求助贴,于是在此写了这个贴子,顺便作为求助贴了。





TA的精华主题

TA的得分主题

发表于 2019-5-2 08:37 | 显示全部楼层
magicelfzz 发表于 2018-11-12 09:17
大神,我如果需要从左往右匹配寻址的话,公式该如何修改啊?
  1. =INDEX(B:B,-LOOKUP(,-MATCH(TRIM(MID(SUBSTITUTE(A2,",",REPT(" ",99)),(9-ROW($1:$8))*99-98,99)),B:B,)))
复制代码
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-4-28 08:03 , Processed in 0.033379 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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