INDEX-MATCH 用于具有多个查找值的参考行的部分匹配

INDEX-MATCH 用于具有多个查找值的参考行的部分匹配

我有以下两个(缩短的)表格:

A1:A5 - 数据表

URL
shop.samsung.com/au/accessories/mobile-accessories
samsung.com/us/amp/us/smartphones/galaxy-s9
samsung.com/us/appliances/electric-ranges
samsung.com/global/business/semiconductor/minisite/SSD/notice.html

E1:F5-参考表

If Folder Contains          Value
mobile-accessories          Mobile Accessories
smartphones                 Mobile Phone
appliances/electric-ranges  Cooking Appliance
appliances/refrigerators    Semiconductor

我正在尝试创建一个公式,该公式将查看 URL 表,检查字符串在引用表的“如果文件夹包含”列中是否有部分匹配,并返回值。例如,如果我选择第一个链接 (A2),我希望公式返回“Mobile Accessories”,因为 A2 在 URL 中包含“mobile-accessories”。

我知道如何反向操作(只需在前面/后面使用通配符进行 vlookup),但我不知道该怎么做。任何指导都将不胜感激

答案1

只是想知道电器/冰箱应该映射到半导体正如你在你的例子中所展示的那样。我认为可能是商业/半导体可能映射到半导体. 但这不是问题。

在此示例中,示例 URL 数据位于 A1:A5,映射表位于 E1:F5。现在在 B2 中输入以下公式,然后按公式栏中的CTRL+ SHIFT+ENTER以创建数组公式。公式现在应括在花括号中,以表明它是一个数组公式。

将其向下拖动至目标行。

=IFERROR(INDEX($F$2:$F$5,MAX(IF(ISERROR(SEARCH($E$2:$E$5,A2)),0,ROW($E$2:$E$5))-ROW($F$1))),"No Category")

在此处输入图片描述

添加外部 IFERROR 只是为了美观,如果未找到匹配项,则显示“无类别”文本。如果您的 EXCEL 版本早于 2007,则可以删除它。对于此类情况,公式将只返回错误,而不是“无类别”消息,或者您也可以使用 IF(ISERROR()) 构造的混合。

答案2

为了解决这个问题,您需要辅助列来存储部分匹配字符串。

在此处输入图片描述

在单元格中写入此公式N41并向下填充。

=VLOOKUP($N36,$O36:$O36,1,TRUE)

根据需要调整公式中的单元格引用。

相关内容