背景

背景

背景

我正在使用 Excel 2013。

我有一个名为的 Excel 表SiteCategories,其中包含多个类别列,然后在这些列中包含站点,如下所示:

在此处输入图片描述

所以我们可以使用以下方法获取这些值=SiteCategories[Category1]

我还有一个 URL 列表——完整的 URL 如下http://www.sitea.com/page/page.html

我想做什么

对于那个巨大的 URL 列表,我希望在它们旁边显示列,表明它们属于 A 类还是 B 类,如下所示:

在此处输入图片描述

我希望匹配不区分大小写,因为 URL 未标准化。但是,如果这样更方便,我可以处理字段或将它们包装起来,lower()尽管我认为这个过程也可以做到这一点。

我被困的地方

我可以对一段文本进行匹配和搜索,但在对一系列文本进行匹配和搜索时却遇到了困难。

本质上我想说的是,如果在 URL 中找到给定类别列中的任何一段文本(不区分大小写),那么该 URL 就属于该类别。

但是,大多数MATCHSEARCH函数似乎不能轻松支持查询一系列值。

好像我想做相反的事情这个问题——而该解决方案使用一个术语上的通配符在多个单元格中查找它,我想使用多个单元格文本作为针对一个字符串的通配符,如果其中任何一个为真,则返回 true。

我现在怎么做

目前,我使用的公式是一个OR使用一堆SEARCH公式的语句,如下所示(F3带有 URL 的单元格在哪里):

=OR(ISNUMBER(SEARCH("sitea.com",F3)), ISNUMBER(SEARCH("siteb.com",F3)),ISNUMBER(SEARCH("sitec.com",F3)), ISNUMBER(SEARCH("sited.com",F3)),ISNUMBER(SEARCH("sitee.com",F3))) 

但是,这有点站不住脚,因为对哪些网站归入哪些类别的要求会随着时间而变化。我希望能够将它们放入表格中,以便于编辑,这就是问题所在。

答案1

您可以使用通过 ctrl+shift+enter 输入的数组公式。搜索不区分大小写,所以应该没问题。

=OR(IFERROR(SEARCH(SiteCategories[Category1],A2),0))

这里设置了处理表格中空行,感谢 Kyle 在评论中提供的建议。

=OR(IFERROR(IF(SiteCategories[Category2]<>"",SEARCH(SiteCategories[Category2],A‌​2),0),0))

相关内容