如何检索匹配的子字符串,其中字符串匹配潜在子字符串列表

时间:2015-12-22 01:36:05

标签: excel excel-formula

Stack Overflow的长期用户虽然无法找到明确的答案

目标:在每个Product字段旁边,我需要找到并检索匹配的Brand,其子字符串在另一个工作表中。

-Worksheet 1(产品)我有一个包含76,000行的列  -Worksheet 2(品牌)我有一个拥有2,000个品牌且不断增长的专栏

示例数据:

产品 COLUMN A

  • ANGEL BRAND BLACK OLIVES 2KG
  • ANMOL SALT TABLE 750GR
  • 76,000人

品牌 COLUMN A

  • ANTONELLI
  • AH
  • AHG

因此,结果应从不断增长的列表中获取品牌,并将其动态放置在产品工作表中:

  • A1-产品B1-品牌
  • A2- ANGEL BRAND BLACK OLIVES 2KG B2- ANGEL
  • C2-ANMOL盐表750GR C3-ANMOL

我搜索了很多论坛,并且确信INDEX MATCH数组是我需要做的,虽然似乎无法获得语法...可能我需要包含一个SEARCH在某个地方。

这是我发现的最接近我需要的东西,虽然不能让它完全适合我:How to find if substring exists in a list of strings (and return full value in list if so)

感谢您在我的解释中耐心等待......我会在这方面做得更好!

更新:虽然刷新需要花费很长时间,而且它只收取前几个字母而不是整个字词,但这种情况与我所做的有关:

  

= IFERROR(INDEX(品牌!A:A,MATCH(TRUE,INDEX(ISNUMBER(搜索(品牌!A:A,A2)),,),0)),"未找到匹配&#34 ;)

1 个答案:

答案 0 :(得分:0)

如果品牌名称始终包含在Products中,您可以尝试:

  

= INDEX(品牌$ A:$ A,MATCH(1,IF(ISERROR(SEARCH(品牌$ A:$ A,A2)),0,1),0))

使用 Ctrl + Shift + 输入在B2上输入此公式。
例如,您有以下设置:

enter image description here

它会给你你想要的东西。请注意,重新计算可能需要一段时间,因为您正在处理大量数据。

另一个选择是使用每次打开工作簿时都需要运行的宏来执行此操作。

重要提示:如果您的产品名称中也包含BLACKOLIVES等品牌名称,则会失败。