如何在具有过滤器的数据透视表(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的数据透视表中,如何过滤value中的0值?

如何查看具有实际列值的数据透视表,例如在 excel 中的访问

过滤数据透视表列,仅在

Excel 2013 过滤多个 OLAP 数据透视表

如何使用 vba 从具有多个数据字段的 excel 数据透视表中删除小计

使用 VBA 过滤 Excel 数据透视表