查找按未包含在过滤器上下文中的维度分组的总和的平均值

Find the Average of the Sums grouped by dimensions not included in Filter Context

以下是我面临的现实问题的简化示例:假设我有一个销售事实 table,其中包含度量计数,维度为供应商、客户和零件。我想获得零件销售计数总和的最小值、最大值和平均值,但仅限于相关客户和供应商的组合。

这是销售 table 和预期结果

的示例

销售额Table

+---------+-----------+-------------+-------+
| PartKey | VendorKey | CustomerKey | Count |
+---------+-----------+-------------+-------+
| 1       | a         | Z           | 10    |
| 1       | b         | Z           | 20    |
| 2       | a         | Y           | 30    |
| 2       | a         | Y           | 40    |
| 2       | b         | Z           | 50    |
+---------+-----------+-------------+-------+

结果

所以我想以某种方式创建的度量必须从按 VendorKey、CustomerKey 和 PartKey 分组的数据中获取结果(尽管 PartKey 将在过滤器上下文中),但我不知道如何指定一种分组。

此处的关键是创建一个摘要 table,在其中删除筛选器上下文,然后 min/max/avg 使用该 table。下面的 Summary table 重新创建了您显示的数据 table,除了两个 2,a,Y 行已经聚合。

AvgSum =
VAR Summary =
    SUMMARIZE (
        ALL(Table1),
        Table1[PartKey],
        Table1[VendorKey],
        Table1[CustomerKey],
        "Cnt", SUM ( Table1[Count] )
    )
RETURN
    AVERAGEX (
        FILTER (
            Summary,
            Table1[PartKey] = MAX ( Table1[PartKey] )
        ),
        [Cnt]
    )

请注意,如果您将上面的 AVERAGEX 换成 MINXMAXX,那么您将获得指定的最小值和最大值。