【问题标题】:Sum Category but Max Sub-Items合计类别但最大子项
【发布时间】:2019-08-22 13:10:08
【问题描述】:

场景

我有一个场景,我将在一个表格中有多个条目,并且需要一种方法来通过 LineItem 对此进行报告。

目前我能看到的唯一真正的选择是数据透视表: - 行:ColumnAColumnC - 值:最大值(ColumnD

表(数据)

ColumnA ColumnB     ColumnC     ColumnD ColumnE ColumnF
34      8/20/2019   LineItem1   490     0       2541
34      8/21/2019   LineItem1   412     0       2614
34      8/22/2019   LineItem1   383     0       2648
34      8/20/2019   LineItem2   560     0       504
34      8/21/2019   LineItem2   588     0       507
34      8/22/2019   LineItem2   612     0       507

枢轴(当前)

Row Labels      Max of ColumnD
34              612
    LineItem1   490
    LineItem2   612

枢轴(所需效果)

Row Labels      Sum of ColumnD
34              1102
    LineItem1   490
    LineItem2   612

"Sum of ColumnD" 是下面 LineItems 的总和,而不是数据集

问题

不确定 Pivot 是否可行;如果没有,请在 Excel 2016 中提供另一种方法,该方法不包括手动复制粘贴获取数据的方案。

【问题讨论】:

    标签: pivot-table powerquery excel-2016


    【解决方案1】:

    数据透视表方法

    数据透视表有一个名为Calculated Item的功能,可以实现你想要的。

    有关步骤,请参见下面的屏幕截图。缺点是您需要手动添加每个类别中的所有 LineItems,如果您有大量数据集,这可能会很耗时。

    您可以选择在顶部显示小计并使用条件格式来“隐藏”计算的订单项,或者您可以选择在顶部隐藏小计并仅显示计算的订单项(如我的示例所示)。您可以为计算的行项目使用其他名称,因此一旦您对列进行升序/降序排序,它就是顶部的第一个。

    功率查询方法

    使用From Table函数(在Data选项卡下)将源数据加载到Power Query Editor

    使用Group By功能(在编辑器的Transform标签下)对数据进行分组,以显示每个类别下每个LineItem的最大值;

    关闭并加载结果,只为查询创建连接并将其添加到数据模型

    使用存储在数据模型中的数据插入一个新的数据透视表,并显示Max字段的总数。

    有关更多说明,请参阅以下步骤。

    逻辑类似于创建数据透视表以显示 MAX,然后创建另一个数据透视表以显示 MAX 的 SUM 的答案。但是,您可以在 Power Query 中进行更复杂的计算,并且适用于大型数据集环境。

    【讨论】:

    • 甚至没有考虑过 powerquery...我通常会在 SQL 中开发结果并完成它。不幸的是,我所处的环境大量使用 Excel……添加了 powerquery 标签以查看是否有更好的选择。初始数据集很小,但有增长潜力
    • 另一个问题是LineItem# 值会增长和收缩......硬编码不是一个适合大局的选择
    • @GoldBishop 请使用 Power Query 方法查看我的更新答案。
    • 看来我需要适应 Power Query。在 Excel 中使用过 PowerBI 从来没有 Power Query...一直在学习 ;)
    【解决方案2】:

    一种方法是使用第一个数据透视表的输出创建另一个数据透视表。

    注意:在创建下一个数据透视表之前,您必须复制并粘贴第一个表的输出

    First Pivot table Output (Remove Subtotals, Use Tabular format, Repeat Item Labels):
    
    ColumnA ColumnC max of ColumnD
    34      LineItem1      490
    34      LineItem2      612
    

    使用第一个数据透视表的输出创建另一个数据透视表,将 ColumnA 和 ColumnC 放在行上,将 Sum(max of columnD) 放在值中:

    ColumnA ColumnC Sum of max of ColumnD
    34      LineItem1      490
    34      LineItem2      612
    34 Total               1102
    

    【讨论】:

      猜你喜欢
      • 2020-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-17
      • 2021-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多