由 If 语句度量引起的 Power BI 筛选问题
Power BI Filtering issue caused by If statement measures
预先致歉,这需要花一点时间来解释,但我宁愿说得透彻一点,这样问题就清楚了。我遇到的主要问题是人们没有被正确地从我正在使用的矩阵中过滤掉,我相信我已经将问题与我编写的一些措施隔离开来。下面是我正在使用的图片(我想你必须遵循 link):
我的问题是,当我尝试使用切片器应用过滤器时,您会希望根据可用名称是否属于所选的特定团队领导或主管,将其从矩阵中过滤掉。然而,他们没有,如图所示:
显然,人员没有被过滤掉,因为 AnswerRatePass 列和 SurveyScorePass 列中仍然有值。我将只关注 AnswerRatePass 以将问题减半。 AnswerRatePass 的目的是输出文本以识别一个人的 Answer Rate 是超过他们的目标、达到目标还是未达到目标。我的 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),切片器将完全按预期工作。所以,长话短说,我很确定我需要的是对这些度量进行某种过滤,以便在使用不适用于该人的切片器时这些值会消失,从而也可以过滤掉个人切片机也是如此。除非有人有不同的想法,否则我很确定这就是我所需要的,但我一直无法想出一种方法来做到这一点。我对任何 help/suggestions 持开放态度。
是的,我以前见过这个。我认为如果 AnswerRate
为空白,则 AnswerRatePass
至 return 为空白。尝试这样的事情:
AnswerRatePass =
IF(
ISBLANK([AnswerRate]),
BLANK(),
IF(
[AnswerRateGoal] = 1,
"Exceed",
IF(
[AnswerRateGoal] = 0,
"Achieved",
"Missed"
)
)
)
旁注: SWITCH
function 通常比嵌套 IF
函数更简洁。
预先致歉,这需要花一点时间来解释,但我宁愿说得透彻一点,这样问题就清楚了。我遇到的主要问题是人们没有被正确地从我正在使用的矩阵中过滤掉,我相信我已经将问题与我编写的一些措施隔离开来。下面是我正在使用的图片(我想你必须遵循 link):
我的问题是,当我尝试使用切片器应用过滤器时,您会希望根据可用名称是否属于所选的特定团队领导或主管,将其从矩阵中过滤掉。然而,他们没有,如图所示:
显然,人员没有被过滤掉,因为 AnswerRatePass 列和 SurveyScorePass 列中仍然有值。我将只关注 AnswerRatePass 以将问题减半。 AnswerRatePass 的目的是输出文本以识别一个人的 Answer Rate 是超过他们的目标、达到目标还是未达到目标。我的 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),切片器将完全按预期工作。所以,长话短说,我很确定我需要的是对这些度量进行某种过滤,以便在使用不适用于该人的切片器时这些值会消失,从而也可以过滤掉个人切片机也是如此。除非有人有不同的想法,否则我很确定这就是我所需要的,但我一直无法想出一种方法来做到这一点。我对任何 help/suggestions 持开放态度。
是的,我以前见过这个。我认为如果 AnswerRate
为空白,则 AnswerRatePass
至 return 为空白。尝试这样的事情:
AnswerRatePass =
IF(
ISBLANK([AnswerRate]),
BLANK(),
IF(
[AnswerRateGoal] = 1,
"Exceed",
IF(
[AnswerRateGoal] = 0,
"Achieved",
"Missed"
)
)
)
旁注: SWITCH
function 通常比嵌套 IF
函数更简洁。