首页 文章

根据计算字段中的条件计算不同的值

提问于
浏览
0

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

  • 需要在数据透视表中

  • 需要是一个计算字段

  • 计算字段需要是唯一计数"formula",而不仅仅是字段设置更改 .

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

╔═════════════╦═══════════╦═════════╗
║ 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 .

2 回答

  • 0

    我建议创建一个数据透视表,将此数据添加到已选中的数据模型, Date Period 表示ROWS, Field 2 表示COLUMNS,不同计数为 Client ID 表示VALUES .

    我很欣赏这可能算作“简单的字段更改设置” .

    SO2990986 example

  • 1

    经过一番游戏后,我想我已经弄清楚了:

    • 使用PowerPivot表

    • 使用计算字段

    • 使用计算字段中的CALCULATE函数在给定过滤器/条件的情况下执行非常计数

    您安装 PowerPivot 加载项(文件 - >选项 - >加载项 - >托管:COM加载项 - >检查Microsoft Office PowerPivot for Excel 2013)以获取PowerPivot选项卡 .

    您需要将数据添加到数据模型中(通过单击“管理”并导入数据,或突出显示该表并单击“添加到数据模型”) . 然后,单击PowerPivot管理区域中的数据透视表按钮 .

    将日期时间拖到行 . 然后,在PowerPivot选项卡中,单击计算字段 - >新建 Calculated Field .

    现在,我的字段(名为:Distinct Client Count Where Field2 = 1)具有以下公式:

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

    Table1是我的数据模型的名称(源数据) . CALCULATE函数允许您将过滤器应用于聚合计算 . DISTINCTCOUNT是您输入的第一个字段的明显计数 .

    这是最终输出:

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

相关问题