If语句措施引起的Power BI筛选问题

时间:2019-02-27 17:51:02

标签: powerbi dax powerbi-desktop

很抱歉,这需要花一点时间来解释,但我宁愿做得很透彻,这样问题就很清楚了。我遇到的主要问题是人们没有从我所使用的矩阵中正确过滤掉,我相信我已将问题隔离到我编写的某些度量标准中。下面是我正在使用的图片(我想您必须点击链接):

Full Matrix

我的问题是,当我尝试使用切片器应用过滤器时,您会希望根据可用名称是否属于所选特定组长或主管来将其从矩阵中过滤掉。但是,如下图所示,它们却没有:

Filtered using slicer

很显然,人们并没有被过滤掉,因为AnswerRatePass列和SurveyScorePass列中仍然有值。我将仅关注AnswerRatePass以将问题减少一半。 AnswerRatePass的目的是输出文本以识别某人的回答率是否超过了他们的目标,达到了目标或错过了目标。我的AnswerRatePass代码为:

AnswerRatePass = if([AnswerRateGoal] = 1,"Exceed",
if([AnswerRateGoal]=0,"Achieved","Missed"))

您肯定会注意到,[AnswerRatePass]使用[AnswerRateGoal]的值来确定要做什么。我之所以使用它,是因为它某种程度上简化了我的“推荐”标准的代码,该标准评估一个人是否同时满足两个标准的目标,这意味着我们建议提拔该人,或者他们的情况是什么。我的AnswerRateGoal代码为:

AnswerRateGoal =   
if(ISBLANK([AnswerRate]),0,  
    if(values(TMD[Title])="Executive",  
        if([AnswerRate]>=.94,1,  
            if([AnswerRate]>=.92,0,-1)),  
        if(values(TMD[Title])="President's Club",  
            if([AnswerRate]>=.96,1,  
            if([AnswerRate]>=.94,0,-1)),  
            if([AnswerRate]>=.96,0,-1)  
        )))

如果从矩阵中删除了这些度量(AnswerRatePass,SurveyScorePass和Recommendation),则切片器将完全按预期工作。因此,长话短说,我很确定我需要针对这些度量的某种过滤器,以便在使用不适用于该人的切片器时这些值会消失,从而也可以过滤出每个人切片器也是如此。除非有人有不同的想法,否则我很确定那是我所需要的,但我一直想不出办法。我愿意接受任何帮助/建议。

1 个答案:

答案 0 :(得分:1)

是的,我以前见过。我认为,如果AnswerRatePass为空,AnswerRate将返回空白。尝试这样的事情:

AnswerRatePass =
IF(
    ISBLANK([AnswerRate]),
    BLANK(),
    IF(           
        [AnswerRateGoal] = 1,
        "Exceed",
        IF(
            [AnswerRateGoal] = 0,
            "Achieved",
            "Missed"
        )
    )
)

旁注: SWITCH function通常是一种更干净的方法,然后嵌套了IF函数。