计算唯一字符串变体

时间:2014-07-31 14:09:40

标签: excel vba excel-vba excel-formula countif

可能有一个非常简单的解决方案,但我试图找到一个字符串的唯一变体(即非重复)出现在列中的次数。但是,此字符串只是单元格中包含的文本的一部分,而不是整个单元格。举例说明:

EuropeSpainMadrid
EuropeSpainBarcelona
AsiaChinaShanghai
AsiaJapanTokyo
EuropeEnglandLondon
EuropeSpainMadrid

我想找到包含" EuropeSpain"的字符串有多少个唯一实例。因此,使用这个例子,我会发现" EuropeSpain"的变体。只出现两次(假设第二个" EuropeSpainMadrid"是重复的)。

对此的解决方案是使用枢轴来汇总数据并删除重复数据;但是,鉴于我的基础数据集经常更改,这将需要手动调整和更正。因此,我希望避免在我的数据和计数之间添加任何中间步骤(即数据透视表,其他数据集等)。

更新:我现在明白要使用通配符来解决我问题的第一部分(计算" EuropeSpain"的出现次数),但我还不清楚第二部分我的问题的一部分(如何找到唯一事件的数量)。

是否有可以执行此操作的公式或VBA代码?

2 个答案:

答案 0 :(得分:2)

使用通配符:

=COUNTIF(A1:A6,"="&"*"&C1&"*")

enter image description here

答案 1 :(得分:1)

对于没有VBA但具有一定的多功能性,我建议使用ColumnA中的Text(标记),ColumnB中标记为FlagEuropeSpain的C1:

=FIND(C$1,A2)  
B2中的

被复制下来。

然后使用Flag为FILTERS(并选择1),ROWS的文本和Sigma VALUES的文本计数来转动A:B。

如果需要,可以应用不同的值(并且可用!),或者类似的公式:

=MATCH("Grand Total",E:E)-4

会算上独特的。