在“计算字段”中计算受条件限制的不同值

如何在数据透视表中创build一个计算字段来计算Field1的不同值,因为Field2满足特定的条件? 我的限制:

  • 需要在数据透视表中
  • 需要是一个计算的领域
  • 计算字段需要是唯一的计数“公式”,而不是简单的字段设置更改。

这是我想要实现的一个例子。 原始数据:

╔═════════════╦═══════════╦═════════╗ ║ Date Period ║ Client ID ║ Field 2 ║ ╠═════════════╬═══════════╬═════════╣ ║ 1 ║ A ║ 1 ║ ║ 1 ║ A ║ 1 ║ ║ 1 ║ A ║ 1 ║ ║ 1 ║ B ║ 1 ║ ║ 1 ║ B ║ 1 ║ ║ 1 ║ C ║ 1 ║ ║ 2 ║ A ║ 1 ║ ║ 2 ║ A ║ 1 ║ ║ 2 ║ B ║ 0 ║ ║ 2 ║ C ║ 0 ║ ║ 2 ║ C ║ 0 ║ ╚═════════════╩═══════════╩═════════╝ 

这是数据透视表输出的样子:

 ╔═════════════╦═══════════════════════════════════╦═══════════════════════════════════╗ ║ Date Period ║ Distinct Clients where Field 2= 1 ║ Distinct Clients where Field 2= 0 ║ ╠═════════════╬═══════════════════════════════════╬═══════════════════════════════════╣ ║ 1 ║ 3 ║ 0 ║ ║ 2 ║ 1 ║ 2 ║ ╚═════════════╩═══════════════════════════════════╩═══════════════════════════════════╝ 

我已经看到了非数据透视表数据使用数组函数(SUM,IF,FREQUENCY和MATCH的组合)的方法。 我可以使用数据透视表字段吗?

我没有任何VBA背景。 使用Excel 2013。

我build议创build一个数据透视表,将这些数据添加到选中的数据模型中,ROWS的Date Period ,COLUMNS的Field 2和VALUES的Client ID不同计数。

我感谢这可能被视为“只是一个场改变设置”。

SO2990986的例子

在玩了一段时间后,我想我已经明白了:

  • 使用PowerPivot表
  • 使用计算的字段
  • 在计算的字段中使用CALCULATE函数,根据filter/条件执行不同的计数

您可以安装PowerPivot附件(文件 – >选项 – >加载项 – >托pipe:COM加载项 – >检查Microsoft Office PowerPivot for Excel 2013)以获取PowerPivot选项卡。

您需要将数据添加到数据模型(通过单击“pipe理”并导入数据,或突出显示表并单击“添加到数据模型”)。 然后,您单击PowerPivotpipe理区域中的数据透视表button。

将date期间拖到行。 然后,在PowerPivot选项卡中,单击计算字段 – >新计算字段

现在,我的字段(名称:区别客户端数字,其中Field2 = 1)具有以下公式:

 =CALCULATE(DISTINCTCOUNT(Table1[Client ID]),Table1[Field 2] = 1) 

其中Table1是我的数据模型(源数据)的名称。 CALCULATE函数允许您将filter应用于聚合计算。 DISTINCTCOUNT是您input的第一个字段的明显数量。

这是最后的输出:

 ╔═════════════╦════════════════════════════════════════╗ ║ Date Period ║ Distinct Client Count Where Field2 = 1 ║ ╠═════════════╬════════════════════════════════════════╣ ║ 1 ║ 3 ║ ║ 2 ║ 1 ║ ║ Grand Total ║ 3 ║ ╚═════════════╩════════════════════════════════════════╝