2013-11-25 30 views
0

我目前有一个Excel公式,可以搜索单元格中包含的逗号分隔的列表字符串,并确定该单元格是否包含另一个确切的字符串作为一个元素。寻找替代MAX(COUNTIF(Range,Criteria)),可以忽略空格

其计算公式为:MAX(COUNTIF(A1,{"*,";""}&B1&{"",",*"}))

公式行为,正确,就像这样:

A   B  Result Comment 
1,2,3  1  1   1 exists in 1,2,3 
1,2,3  2  1   2 exists in 1,2,3 
A,B,C  C  1   C exists in A,B,C 
A,B,C  Z  0   Z does not exist in A,B,C 
123,456,789 5  0   5 does not exist in 123,456,789 

我这个遇到的问题是,该公式只要空格引入失败。由于COUNTIF必须通过一定范围,因为它是第一个参数,我不能简单地用:

SUBSTITUTE(A1," ","") 

我也愿意,如果可能的话,不使用任何外来的细胞保持空白消除串。

中编写函数可以非常简单地完成此任务,但由于此电子表格将分发给最终用户(可能会无意中禁用宏),因此这不是理想的解决方案。

有没有人知道上面提出的任何替代公式?

回答

1
=SEARCH("," & B1 & ",", "," & SUBSTITUTE(A1," ","") & ",") 

,但如果你的任何字符串可以找到这个办法,就不会包含空格

+0

这非常适合我的用例,但可能不适合所有情况(正如您指出的那样,所需字符串包含空格的情况)。我会进一步考虑这点(因为可重用是我的最终目标)。无论如何,你对我表示感谢。 –

1
=IF(ISNUMBER(SEARCH(B1,A1,1))=TRUE,"Text True","Text false") 

这是否解决您的问题?它搜索A列中的文本并返回文本结果。

+0

不幸的是没有,因为这将找到“5”,在“123,456,789”,因为它是存在的“456”一子。 –