如果Power For Power Pivot

时间:2018-01-22 17:11:56

标签: powerpivot dax

我正在试图弄清楚如何根据if语句计算我的合规性%度量。

如果[别名] =公司A,那么百分比应该等于100%。如果没有,则应计算总合规支出/总支出总额。

但是,当我尝试设置if语句时,它会给我一个错误,并说无法确定“alias”列的单个值。

我已经尝试了If(Values)语句,但是我需要它来返回多个值。

1 个答案:

答案 0 :(得分:2)

措施总是汇总。问题是,当您查看2家公司时,您希望合规性计算是什么? 3家公司?现在,你的问题和你的公式都没有说明这种可能性,因此错误。

如果您正在思考"如果您正在查看多家公司,那么合规性%没有意义#34;那么您可以编写公式来显示BLANK()如果有不止一家公司:

IF (
    HASONEVALUE ( 'Waste Hauling Extract'[Alias] ),
    IF (
        VALUES ( 'Waste Hauling Extract'[Alias] ) = "company A",
        [PCT-Compliant],
        [PCT Non-compliant]
    ),
    BLANK ()
)

如果您希望在有多家公司时发生其他事情,那么DAX函数(如CALCULATE,SUMX或AVERAGEX)将允许您执行您想要执行的操作。

DAX的技巧通常是公式必须不仅对表的各个行(Alias具有唯一值)有意义,而且还有小计和总计(其中Alias没有唯一值)

根据您的评论,任何包含公司A的结果都是100%,您可以执行以下操作:

IF (
    ISBLANK (
        CALCULATE (
            COUNTROWS ( 'Waste Hauling Extract' ),
            FILTER ( 'Waste Hauling Extract', 'Waste Hauling Extract'[Alias] = "company A" )
        )
    ),
    [PCT Non-compliant],
    [PCT-Compliant]
)

新的CALCULATE语句将Waste Hauling Extract表过滤为公司A行,然后计算这些行。如果没有公司A行,那么在过滤器之后它将是一个空表,行计数将为空(而不是0)。我用ISBLANK()检查这个,然后相应地显示不合规或合规号码。

注意:仅公司A的过滤器仅适用于CALCULATE语句;它根本不会对PCT措施产生影响。

相关问题