2015-11-19 49 views
0

软件:Excel中的Mac 2011是否可以计算单元格内唯一字符的数量?使用

我有一个包含字母数字串一列单元格,我期待计数的出现在每个小区唯一字符数。我想拥有它的功能,如下图所示:

333333333 = 1; BEE = 2; DOG = 3; BREED = 4; APPLEPEOPLE = 5; ABC123 = 6

因为我的工作数据,我不需要空间中包含或字符计数排除或任何区别是由大写或小写字符组成。

感谢您的帮助。

+0

这是,但它的公式会太繁琐和大。最好转向VBA。公式明智的如果您的左列没有很长的条目,您可以将一些列专用于保存第一列的1个符号,然后清除包含展开符号的行中的副本并计算一行中有多少个单元格不为空。或者,您可以匹配您可能拥有的每个符号与每个单元格的内容。如果它只是英文字母和数字,35匹配每个单元格。 – helena4

回答

3

试试这个:

=SUM(IF((LEN(G13)-LEN(SUBSTITUTE(UPPER(G13),{"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","1","2","3","4","5","6","7","8","9","0"},""))),1,0)) 

如前所述这是相当长的。这将计算英文字母数字字符的上限和下限,但正如helena4指出的那样,您需要将其他符号添加到公式中的数组中,否则它们将不会被计数。

显然,将G13引用更改为具有所需文本的单元格以进行计数。

如果你想有一个UDF使用此:

Function Uniquecount(Rng As Range) As Integer 
Dim cUnique As Collection 
Dim i As Integer 
Set cUnique = New Collection 

On Error Resume Next 
For i = 1 To Len(Rng) 
    cUnique.Add CStr(Mid(Rng, i, 1)), CStr(Mid(Rng, i, 1)) 
Next i 
On Error GoTo 0 

Uniquecount = cUnique.Count 
End Function 

把它连接到工作簿中的模块中。然后像任何其他公式一样称呼它:=Uniquecount(G13)

这将包括空格在内的所有数据。

+0

纯粹的光彩。 –

+0

甚至更​​长的时间,因为你必须包括打破你的概念的小写字母,这是希望他不使用任何其他符号或语言。如果你确实坚持有一个公式,我可以让它为你工作... – helena4

+0

@ helena4随时发布你自己的,如果它更好,更简洁我会鼓励OP选择你的。我不贪心,并且很想学习新东西。 –

相关问题