如何在具有过滤器的数据透视表(Excel for Mac)中获得不同的计数?
Posted
技术标签:
【中文标题】如何在具有过滤器的数据透视表(Excel for Mac)中获得不同的计数?【英文标题】:How to get distinct count within pivot table(Excel for Mac) having filters? 【发布时间】:2019-06-05 12:54:22 【问题描述】:Excel for Mac 不支持 Power Pivot,因此没有不同计数 功能。
在这种情况下获得不同计数的最佳解决方法是什么?
Excel 列示例:
期间标准 1 标准 2 标准 3 数据
示例数据透视表:
“期间”中的不同值将成为数据透视列。 “Criteria1”可以是数据透视表的过滤器。 'Criteria2'&'Criteria3' 列都可以是数据透视行。现在,count of'Data'可以直接通过pivot获取。
如何获得'Data'的distinct count?
答案选项
-
对原始数据使用 'Countif' - 缺点: 处理大数据时速度非常慢。
计算通过连接 Criteria 列生成的唯一键 - 缺点:在具有许多标准列的大型数据中变得复杂并且需要更多努力
有没有更好的解决方法来获得具有过滤器/多个条件的数据透视表(Excel for Mac)中的不同计数?
【问题讨论】:
当您突出显示从中创建数据透视的原始数据集时,底部应该有一个小文本说将其添加到数据模型中勾选旁边的框 - 然后当您分配您的数据透视表中的值,您将能够选择不同的计数函数(它将出现)-它将是列表中的最后一个 Criteria 是复数,单数是criteria... @AnnaSemjén 此功能在“Excel for Mac”中不可用。 您只能使用具有唯一记录的高级过滤器选项 - 根据您需要的列,您将数据集复制到另一个没有重复值的位置并创建数据透视表。但这仍然很麻烦,特别是如果您想拥有和额外的过滤器。 看起来很多有用的功能在 Mac 版本上不可用 - 电子表格比较应用程序也丢失了.. 【参考方案1】:我认为我遇到了类似的问题,这就是我“修复”它的方法。
-
向名为“DistinctValue”的表中添加一列 - 或“Crit2:Crit3”无关紧要
添加一个公式,将数据透视表中所有字段的值连接为一行:
=[@Criteria2]&":"&[@Criteria3]
-
取决于你的价值观,但对我来说:
作为连接符
工作正常。空格或无字符也可以使用。
添加“不同”列
添加公式:=IF(MATCH([@DistinctValue],Y:Y,0)=ROW([@DistinctValue]), 1, 0)
将数据透视表中的这一行用作SUM
的值并将其命名为“Count”。
这将为您的数据表中用于数据透视的每个第一行不同值提供1
。用于数据透视表的数据行应该正好有一行,每个行的部分都有一个1
。如果你把它加起来,你就会得到不同的计数。
如果向数据透视表添加新行,则需要将其添加到 2. 中的公式中以再次获得不同的值。
编辑:例如,在将公式名称翻译成德语时,您可能必须在公式中将 ,
与 ;
交换为其他语言。
【讨论】:
这行得通,但是第 4 行有一个错误。分号必须是逗号。工作示例:=IF(MATCH(AM2,AM:AM,0)=ROW(AM2), 1, 0)
我认为这是一个语言“问题”。我使用的是德语版本,而 Excel 想要有分号。在英文版本中,您可能必须使用逗号。不了解其他语言 - 我同意这是一种非常奇怪的行为。顺便说一句:我将函数名称翻译成英文以使其具有国际性,但忘记了分隔符。【参考方案2】:
以下解决方案有几个步骤,但回报是它可以很好地扩展,因为该公式在大集合上的性能与在小集合上一样好,而不是查找/匹配,集合越大越慢.
(1) 对具有重复值的字段进行自定义排序。例如 “电子邮件地址” 注意如果您更喜欢计算特定实例(即创建日期最近的记录),请设置排序以使这些重复项首先显示。
(2) 创建一个新列,将其称为唯一计数或你有什么。如果前一个值和当前值不相等,则在该列中使用公式 1。例如。 =IF(精确(A2,A3),0,1)
(3) 填写。
(4) 在这张桌子上转动。现在,当您进行计数/求和时,请使用唯一计数。
【讨论】:
以上是关于如何在具有过滤器的数据透视表(Excel for Mac)中获得不同的计数?的主要内容,如果未能解决你的问题,请参考以下文章
如何查看具有实际列值的数据透视表,例如在 excel 中的访问