首页 文章

使用if语句在Power BI中测量

提问于
浏览
0

我想使用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返回以下错误:

无法为“roistat-analytics-data”表中的“Source_Type”列定义一个值 . 如果对于单个结果,度量公式引用包含一组值的列而不指定聚合(例如MIN,MAX,COUNT或SUM),则会发生这种情况 .

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

1 回答

  • 0

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

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

    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

相关问题