ARTICLE · 1320579
Excel表格零代码做商品搜索查询系统
Excel表格零代码做商品搜索查询系统做商品管理时,经常会遇到需要按关键词搜索查找商品的情况。如果直接在商品信息表上筛选,很容易不小心修改原表数据。 今天给大家分享一个不用VBA、不用插件,只用excel公式就能制作商品搜索查询的方法,既不会影响原表,也能返回要查找的商品信息。 使用方法是:只需一个关键词,就可以搜索并整理出所有包含该关键词的内容。 
首先准备好商品信息表: 
接下来,在商品信息表右侧制作搜索查询区域 复制表头部分粘贴到右侧,预留出J3单元格输入关键字 
接着在M3单元格输入公式:=COUNTA(I6:I500) 
这个公式的目的是统计查询到的商品数量。 然后在I6单元格输入以下公式,按回车: =FILTER(A3:G101,BYROW(A3:G101,LAMBDA(X,OR(ISNUMBER(FIND(J3,X)))))) 
这个公式到底是干嘛用的? 下面来给大家一层一层拆分: 第1层:在I6单元格中输入公式:=FIND(J3,A3:G3) J3是要搜索的关键字,A3:G3是搜索范围。 这个公式的目的是找出关键字在搜索区域的位置,查找不到关键字时返回#VALUE! 
第2层:在FIND外面嵌套ISNUMBER函数 =ISNUMBER(FIND(J3,A3:G3)) 
ISNUMBER函数的作用是判断参数是不是数字: 1.当单元格包含关键字,FIND的结果是数字,则ISNUMBER返回TURE 2.当单元格不包含关键字,FIND的结果是#VALUE!,ISNUMBER返回FALSE 第3层:在ISNUMBER函数外面嵌套OR函数 =OR(ISNUMBER(FIND(J3,A3:G3))) 
这个公式的作用是: 1.如果当前这一行里,任意一个单元格包含关键字,OR就返回TRUE; 2.如果这一行所有单元格都不包含关键字,OR才返回FALSE。 第4层:在OR函数外面嵌套BYROW函数 =BYROW(A3:G101,LAMBDA(X,OR(ISNUMBER(FIND(J3,X))))) 在查询条件填写:牙膏,会出现TURE/FALSE两种结果 
这个公式的逻辑是: 1.BYROW 会一行一行地处理 A3:G101; 2.每一行传给LAMBDA的参数X; 3.LAMBDA里的计算式是 OR(ISNUMBER(FIND(J3,X))),即“这一行里有没有任意一个单元格包含 J3”; 4.最终BYROW返回每一行的 TRUE/FALSE。 这里的 LAMBDA(X, ...) 就是在告诉 BYROW:“对每一行 X,请按这个逻辑算。” LAMBDA用来“现场定义一个自定义函数”,一段计算逻辑打包成一个可重复使用的函数,它经常配合BYROW、BYCOL、MAP这些“高阶函数”使用,告诉它们“对每一行/每一列/每个元素具体做什么计算”。 第5层:最后在BYROW函数外面嵌套FILTER函数 FILTER是筛选函数,把包含关键字的行提取出来 A3:G101是要提取的数据区域 BYROW函数是提取条件 最后,让查询到的内容自动显示边框 步骤:选中单元格区域 → 开始 → 条件格式 → 新建规则 → 选择“使用公式确定要设置格式的单元格”,输入公式:=I6<>"" → 格式 → 边框 → 设置颜色和外边框 → 确定。 

这样,当查找返回内容时,边框会自动显示。


























































































