Power BI:将多个度量组合在一个矩阵中

Power BI: Combine multiple measures in a single matrix

示例:

我有一个产品table:

关于这个table我有4个措施:

1) Lowest Sales Price = MIN([Sales price])
2) Highest Sales Price = MAX([Sales price])
3) Lowest Cost Price = MIN([Cost price])
4) Highest Cost Price = MAX([Cost price])

我想在一个矩阵中查看结果:

我正在努力寻找实现此目标的方法。我想这可以用 DAX table 函数来完成?

矩阵不是这样工作的。行和列属性应该是列中的值,而在您的情况下 Sales priceCost price 不是值,而是列。您可以稍微转换数据以获得此结果。打开 Power Query 编辑器,select Sales priceCost price 列并单击功能区中的 Unpivot Columns 按钮:

这会将这些列转换为值:

然后创建这些措施:

Highest:

Highest = MAX('Table'[Value])

Lowest

Lowest = MIN('Table'[Value])

并将它们用作矩阵中的值,如下所示:

你需要创建一个辅助table,来创建LowestHighest的区别。

步骤如下:

第 1 步

创建一个包含最高值和最低值的 table。我建议还包括一个 ID 列,以便根据需要对这两个值进行排序。我将 table 命名为 DimType.

DAX:创建 table

DimType =
DATATABLE (
    "Id", INTEGER,
    "Type", STRING,
    {
        { 1, "Lowest" },
        { 2, "Highest" }
    }
)

DimType

Id Type
1 Lowest
2 Highest

步骤 2

创建一个计算,使用创建的 table 区分 LowestHighest

DAX:销售额

Sales =
SWITCH (
    ISFILTERED ( DimType[Type] ),
    SELECTEDVALUE ( DimType[Type] ) = "Lowest", MIN ( 'Product'[Sales Price] ),
    SELECTEDVALUE ( DimType[Type] ) = "Highest", MAX ( 'Product'[Sales Price] )
)

DAX:成本

Cost =
SWITCH (
    ISFILTERED ( DimType[Type] ),
    SELECTEDVALUE ( DimType[Type] ) = "Lowest", MIN ( 'Product'[Cost Price] ),
    SELECTEDVALUE ( DimType[Type] ) = "Highest", MAX ( 'Product'[Cost Price] )
)

第 3 步

要将指标显示为行,您只能使用矩阵。在 Format 窗格中,在 Values 中启用 Show on rows.

输出