基于Dax条件的计算量度

时间:2015-09-03 15:52:29

标签: calculated-columns powerpivot dax powerbi

我需要在Power Pivot中根据Dimension Column值显示值。

如果价值为卖出价格,则表格1的销售价格应显示,如果显示成本价格,则显示成本价格金额,如果是利润则应显示((SellingPrice-CostPrice)/ SellingPrice)

我的表结构是 表1: -

table 1

表2: - table 2

必需输出: -

output

如果尝试以下选项: -

1. Calculated Measure:=If(Table[Category]="CostPrice",[CostValue],If(Table1[category]="SellingPrice",[SalesValue],([SalesValue]-[CostValue]/[SalesValue])))
*[CostValue]:=Calculate(Sum(Table1[Amount]),Table1[Category]="CostPrice")
*[Sales Value]:=Calculate(Sum(Table1[Amount]),Table1[Category]="SellingPrice")

在计算列和测量中都尝试了这一点但没有给我所需的输出。

2 个答案:

答案 0 :(得分:0)

我正在考虑这个问题。我不确定为什么你的行上有你的类别。通常,数据集会包含以下列:item | CostPrice | SellingPrice |利润。然后,您可以使用列来定义字段。该模型变得更容易,更易于维护。

答案 1 :(得分:0)

Cost:=
CALCULATE(
    SUM( Table1[Amount] )
    ,Table1[Category] = "CostPrice"
)

Selling:=
CALCULATE(
    SUM( Table1[Amount] )
    ,Table1[Category] = "SellingPrice"
)

Profit:=
DIVIDE(
    [Selling] - [Cost]
    ,[Selling]
)

ConditionalMeasure:=
IF(
    HASONEFILTER( Table2[Category] )
    ,SWITCH(
        VALUES( Table2[Category] )
        ,"CostPrice"
        ,[Cost]
        ,"SellingPrice"
        ,[Selling]
        ,"Profit"
        ,[Profit]
    )
    ,[Profit]
)

HASONEFILTER()检查指定字段上是否存在过滤器上下文,并且过滤器上下文仅包含一个不同的值。

这只是一个允许我们的SWITCH()引用VALUES(Table2 [Category])的守护者。 VALUES()返回指定列或表中所有不同值的表。因此,1x1表可以隐式转换为标量,我们需要在SWITCH()中。

SWITCH()是一个案例陈述。

IF()中的其他条件只是返回[Profit]。你可能想要别的东西,但是不清楚在总体水平上会发生什么。您可以将其关闭,并且在IF()的其他条件下该度量将为空白。