在Excel中用公式或透视表计算唯一和不同的值

  • Share This
Michael Brown

在本教程中,你将学习如何用公式计算Excel中的唯一值,以及如何在数据透视表中获得唯一值的自动计数。 我们还将讨论一些计算唯一名称、文本、数字、区分大小写的唯一值等的公式例子。

当在Excel中处理一个大型数据集时,你可能经常需要知道有多少个 重复 独特的 有时,你可能想只计算 鲜明的 (不同)的值。

如果你经常访问这个博客,你已经知道了计算重复值的Excel公式。 而今天,我们将探讨在Excel中计算唯一值的不同方法。 但为了清楚起见,我们先定义一下术语。

  • 独特的 值 - 这些是在列表中只出现一次的值。
  • 区别 values - 这些是列表中所有不同的值,即唯一的值加上重复值的第一次出现。

下面的截图展示了区别。

现在,让我们看看如何使用公式和PivotTable功能在Excel中计算唯一和不同的值。

    如何计算Excel中的唯一值

    这里有一个所有Excel用户都必须偶尔执行的常见任务。 你有一个数据列表,你需要找出该列表中唯一值的数量。 你如何做到这一点? 比你想象的要容易:) 下面你会发现一些计算不同类型的唯一值的公式。

    计算一个列中的唯一值

    假设你在Excel工作表中有一列名字,你需要计算这一列中唯一的名字。 解决方案是使用SUM函数与IF和COUNTIF相结合。

    =sum(if(counttif( 范围 , 范围 )=1,1,0))

    注意事项 这是一个数组公式,所以一定要按Ctrl + Shift + Enter来完成它。 一旦你这样做,Excel会自动将公式用{大括号}括起来,就像下面的截图一样。 在任何情况下,你都不应该手动输入大括号,那是行不通的。

    在这个例子中,我们要计算A2:A10范围内的唯一名字,所以我们的公式采用以下形式。

    =SUM(IF(COUNTIF(A2:A10,A2:A10)=1,1,0))

    在本教程中,我们将进一步讨论其他一些计算不同类型的唯一值的公式。 由于所有这些公式都是Excel唯一值基本公式的变体,因此对上述公式进行分解是有意义的,这样你就可以充分了解它的工作原理,并根据你的数据进行调整。 如果有人对技术问题不感兴趣,你可以直接跳到下一个公式的例子。

    Excel的唯一值计数公式是如何工作的

    正如你所看到的,在我们的独特价值公式中使用了3个不同的函数--SUM、IF和COUNTIF。 从内向外看,这里是每个函数的作用。

    • COUNTIF函数计算每个单独数值在指定范围内出现的次数。

      在这个例子中。 countif(a2:a10,a2:a10) 返回数组 {1;2;2;1;2;2;2;1;2} .

    • IF函数对COUNTIF返回的数组中的每个值进行评估,保留所有的1(唯一值),并将所有其他值替换为0。

      因此,该函数 IF(COUNTIF(A2:A10,A2:A10)=1,1,0) 成为 if(1;2;2;1;2;2;1;2) = 1,1,0, 变成了数组 {1;0;0;1;0;0;0;1;0} 其中1是唯一的值,0是重复的值。

    • 最后,SUM函数将IF返回的数组中的值相加,输出唯一值的总数,这正是我们想要的。

    提示:要查看Excel唯一值公式的特定部分的评估结果,在公式栏中选择该部分并按F9键。

    计算Excel中的唯一文本值

    如果你的Excel列表同时包含数字和文本值,而你只想计算唯一的文本值,可以在上面讨论的数组公式中添加ISTEXT函数。

    =sum(if(istext(a2:a10)*countif(a2:a10,a2:a10)=1,1,0))

    如你所知,Excel ISTEXT函数在评估值为文本时返回TRUE,否则返回FALSE。 由于星号(*)在数组公式中作为AND运算符工作,IF函数只在一个值既是文本又是唯一的情况下返回1,否则返回0。 而在SUM函数将所有1相加后,你将得到指定范围内唯一文本值的数量。

    不要忘记按Ctrl + Shift + Enter键来正确输入数组公式,你会得到一个类似这样的结果。

    正如你在上面的截图中看到的,该公式返回唯一文本值的总数,不包括空白单元格、数字、TRUE和FALSE的逻辑值以及错误。

    计算Excel中唯一的数字值

    要计算数据列表中的唯一数字,可以利用一个数组公式,就像我们刚才用来计算唯一文本值一样,唯一的区别是你在唯一值公式中嵌入了ISNUMBER而不是ISTEXT。

    =sum(if(isnumber(a2:a10)*counttif(a2:a10,a2:a10)=1,1,0))

    注意:由于Microsoft Excel将日期和时间作为序列号存储,因此也会被计算在内。

    计算Excel中区分大小写的唯一值

    如果你的表包含大小写敏感的数据,计算唯一值的最简单方法是用以下数组公式创建一个辅助列,以识别重复和唯一的项目。

    =IF(SUM((--EXACT($A$2:$A$10,A2))=1, "唯一", "重复")

    然后,使用一个简单的COUNTIF函数来计算唯一值。

    =COUNTIF(B2:B10, "unique")

    计算Excel中的不同值(唯一的和第一次重复出现的)。

    要获得一个列表中不同值的计数,请使用以下公式。

    =sum(1/countif( 范围 , 范围 ))

    记住,这是一个数组公式,因此你应该按Ctrl + Shift + Enter快捷键,而不是通常的回车键。

    另外,你也可以使用SUMPRODUCT函数,按回车键以常规方式完成公式。

    =sumproduct(1/counttif( 范围 , 范围 ))

    例如,要计算A2:A10范围内的不同值,你可以用以下两种方法。

    =sum(1/countif(a2:a10,a2:a10))

    =sumproduct(1/countif(a2:a10,a2:a10))

    Excel独特的公式是如何工作的

    正如你已经知道的,我们使用COUNTIF函数来找出每个单独的值在指定范围内出现的次数。 在上面的例子中,COUNTIF函数的结果是以下数组。 {2;2;3;1;2;2;3;1;3} .

    之后,进行一些除法运算,数组中的每个值都被用作除数,分红为1。 这将所有重复的值变成与重复出现次数相对应的小数。 例如,如果一个值在列表中出现2次,它在数组中产生2个值为0.5(1/2=0.5)的项。 如果一个值出现3次,它在数组中产生3个项目,其值为0.3(3)。 在我们的例子中,结果是 1/countif(a2:a10,a2:a10)) 是数组 {0.5;0.5;0.3(3);1;0.5;0.5;0.3(3);1;0.3(3)} .

    这是因为我们还没有应用SUM/SUMPRODUCT函数。 当这些函数将数组中的数值相加时,每个项目的所有小数之和总是产生1,无论该项目在列表中出现多少次。 因为所有唯一的数值在数组中都以1的形式出现(1/1=1),所以最终结果由公式是列表中所有不同数值的总数。

    计算不同类型的不同值的公式

    就像在Excel中计算唯一值一样,你可以使用基本的Excel计数不同公式的变化来处理特定的值类型,如数字、文本和大小写敏感的值。

    请记住,以下所有的公式都是数组公式,需要按Ctrl + Shift + Enter .

    计算不同的值,忽略空单元格

    如果你想计算不同值的一列可能包含空白单元格,你应该添加一个IF函数,它将检查指定区域的空白(上面讨论的Excel基本不同值公式在这种情况下会返回#DIV/0错误)。

    =SUM(IF( 范围 "",1/COUNTIF( 范围 , 范围 ), 0))

    例如,要计算A2:A10范围内的不同值,使用以下数组公式。

    =sum(if(a2:a10"",1/countif(a2:a10, a2:a10), 0))

    计算不同文本值的公式

    为了计算一列中的不同文本值,我们将使用与刚才排除空单元格的方法。

    正如你很容易猜到的那样,我们将简单地把ISTEXT函数嵌入到我们的Excel数独公式中。

    =sum(if(istext( 范围 ),1/COUNTIF( 范围 , 范围 ),""))

    这里有一个现实生活中的公式例子。

    =sum(if(istext(a2:a10),1/countif(a2:a10, a2:a10),"" )

    计算不同数字的公式

    要计算不同的数值(数字、日期和时间),请使用ISNUMBER函数。

    =sum(if(isnumber( 范围 ),1/COUNTIF( 范围 , 范围 ),""))

    例如,要计算A2:A10范围内的所有不同数字,使用以下公式。

    =sum(if(isnumber(a2:a10),1/countif(a2:a10, a2:a10),"" ))

    在Excel中计算区分大小写的不同值

    与计算区分大小写的唯一值类似,计算区分大小写的唯一值的最简单方法是添加一个带有数组公式的辅助列,以识别包括首次重复出现的唯一值。 该公式与我们用来计算区分大小写的唯一值的公式基本相同,只是在单元格引用中做了一个小的改动,这就有了很大的不同。

    =IF(SUM((--EXACT($A$2:$A2,$A2)))=1, "Distinct",")

    正如你所记得的,Excel中所有的数组公式都需要按Ctrl + Shift + Enter 。

    上述公式完成后,你可以用通常的COUNTIF公式来计算 "不同 "的值,比如这样。

    =COUNTIF(B2:B10, "distinct")

    如果你没有办法在你的工作表中添加一个辅助列,你可以使用以下复杂的方法 阵列公式 来计算区分大小写的不同值,而不需要创建一个额外的列。

    =sum(iferror(1/if($a$2:$a$10"", frequency(if(exact($a$2:$a$10, transpose($a$2:$a$10)), match(row($a$2:$a$10), row($a$2:$a$10)), ""), match(row($a$2:$a$10), row($a$2:$a$10) ), 0, 0)

    在Excel中计算唯一和不同的行

    在Excel中计算唯一/不同的行类似于计算唯一和不同的值,唯一不同的是你使用COUNTIFS函数而不是COUNTIF,后者让你指定几列来检查唯一值。

    例如,要根据列A(名字)和列B(姓氏)中的值计算唯一或不同的名字,请使用以下公式之一。

    计算唯一行的公式。

    =SUM(IF(COUNTIFS(A2:A10,A2:A10, B2:B10,B2:B10)=1,1,0))

    计算不同行数的公式。

    =SUM(1/COUNTIFS(A2:A10,A2:A10,B2:B10,B2:B10))

    当然,你并不局限于只根据两列计算唯一行,Excel COUNTIFS函数可以处理多达127个范围/标准对。

    在Excel中使用PivotTable计算不同的值

    最新版本的 Excel 2013 Excel 2016 有一个特殊的功能,允许在数据透视表中自动计算不同的值。 下面的截图给出了一个概念,即Excel如何 分别计数 看起来像。

    要为某一列创建一个带有明显计数的透视表,请执行以下步骤。

    1. 选择要包含在数据透视表中的数据,切换到 插入 标签。 桌子 组,并点击 数据透视表(PivotTable 按钮。
    2. 创建透视表 对话框,选择将数据透视表放置在新的还是现有的工作表中,并确保选择 将这些数据添加到数据模型中 复选框。

  • 当你的数据透视表打开时,按照你想要的方式安排行、列和值区域。 如果你对Excel数据透视表没有太多的经验,下面的详细指南可能会有帮助:在Excel中创建数据透视表。
  • 移动你想计算的字段的不同计数( 项目 在这个例子中是指 价值观 区域,点击它,并选择 字段值设置... 从下拉菜单中选择。
  • ǞǞǞ 值域设置 对话窗口将打开,你向下滚动到 分别计数 这是列表中的最后一个选项,选择它并点击 认可 .
  • 如果你愿意,你也可以给你的Distinct Count起一个自定义的名字。

    完成!新创建的数据透视表将显示不同的计数,如本节的第一个截图所示。

    提示:在更新你的源数据后,记得更新数据透视表以使不同的计数达到最新。 要刷新数据透视表,只需点击 刷新 上的按钮。 分析一下 选项卡,在 数据 组。

    这就是如何在Excel中计算不同的和唯一的值。 如果有人想仔细看看本教程中讨论的公式,欢迎下载Excel计数唯一工作簿样本。

    感谢你的阅读,希望下周再次见到你。 在下一篇文章中,我们将讨论在Excel中寻找、过滤、提取和突出独特值的各种方法。 请继续关注!

    Michael Brown is a dedicated technology enthusiast with a passion for simplifying complex processes using software tools. With more than a decade of experience in the tech industry, he has honed his skills in Microsoft Excel and Outlook, as well as Google Sheets and Docs. Michael's blog is dedicated to sharing his knowledge and expertise with others, providing easy-to-follow tips and tutorials for improving productivity and efficiency. Whether you're a seasoned professional or a beginner, Michael's blog offers valuable insights and practical advice for getting the most out of these essential software tools.