如何在 Power BI (DAX) 中将条件放入筛选器中?

How do I put a condition inside a filter in power BI (DAX)?

我刚刚开始使用 Power BI,正在努力创建度量。我正在尝试计算我的“重新分区”列的总和,但使用了一些过滤器。

这是我目前的衡量标准:

Nb_Actifs = CALCULATE (SUM(PAIE[Repartition]), FILTER(PAIE, PAIE[REMUNERABLE] = "Oui"), IF(PAIE[PROFIL]="CC", FILTER(PAIE, PAIE[Taux_Contractuel]<> 0)))

我在 IF 语句之前放置的过滤器是我想要应用于所有行的过滤器。语句后面的是我只想应用于满足条件 PAIE[PROFIL]="CC" 的行的过滤器。

但是,我收到此错误消息:“函数 'FILTER' 已用于用作 table 过滤器表达式的 True/False 表达式。这是不允许的。 “

据我所知,我需要用筛选器替换 IF 函数,但由于已经有多个筛选器,我对如何在 Power BI 中执行此操作感到困惑。

有人可以帮我吗?

您可以在过滤器中添加一些逻辑来捕获您需要的所有条件 return:

Nb_Actifs = 
    CALCULATE ( 
        SUM ( PAIE[Repartition] ), 
        FILTER ( 
            PAIE, 
            PAIE[REMUNERABLE] = "Oui" && (( PAIE[PROFIL] = "CC" && PAIE[Taux_Contractuel] <> 0 ) || PAIE[PROFIL] <> "CC" )
        )
    )

我认为 SUMX 函数在这里更合适。您还希望将所有逻辑放入单个 FILTER 中。尝试

Nb_Actifs = 
    SUMX(
        FILTER(
            PAIE, 
            PAIE[REMUNERABLE] = "Oui" && 
                (
                    (PAIE[PROFIL] = "CC" && PAIE[Taux_Contractuel] <> 0) || 
                    (PAIE[PROFIL] <> "CC")
                )
        ), 
        PAIE[Repartition]
    )

无论您是否使用 SUMX,将您的所有逻辑放入具有相应逻辑的单个 FILTER 中将解决您的条件过滤器问题。