Excel - 从逗号分隔列表中找到确切的字符串

时间:2016-08-06 22:34:52

标签: string excel indexing

抱歉,如果已经提出过这个问题,请阅读很多关于此的答案,(这是最能描述我情况的答案 - Excel - Match cells that contains exact match from list

我希望Excel能够索引一个列,其中单元格包含以逗号分隔的值列表。有些列表只有一个条目,因此没有逗号。

我希望Excel找到给定字符串的完全匹配,例如,如果我搜索" C2"我希望它只能找到" C2"而不是" C22"或" C230"。它还应该找到" C2,"

我已经使用这个公式为单细胞工作:

= ISNUMBER(找到(""& E $ 1&",&#34 ;;""& $ B1&", &#34))

其中" C2"包含在单元格E1中,逗号分隔列表位于单元格B1中。

但是,如果我尝试将其合并到一个INDEX公式中(我希望它从列A中存在C2的单元格中返回相应的值),它再次找到" C2&#34的所有实例;。我写了如下公式:

= INDEX(A:A; ISNUMBER(找到(""& E $ 1&",&#34 ;;""& B: B&",")))

如果有人对如何让这个工作有任何建议,我将非常感激!

卡特里娜

2 个答案:

答案 0 :(得分:0)

在辅助列中使用=ISNUMBER(FIND(" "&E$1&", "; " "&$B1&", "))函数,例如F,然后沿B中的逗号分隔值向下拉。

使用=INDEX(A:A;MATCH(TRUE;F:F;0))。在没有发生C2的情况下,这将首次发现C2或#NV。

请注意,该功能将找到“C2”和“C2”,但不会找到“C2”。

答案 1 :(得分:0)

=SUMPRODUCT(ISNUMBER(FIND(" "&E$1&", "; " "&B:B&", "))*A:A)

SUMPRODUCT适用于数组。 ISNUMBER函数返回一个false / 0和true / 1数组,然后与A列中的相应值相乘,仅返回A中ISNUMBER为真的值。如果多次出现E1值,则返回A中各个值的总和。

为了获得更好的性能,A和B中的范围应限制在可能值的范围内,例如A1:A100和B1:B100。