EXCEL模糊查询函数公式

比如
A B C D
花光集团 张三 北京 中关村
美涛集团 李四 南京 珠江路
沙曼集团 王五 南京 中央路

然后做一个查询,就是比如在
D1
(填写:南京)
下面就出现上面2个列表
美涛集团 李四 南京 珠江路
沙曼集团 王五 南京 中央路
(填写:花光)
下面就出现
花光集团 张三 北京 中关村

类似这样的,只要输入其中有的字,不管是地址,名字,公司,都能把相应有的全部列出来,求高手指点!!!相当有难度的哦,非高手绝对做不出的哇

1.首先看一下原始数据,A列是一些公司全名,在B1处输入一个简称或者说关键字(必须是在A列某个文本中连续包含的关键字),要在C1返回A列对应的全称。

2.双击C1单元格,输入公式

=VLOOKUP("*"&B1&"*",A1:A7,1,)

回车后C1单元格就返回了B1对应的A列公司全称。


3.VLOOKUP通配符方法介绍:

=VLOOKUP("*"&B1&"*",A1:A7,1,)代表的含义是在A1:A7的范围内查找包含B1关键字的单元格,找到后返回A1:A7第一列的内容。函数中的“*”代表任意字符,也就是说在A1:A7内查找B1文本前后任意字符的内容,也就是包含B1文本的意思。其中的1代表返回A1:A7数据区域第一列结果,最后一个逗号后省略参数代表的是精确匹配,也可以输入0或FALSE。


4.本例也可以用LOOKUP函数完成。

双击C1单元格,输入公式=LOOKUP(1,0/FIND(B1,A1:A7),A1:A7)即可。


5.来看一下LOOKUP运算过程。

首先FIND(B1,A1:A7)表示在A1:A7内查找B1内容,如果查找不到则返回错误值,如果查到返回在文本中的位置。

6.0/FIND(B1,A1:A7)这部分让上一步返回的值参与运算,如果上一步返回的是数字,结果就返回0否则仍返回错误值。

7.最后LOOKUP(1,0/(数组),A1:A7)部分返回“数组”中最后一个小于等于1(也就是“数组”中的0)的值对应的A1:A7的内容,也就是全称。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-02-20
这种问题没有必要做函数和公式的,EXCEL提供的“自动筛选”功能可实现,花九牛二虎之力做得出来也是多此一举!方法如下:
选中全部筛选区域单元格,然后点“数据”菜单》“筛选”》“自动筛选”》点C列下拉箭头》“自定义”》“自定义自动筛选方式”显示行左边下拉箭头选“包含”,右边填入“南京”或“花光”,确定即可。本回答被提问者和网友采纳
第2个回答  2012-03-01
假设上述数据为1-3行,
A4填写要查询的字,在A5输入下面的公式,并右拉到D5单元格。
下拉几行,把最后的1修改为2,或3输入其他匹配到的行。
公式用Row来定位,更好的办法是增加一列序号。
=INDEX(A$1:A$3,SMALL(IF(ISNUMBER(FIND($A$4,$A$1:$A$3&$B$1:$B$3&$C$1:$C$3&$D$1:$D$3)),ROW($A$1:$A$3),99999),1))
第3个回答  2012-03-01
如果只用函数,不管是地址,名字,公司,我想很难做到
相似回答