如何使用 Excel 过滤器“包含”在列中搜索精确的单词?

如何使用 Excel 过滤器“包含”在列中搜索精确的单词?

我正在寻找包含以下单词的单元格阿尔迪在过滤器下拉列表中。因此我选择“包含”,然后输入阿尔迪

这将带回含有 Ger 的细胞阿尔迪等等

aldi *我使用空格和星号取得了一些成功,它删除了像 Ger 这样的结果阿尔迪但仍包含类似以下结果维瓦尔第

我不介意字符串中是否包含另一个单词以及阿尔迪例如Aldi 商店 123。我只是想确保阿尔迪本身就是。

数据样本:

GERALDINE
RISTORANTE GARIBALDI
ALDI
PORTA GARIBALDI
GRIMALDI
ALDI STORES

截图是我目前所做的。

答案1

首先在标准模块中输入以下用户定义函数:

Public Function aldi(sIn As String) As String
    arr = Split(LCase(Replace(sIn, ".", "")))
    aldi = "h"
    For Each a In arr
        If a = "aldi" Then
            aldi = "s"
        End If
    Next a
End Function

它将返回“s”用于“显示”或“H”隐藏

如果您的数据在列中A,然后在B2进入:

=aldi(A2)

并向下复制:

在此处输入图片描述

然后过滤列仅显示“s”行:

在此处输入图片描述

用户定义函数 (UDF) 非常容易安装并使用:

  1. ALT-F11 打开 VBE 窗口
  2. ALT-I ALT-M 打开新模块
  3. 粘贴内容并关闭 VBE 窗口

如果您保存工作簿,UDF 将随之保存。如果您使用的是 2003 之后的 Excel 版本,则必须将文件保存为 .xlsm 而不是 .xlsx

消除UDF:

  1. 调出如上所示的 VBE 窗口
  2. 清除代码
  3. 关闭 VBE 窗口

使用Excel 中的 UDF:

=aldi(A1)

要了解有关宏的更多信息,请参阅:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

有关 UDF 的详细信息,请参阅:

http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx

必须启用宏才能使其工作!

编辑#1:

代码行:

arr = Split(LCase(Replace(sIn, ".", "")))
  • 把短语或句子转换成小写;所以阿尔迪阿尔迪受到同等对待。
  • 它删除了句号,因此任何阿尔迪。被考虑“展示”
  • 它使用空格字符作为分隔符创建一个单词数组。
  • 它寻找“阿尔迪”在那个数组中

相关内容