wps 表格如何实现vlookup高级模糊搜索

news/2024/7/8 2:50:15 标签: wps, vlookup, 模糊搜索

一、VLOOKUP 模糊搜索

在 WPS 表格中,可以通过使用 VLOOKUP 函数和通配符来实现高级模糊搜索。这里有一个具体的示例来帮助你理解如何进行这些操作。

示例:实现 VLOOKUP 高级模糊搜索

假设我们有以下数据集:

AB
产品编号产品名称
001苹果
002香蕉
003橙子
004葡萄

我们的目标是使用模糊搜索来查找包含特定关键字的产品名称,并返回相应的产品编号。

步骤

  1. 准备数据
    在一个新的表格中输入上面的数据集。

  2. 使用 VLOOKUP 和通配符
    在你想要显示结果的单元格中使用以下公式:

    =VLOOKUP("*" & 搜索关键字 & "*", A:B, 2, FALSE)
    

    这里的 搜索关键字 是你要查找的字符串,可以在某个单元格中定义。例如,如果你的搜索关键字在 C1 单元格中,那么公式应该写成:

    =VLOOKUP("*" & C1 & "*", A:B, 2, FALSE)
    
  3. 示例
    假设在 C1 中输入 “苹果”,那么在 D1 单元格中输入以下公式:

    =VLOOKUP("*" & C1 & "*", A:B, 2, FALSE)
    

    这个公式会查找包含 “苹果” 的产品名称,并返回对应的产品编号。如果存在多个匹配项,VLOOKUP 只会返回第一个匹配项。

进一步说明

  • 通配符使用

    • * 代表任意数量的字符。例如,"*苹果*" 会匹配任何包含 “苹果” 的字符串。
    • ? 代表任意单个字符。例如,"苹果?" 会匹配 “苹果1”、“苹果a” 等字符串。
  • 数据范围
    确保 VLOOKUP 函数中的数据范围正确,并且范围中的第一列是要查找的列。

完整示例

假设你的表格如下:

A      B
1 产品编号  产品名称
2 001      苹果
3 002      香蕉
4 003      橙子
5 004      葡萄

并且你在 C1 单元格中输入 “果”,在 D1 单元格中输入以下公式:

=VLOOKUP("*" & C1 & "*", B2:B5, 1, FALSE)

效果

这个公式会查找包含 “果” 的所有产品名称,并返回相应的产品编号。例如,对于输入 “果”,会匹配 “苹果”、“香蕉”、“橙子” 和 “葡萄”,并返回相应的产品编号。

二、VLOOKUP 多样通配符组合实现更多样的匹配

好的,我们可以探索更多样的通配符组合以及它们的应用,以实现更加复杂和灵活的模糊搜索。以下是几种常见的通配符组合及其使用示例:

通配符组合

  1. 单个字符匹配 (?)
  2. 任意字符匹配 (*)
  3. 组合使用 ?*

示例数据集

假设我们有以下数据集:

AB
产品编号产品名称
001苹果
002香蕉
003橙子
004葡萄
005苹果汁
006香蕉奶昔
007草莓
008蓝莓
009西瓜
010甜瓜

使用单个字符匹配 (?)

? 代表任意单个字符。例如,我们要查找产品名称中第三个字符是 “果” 的产品。

在 C1 单元格中输入搜索模式 ??果,然后在 D1 单元格中输入以下公式:

=VLOOKUP(C1, B2:B11, 1, FALSE)

在这种情况下,VLOOKUP 会查找所有名称中第三个字符是“果”的产品。

使用任意字符匹配 (*)

* 代表任意数量的字符。例如,我们要查找所有包含“果”的产品。

在 C1 单元格中输入搜索模式 *果*,然后在 D1 单元格中输入以下公式:

=VLOOKUP(C1, B2:B11, 1, FALSE)

这个公式会查找所有包含“果”的产品名称。

组合使用 ?*

可以组合使用 ?* 以实现更加复杂的模式匹配。例如,我们要查找以“苹”开头且包含“汁”的产品。

在 C1 单元格中输入搜索模式 苹*汁,然后在 D1 单元格中输入以下公式:

=VLOOKUP(C1, B2:B11, 1, FALSE)

这个公式会查找以“苹”开头且包含“汁”的产品名称。

更复杂的示例

假设我们要查找所有以“苹”开头并且第三个字符是“汁”的产品。

在 C1 单元格中输入搜索模式 苹?汁*,然后在 D1 单元格中输入以下公式:

=VLOOKUP(C1, B2:B11, 1, FALSE)

结合返回产品编号和名称

在进行通配符模糊搜索时,我们通常还希望返回对应的产品编号和名称。可以在 D1 和 E1 单元格中分别输入两个 VLOOKUP 公式:

  1. 在 C1 单元格中输入搜索关键字:
    输入 *果*

  2. 在 D1 单元格中输入查找产品编号的公式:

    =VLOOKUP("*" & C1 & "*", A2:B11, 1, FALSE)
    
  3. 在 E1 单元格中输入查找产品名称的公式:

    =VLOOKUP("*" & C1 & "*", A2:B11, 2, FALSE)
    

这样我们可以同时在 D1 和 E1 单元格中返回包含“果”的产品的编号和名称。

高级应用:处理多个匹配项

为了处理多个匹配项,可以结合 IFERRORSMALL 和数组公式来实现。假设我们希望返回所有包含关键字的产品编号和名称。

在 C1 单元格中输入搜索关键字 *果*,然后在 D2 单元格中输入以下公式:

  1. 查找产品编号:

    =IFERROR(INDEX(A2:A11, SMALL(IF(ISNUMBER(SEARCH(C1, B2:B11)), ROW(B2:B11)-ROW(B2)+1), ROW(1:1))), "")
    
  2. 查找产品名称:

    =IFERROR(INDEX(B2:B11, SMALL(IF(ISNUMBER(SEARCH(C1, B2:B11)), ROW(B2:B11)-ROW(B2)+1), ROW(1:1))), "")
    

然后按 Ctrl + Shift + Enter 将其作为数组公式输入,并向下复制以找到其他匹配项。

三、高级优化和增强模糊搜索功能

好的,我们可以进一步优化和增强模糊搜索功能,以处理更复杂的搜索需求,例如区分大小写、限定特定范围等。此外,我们可以使用其他函数,如 FILTERSORT,来增强数据筛选和排序功能。

高级优化和增强模糊搜索功能

1. 区分大小写的模糊搜索

默认情况下,SEARCH 函数不区分大小写。如果我们需要区分大小写,可以使用 FIND 函数替代 SEARCH

示例公式:

=INDEX(A:A, MATCH(TRUE, ISNUMBER(FIND(C1, B:B)), 0))

使用 FIND 函数代替 SEARCH 函数,可以实现区分大小写的模糊搜索

2. 限定特定范围的搜索

如果我们只想在特定范围内进行搜索,可以将范围限定在公式中。

示例:
假设我们只想在 B2:B6 范围内进行搜索,可以使用以下公式:

=INDEX(A2:A6, MATCH(TRUE, ISNUMBER(SEARCH(C1, B2:B6)), 0))
3. 使用 FILTER 函数进行高级筛选

如果需要返回所有匹配结果而不仅仅是第一个匹配项,可以使用 FILTER 函数来实现。

示例:
假设我们的数据集如下:

AB
产品编号产品名称
001苹果
002香蕉
003橙子
004葡萄
005苹果汁
006香蕉奶昔

我们想查找所有包含关键字的产品,可以使用以下公式:

=FILTER(A2:B7, ISNUMBER(SEARCH(C1, B2:B7)))

这个公式将返回所有包含关键字的产品及其编号。

4. 使用 SORT 函数进行排序

为了对搜索结果进行排序,可以将 FILTER 函数的结果传递给 SORT 函数。

示例:
将上一步的结果按产品编号排序,可以使用以下公式:

=SORT(FILTER(A2:B7, ISNUMBER(SEARCH(C1, B2:B7))), 1, TRUE)

总结和示例

假设你的工作表如下所示:

AB
产品编号产品名称
001苹果
002香蕉
003橙子
004葡萄
005苹果汁
006香蕉奶昔

并且你在 C1 单元格中输入了搜索关键字 “苹果”。

区分大小写的模糊搜索
=INDEX(A:A, MATCH(TRUE, ISNUMBER(FIND(C1, B:B)), 0))
限定特定范围的搜索:
=INDEX(A2:A6, MATCH(TRUE, ISNUMBER(SEARCH(C1, B2:B6)), 0))
使用 FILTER 函数返回所有匹配结果:
=FILTER(A2:B7, ISNUMBER(SEARCH(C1, B2:B7)))
使用 SORT 函数对搜索结果进行排序:
=SORT(FILTER(A2:B7, ISNUMBER(SEARCH(C1, B2:B7))), 1, TRUE)

http://www.niftyadmin.cn/n/5536086.html

相关文章

【LinuxC语言】往线程池里添加任务、线程池的销毁和其他操作的实现

文章目录 前言添加任务实现流程函数实现获取线程池信息获取线程池工作个数获取线程池中活着的线程数量线程池的销毁实现流程函数实现代码概况总结前言 在并发编程中,线程池是一种常见的设计模式,它可以有效地管理和控制线程的执行。在Linux C语言环境下,我们可以使用POSIX线…

kpatch制作内核热补丁步骤总结

零、原理及参考 kpatch入门实践教程-CSDN博客 Kpatch 使用过程及其原理-CSDN博客 一、准备工作 安装对应版本的kpatch-build.rpm并解决依赖diff -Naur dir1 dir2 > hot.patch 拿到补丁文件下载对应内核版本的src.rpm安装好对应的开发包kernel-debuginfo,kern…

AI学习指南机器学习篇-K均值聚类(K-Means Clustering)简介

AI学习指南机器学习篇-K均值聚类(K-Means Clustering)简介 1. 引言 在机器学习领域中,无监督学习是一种常见的技术,其通过对未标记的数据进行学习,从中发现数据的模式和结构。K均值聚类(K-Means Clusteri…

LangChain 入门上篇:模型 I/O 封装

LangChain 是面向大模型的开发框架,是 AGI 时代软件工程的探索和原型。学习 LangChain 需要关注接口的变更。 LangChain 的核心组件 1.模型 I/O 封装 LLMS 大语言模型Chat Models 一套基于 LLMS,但按对话结构重新封装PromptTemplate 提示词模板Output…

React、JSX简介、渲染列表、基础和复杂的条件渲染

目录 一、简介 1、搭建环境 2、回到项目(VScode) 3、项目核心渲染路径 4、网站资料(启动项目的方法) 二、JSX 三、实现渲染列表 四、实现条件渲染 五、实现复杂条件渲染 一、简介 1、搭建环境 npx creat-react-app reac…

信号量——Linux并发之魂

欢迎来到 破晓的历程的 博客 引言 今天,我们继续学习Linux线程本分,在Linux条件变量中,我们对条件变量的做了详细的说明,今天我们要利用条件变量来引出我们的另一个话题——信号量内容的学习。 1.复习条件变量 在上一期博客中&…

生态共建 | 华宇TAS应用中间件与新华三服务器完成兼容互认证

近日,华宇TAS应用中间件完成与新华三技术有限公司的R4930系列和R4970 G7服务器的兼容适配,认证测试报告显示,双方产品兼容性良好,运行稳定、安全,可以满足用户对双方功能的要求。 新华三技术有限公司 新华三技术有限公…