使用 SEARCH 在 Numbers 中查找文本里的关键字,不考虑大小写。添加辅助列,将每个匹配结果转换为 TRUE 或 FALSE,然后筛选所需的行。Apple 的 SEARCH 文档确认了这一行为。
本指南使用一个虚构的几何项目列表,查找描述中包含指定关键字的条目。Apple 当前的 Mac 指南标明 Numbers 15.4;如果界面不同,请通过 Numbers → 关于 Numbers 查看已安装的版本。Mac 版 Numbers 使用手册
创建不区分大小写的关键字匹配
在一个表格的第 1 行设置以下标题。在 A 列和 B 列中输入描述和对象数量,C 列留空以输入公式。下方显示的是根据已记录函数推导出的预期结果,并非在运行中的 Numbers 会话里测得的结果。
| 行 | A:描述 | B:对象数量 | C:匹配 |
|---|---|---|---|
| 2 | TRIANGLE layout | 6 | TRUE |
| 3 | Small triangle model | 4 | TRUE |
| 4 | Rectangle layout | 8 | FALSE |
| 5 | Triangle and circle study | 5 | TRUE |
| 6 | Circle layout | 3 | FALSE |
点按 C2 单元格,输入以下公式,然后按 Return。输入开头的等号会打开公式编辑器。Apple 在在 Mac 版 Numbers 中使用表格单元格中的数据计算值中说明了这种输入方式。
=IFERROR(SEARCH("triangle",A2)>0,FALSE)
SEARCH 会返回匹配文本的起始位置,并忽略大小写。将该位置与零比较即可得到 TRUE。找不到关键字时,搜索会出错;IFERROR 会以 FALSE 替代错误。两者结合后,就能创建可重复使用的匹配标记。SEARCH、IFERROR
选择 C2,将指针移到单元格边框上,直到出现黄色自动填充控点。向下拖动至 C6。请使用空白目标范围:自动填充会覆盖已有内容。Apple 在在 Mac 版 Numbers 中自动填充单元格中介绍了此过程。
检查 C3 中的公式是否引用 A3,以及 C6 中的公式是否引用 A6。这些是逐行公式:每个公式分别评估一个描述并返回一个结果。使用此方法时,请保留单个单元格引用;将其改为范围引用属于另一种公式设计。
确定关键字匹配的条件
忽略大小写只能解决匹配问题的一部分。你还需要确定关键字是否可以出现在较长文本中、是否必须与整个单元格内容完全一致,或是否应按模式解释。筛选表格前,请先选定规则。
| 需求 | 适用方法 | 示例结果 |
|---|---|---|
| 查找描述中的任意位置是否包含文本 | 使用 SEARCH 和 IFERROR |
triangle 会匹配 TRIANGLE layout |
| 忽略大小写并匹配整个单元格 | 比较小写形式 | triangle 会匹配 TRIANGLE,但不匹配 Triangle layout |
| 查找包含标点符号的字面文本 | 对小写文本使用 FIND |
星号可以作为普通字符处理 |
| 识别结构化模式 | 使用 REGEX 并指定大小写设置 |
明确定义允许的模式 |
匹配整个单元格
若要比较整个单元格,请用以下公式替换 C2 中的公式,然后向下填充:
=LOWER(A2)=LOWER("triangle")
LOWER 会将文本转换为小写,等号比较则会检查转换后的值。这个推导出的公式会接受内容仅为 TRIANGLE 或 Triangle 的单元格,但会拒绝 Triangle layout。空格和标点符号仍会保留,因此请考虑这些差异是否重要。LOWER、使用公式比较值
谨慎处理标点符号和模式
通配符语法赋予 * 和 ? 特殊含义:它们分别代表任意数量的字符和一个字符。在通配符前加波浪号,可将其视为普通字符;例如,~? 会查找问号。使用字符串运算符和通配符
如果要查找字面关键字文本,另一种方法是将两个参数都转换为小写后使用 FIND,其普通文本搜索不支持通配符。以下完整公式会在 A2 的描述中查找字面星号:
=IFERROR(FIND(LOWER("*"),LOWER(A2))>0,FALSE)
这里,LOWER 会在 FIND 执行前消除大小写差异。将引号中的星号替换为所需的字面文本。FIND、LOWER
如果之后要使用正则表达式,请明确指定其大小写行为。Apple 文档说明,REGEX(pattern,FALSE) 会忽略大小写;省略第二个参数则会使正则表达式区分大小写。模式还需要自行定义单词边界或允许的字符。REGEX
匹配任一关键字或同时匹配两个关键字
对于数量较少且固定的关键字集,使用不同的辅助列可让逻辑更容易检查。保留 C2 中的 triangle 测试。在 D1 中添加 Circle match,并在 D2 中输入以下公式,然后向下填充至 D6:
=IFERROR(FIND(LOWER("circle"),LOWER(A2))>0,FALSE)
此公式使用了上文介绍的小写转换和 FIND 方法。现在,C 列和 D 列分别针对同一描述回答不同的问题。在 E1 中添加 Either keyword,在 F1 中添加 Both keywords。分别在 E2 和 F2 中输入以下公式,然后向下填充:
=OR(C2,D2)
=AND(C2,D2)
当至少一个参数为真时,OR 会返回 TRUE。AND 要求所有参数都为真。分别设置标记也可以让你看出是哪个关键字触发了匹配。OR、AND
对于示例描述,除 Rectangle layout 外,每一行至少匹配一个关键字。只有 Triangle and circle study 同时匹配两个关键字。在将公式应用到较大的项目表之前,这些预期结果可用于进行简单的检查。
筛选表格并突出显示清晰易读的结果
要显示匹配的行,请在相应的结果列中选择一个单元格:triangle 对应 C 列,任一关键字对应 E 列,两个关键字都匹配对应 F 列。将指针移到列字母上,打开箭头菜单,然后选择 快速筛选。选择 TRUE,并取消选择其他值。点按工作表上的其他位置即可完成。在 Mac 版 Numbers 中筛选数据
筛选功能控制哪些行可见。如果筛选功能不可用,Apple 建议检查是否存在合并单元格并取消合并。你可以在“整理”边栏的“筛选”标签页中查看或关闭筛选功能。在 Mac 版 Numbers 中筛选数据
若要清楚地标记结果,请添加一个文本结果列。例如,在 G1 中输入 Result,在 G2 中输入以下公式,为任一关键字的匹配结果添加标签:
=IF(E2,"Match","No match")
向下填充公式。E2 为真时,IF 会选择第一个标签;为假时则选择第二个标签。IF
选择 G2:G6,打开 格式 → 单元格 → 条件高亮显示,然后点按 添加规则。选择一个用于测试文本是否等于 Match 的文本规则,选取填充或文本样式,然后点按 完成。Apple 文档介绍的高亮显示流程会根据所选单元格的值进行评估,也允许通过单元格引用进行比较。在 Mac 版 Numbers 中使用单元格条件
这会为结果单元格着色,但不会为整行设置自动格式,也不会只为描述中的关键字着色。请在表格单元格中进行匹配计算,并对结果应用文档所述的高亮规则。若一个单元格同时符合多条高亮规则,Apple 表示列表中的第一条规则会决定其外观。在 Mac 版 Numbers 中使用单元格条件
使用筛选视图前检查意外结果
如果描述被过宽地判定为匹配,请先检查匹配规则。子字符串测试可能会匹配较长单词中的关键字。如果描述应为单个类别标签,请使用整个单元格相等比较;如果边界条件重要,请使用明确定义的模式。
如果结果似乎不正确,请暂时检查内部搜索表达式,并去掉 IFERROR。这个包装函数会用备用值替换所有错误,因此上游错误可能看起来像普通的不匹配。你可以点按 Numbers 中的公式错误来查看错误信息。IFERROR、使用表格单元格中的数据计算值
如果你根据筛选后的表格绘制对象数量图表,请检查图表如何处理隐藏数据。Apple 表示,隐藏或筛选的数据默认会被排除。若要包含这些数据,请选择图表,并在 格式 → 图表 → 图表选项 下启用 隐藏数据。在 Mac 版 Numbers 中修改图表数据
先使用五行示例并确认预期的标记结果。然后选择适合描述内容的匹配规则,将辅助公式扩展到所有数据,并筛选相应的结果列。通过可见的匹配标记,可以轻松检查每个项目行为何被纳入结果。
来源
- Mac 版 Numbers 使用手册 — Apple。
- SEARCH — Apple。
- IFERROR — Apple。
- 在 Mac 版 Numbers 中使用表格单元格中的数据计算值 — Apple。
- 在 Mac 版 Numbers 中自动填充单元格 — Apple。
- LOWER — Apple。
- 使用字符串运算符和通配符 — Apple。
- FIND — Apple。
- REGEX — Apple。
- OR — Apple。
- AND — Apple。
- IF — Apple。
- 在 Mac 版 Numbers 中筛选数据 — Apple。
- 在 Mac 版 Numbers 中使用单元格条件 — Apple。
- 在 Mac 版 Numbers 中修改图表数据 — Apple。