使用if语句在Power BI中测量

时间:2018-04-11 08:42:35

标签: conditional powerbi measure

我想使用if语句创建以下度量:

PRE_MTD_M_visit_cost_v2 =
    if('table_1'[Source_Type]="Online";
        CALCULATE((DIVIDE(21*[MTD_M_visit_cost];7)));
        'table_1'[M_visit_cost])

如果列Source_Type具有“在线”,我想创建一个带条件语句的度量,然后我想根据4月份通过的工作日数(有21个工作日)来计算MTD_M_visit_cost )。 如果列Source_Type有另一个文本值,我想返回M_visit_cost度量(我已经创建)。

PBI返回以下错误:

  

无法为" Source_Type"定义一个值。专栏   " roistat-analytics-data"表。如果是单身,就会发生这种情况   结果,度量公式是指包含一组的列   值,不指定聚合,例如MIN,MAX,COUNT,   或者SUM。

我知道我可以创建条件列,但理想情况下,能够创建度量会很棒。 任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

这是可能的,只要两个“子”措施的汇总即可。是一样的。您可以使用nameX(sumX,avarageX)函数访问行中的值。这些函数遍历一行,因此您可以根据特定行中的值进行不同的计算。

由于您没有提供样本数据,我已经建立了一个小样本。希望这是你可以使用的东西。在我的示例" Sales"中,如果销售类型="在线",我只想将增值税添加到金额中。对于离线,增值税将被忽略。

 SalesAmount = 
    SUMX( Sales;
    IF ( Sales[Type] = "Online" ; Sales[Amount] + Sales[VAT] ; Sales[Amount] 
    )
 )

根据您的公式,它将是这样的:

PRE_MTD_M_visit_cost_v2 =
    SUMX (
        table_1;
        IF (
            'table_1'[Source_Type] = "Online";
            DIVIDE ( 21 * [MTD_M_visit_cost]; 7 );
           'table_1'[M_visit_cost]
        )
    )    

我的样本:

Sample