怎么算唯一的文本在Excel
好吧,我们已经使用COUNTIF和SUMPRODUCT函数计算了唯一值。尽管该方法很容易,但是当数据很大时,它的速度很慢。在本文中,我们将学习如何使用更快的公式
在excel中计算唯一文本值。
用于计算excel
中唯一文本值的通用公式
=SUM(--(FREQUENCY(MATCH(range,range,0),ROW(first_cell_in_range)+1)>0))
范围:您要从中获得唯一值的范围。
firstCell在范围内:它是范围内第一个单元格的引用。
如果范围为A2:A10,则为A2。
让我们看一个例子,使事情变得清楚。
示例:计算唯一文本值Excel
在Excel工作表中,我具有名称数据在A2:A10范围内。我想从给定范围中获取唯一名称的数量。
在此处应用上述通用公式以计算excel范围A2:A10中的唯一文本。我已将A2:A10命名为名字。
=SUM(--(FREQUENCY(MATCH(names,names,0),ROW(A2)+1)>0))
这将返回范围A2:A10中的唯一文本总数。
如何运作?
让我们从内部解决它。
MATCH(names,names,0)*:
此部分将根据MATCH的属性返回范围A2:A10(名称)中每个值的第一个位置。
\ {1; 1; 3; 3; 5; 5; 7; 7; 7}。
ROW(A2:A19):这将返回范围A2:A10中每个单元格的行号。
\ {2; 3; 4; 5; 6; 7; 8; 9; 10}`link:/ lookup-and-reference-excel-row-function (names)-`link:/ lookup-and -reference-excel-row-function [ROW]
(A2):
现在我们从每个行号中减去第一行号。这将返回一个从0开始的序列号数组。 \ {0; 1; 2; 3; 4; 5; 6; 7; 8}由于我们要使用从1开始的序列号,因此要在其中添加1。
链接:/ lookup-and-reference-excel-row-function [ROW]`(名称)-`link:/ lookup-and-reference-excel-row-function [ROW](A2)+1。
这给了我们一个从1开始的序列号数组。
| \ {1; 2; 3; 4; 5; 6; 7; 8; 9}这将帮助我们获得唯一的条件计数。
现在我们有:
链接:/ statistical-formulas-excel-frequency-function-2 [FREQUENCY]`(* \ {1; 1; 3; 3; 5; 5; 7; 7; 7},\ {1; 2; 3; 4; 5; 6; 7; 8; 9})。
这将返回给定数组中每个数字的频率。\ {2; 0; 2; 0; 2; 0; 3; 0; 0; 0}这里,每个正数表示当满足条件时出现唯一值。我们需要在该数组中计数大于0的值。
为此,我们将其检查> 0。这将返回TRUE和FALSE。我们使用-(双二进制运算符)将true转换为false。
link:/ math-and-trig-excel-sum-function [SUM]
(-(\ {2; 0; 2; 0; 2; 0; 3; 0; 0; 0})> 0)这个转换为`link:/ math-and-trig-excel-sum-function [SUM]`(\ {1; 0; 1; 0; 1; 0; 1; 0; 0; 0} 0))
最后,我们得出标准范围内名称的唯一计数为4。
如何计算空白单元格范围内的唯一文本?
上面的公式的问题是,当您在范围内有空白单元格时,它将弹出#N / A错误。为了解决这个问题,我们需要提供一个条件来检查空白单元格。
这将给出正确的输出。在这里,我们用IF函数封装了MATCH。您可以阅读文章如何在具有多个条件的Excel中计算唯一值吗?
=SUM(--(FREQUENCY(IF(names <> “”,MATCH(names,names,0)),ROW(A2)+1)>0))
好的,这就是您如何在excel中获得唯一文本数的方法。如果您对此或任何其他高级excel / vba主题有任何疑问,请告诉我。评论部分向您开放。