分享免费的编程资源和教程

网站首页 > 技术教程 正文

输入任意一条件关键词查找 输入关键词进行查找

goqiw 2024-10-25 13:07:40 技术教程 32 ℃ 0 评论

问题:如图,通过在F2输入关键词,可以直接查询包含关键词的所内容(注:本例是上篇文章的拓展)。关键词可以是工号、姓名、部门、电话或者其中工号(姓名、部门、电话)中的一部分字符。例如下图是输入部门关键词“人事”后查询的数据。


现在我们输入工号的关键词“AM”,结果如下:


很显然,工号、姓名、部门、电话四个条件只要任输入一个与其有关的关键词,都可以查询到对应的内容。以下是源数据:


如果做到的呢?一步一步来吧。


1、在F2中输入公式:=FIND($F$2,$A:$D)。找到输入的关键词在A:D区域里的位置。


2、嵌套一个逻辑函数判断上述公式返回结果是否是数值:


3、继续嵌套一个if函数,判断它如果是一个数值,就返回对应的行号:=IF(ISNUMBER(FIND($F$2,$A:$D)),ROW($A:$A))


4、继续嵌套一个small函数:找到上述公式返回行号最小的一个行号。=SMALL(IF(ISNUMBER(FIND($F$2,$A:$D)),ROW($A:$A)),ROW($A1))。如果三键同时按下让公式生效,会得到最小的行号为3,三键:Ctrl+Shift+Enter。


5、继续嵌套一个index函数,在对应的列里返回上述最小行号的工号。=INDEX(A:A,SMALL(IF(ISNUMBER(FIND($F$2,$A:$D)),ROW($A:$A)),ROW($A1)))。并记得三键同时按下。否则只能得到第一个数据。


6、基本上就算大功告成了。但是如果公式下拉右拉填充时,会出现查找不到数据的情况。所以,最后嵌套一个IFERROR函数。以保证在出现没有数据时单元格显示为空。=IFERROR(INDEX(A:A,SMALL(IF(ISNUMBER(FIND($F$2,$A:$D)),ROW($A:$A)),ROW($A1))),"")


哦,记得必须三键同时按下哟。


现在将公式右拉填充再下拉填充。



现在输入关键词“售后”:


你也可以输入姓名中某个字符,或者输入电话,自己试试哈。


公式很复杂,但是这样一步一步的写出来,相信你也明白是怎么回事吧?哦对了,如果你下拉填充行数过多,或者电脑比较古董级了,可能查询时候有点慢哟,注意观察浏览器任务栏的百分比进度条。


支持小哇,请转发到你的朋友圈或者QQ空间。对小哇的支持。小哇非常感谢您!


下次见!!!

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表