DAX IF(OR( 和 LOOKUPValue 合二为一
DAX IF(OR( and LOOKUPValue in one
刚开始使用 PowerBI 和 DAX,但想看看它是否是我的某些报告的更好选择。
我正在尝试在 PowerBI 中复制 Excel 中的公式,但似乎无法做到!
该公式是一个带有 OR/AND(嵌套)的 IF 语句,最后是一个 vlookup。我缩短了 IF 的一部分(或使用命名范围和计数 - 见下文
IF(AND(Client_Name="Client 1",Scheme_Name="Scheme 1"),"Team 1",IF(AND(Client_Name="Client 2",Scheme_Name="Scheme 2"),"Team 2",IF(AND(Client_Name="Dummy",Handling_Team_Name="Team 3"),"Team 3",IF(COUNTIF(C_Team_Helper,Client_Name),VLOOKUP(Scheme_Name,'Team Helper 123'!$A:$C,3,FALSE),""))))
其中 'C_Team_Helper' 是命名范围,它只是在包含客户列表的另一个 sheet 上找到的一个列。
正在努力使用 DAX 来模仿这一点!我有两个 sheet,我当前失败的尝试如下
ClientTrigger =
SWITCH(
TRUE(),
Sheet1[Client Name] = "Client 1" && Sheet1[Scheme Name] = "Scheme 1" ,"Team 1",
Sheet1[Client Name] = "Cleint 2" && Sheet1[Scheme Name] = "Scheme 2" ,"Team 2",
Sheet1[Client Name] = "Dummy" && Sheet1[Scheme Name] = "Scheme 3", "Team 3",
Sheet1[Client Name] = CONTAINS('Team Helper - Setup','Team Helper - Setup'[Team Helper],Sheet1[Client Name]),
CALCULATE (
FIRSTNONBLANK ( 'Team Helper - Setup'[Team], 1 ),
FILTER ( ALL ( 'Team Helper - Setup'), 'Team Helper - Setup'[Scheme Name] = Sheet1[Scheme Name])
))
真的很感谢任何帮助,我已经尝试了我通常的 google 来得到答案,这让我更接近了,但没有运气:(
经过一番尝试,我相信我已经弄明白了 -
ClientTrigger =
VAR Client = Sheet1[Client Name]
VAR Scheme = Sheet1[Scheme Name]
VAR HandlingTeam = Sheet1[Handling_Team_Name]
VAR GetTeam = CALCULATE (
FIRSTNONBLANK ( 'Team Helper - DAX'[Team], 1 ),
FILTER ( ALL ( 'Team Helper - DAX'), 'Team Helper - DAX'[Scheme] = Sheet1[Scheme Name])
)
VAR Matching = CALCULATE(COUNTROWS('Team Helper - DAX'), FILTER('Team Helper - DAX', 'Team Helper - DAX'[Team Helper]=Sheet1[Client Name])) > 0
RETURN
SWITCH(
TRUE(),
Client = "Client 1" && Scheme = "Scheme 1" ,"Team 1",
Client = "Client 2" && Scheme = "Scheme 2" ,"Team 2",
Client = "Dummy" && HandlingTeam = "Team 3", "Team 3",
Matching = TRUE(), GetTeam
)
这与我使用 Excel 公式得到的结果相同,并且使用变量有助于整理 DAX 表达式的整体外观。
有没有聪明的人想看一眼,看看有没有明显的错误?如果不是,我认为这可以满足我的需要:)
刚开始使用 PowerBI 和 DAX,但想看看它是否是我的某些报告的更好选择。
我正在尝试在 PowerBI 中复制 Excel 中的公式,但似乎无法做到!
该公式是一个带有 OR/AND(嵌套)的 IF 语句,最后是一个 vlookup。我缩短了 IF 的一部分(或使用命名范围和计数 - 见下文
IF(AND(Client_Name="Client 1",Scheme_Name="Scheme 1"),"Team 1",IF(AND(Client_Name="Client 2",Scheme_Name="Scheme 2"),"Team 2",IF(AND(Client_Name="Dummy",Handling_Team_Name="Team 3"),"Team 3",IF(COUNTIF(C_Team_Helper,Client_Name),VLOOKUP(Scheme_Name,'Team Helper 123'!$A:$C,3,FALSE),""))))
其中 'C_Team_Helper' 是命名范围,它只是在包含客户列表的另一个 sheet 上找到的一个列。
正在努力使用 DAX 来模仿这一点!我有两个 sheet,我当前失败的尝试如下
ClientTrigger =
SWITCH(
TRUE(),
Sheet1[Client Name] = "Client 1" && Sheet1[Scheme Name] = "Scheme 1" ,"Team 1",
Sheet1[Client Name] = "Cleint 2" && Sheet1[Scheme Name] = "Scheme 2" ,"Team 2",
Sheet1[Client Name] = "Dummy" && Sheet1[Scheme Name] = "Scheme 3", "Team 3",
Sheet1[Client Name] = CONTAINS('Team Helper - Setup','Team Helper - Setup'[Team Helper],Sheet1[Client Name]),
CALCULATE (
FIRSTNONBLANK ( 'Team Helper - Setup'[Team], 1 ),
FILTER ( ALL ( 'Team Helper - Setup'), 'Team Helper - Setup'[Scheme Name] = Sheet1[Scheme Name])
))
真的很感谢任何帮助,我已经尝试了我通常的 google 来得到答案,这让我更接近了,但没有运气:(
经过一番尝试,我相信我已经弄明白了 -
ClientTrigger =
VAR Client = Sheet1[Client Name]
VAR Scheme = Sheet1[Scheme Name]
VAR HandlingTeam = Sheet1[Handling_Team_Name]
VAR GetTeam = CALCULATE (
FIRSTNONBLANK ( 'Team Helper - DAX'[Team], 1 ),
FILTER ( ALL ( 'Team Helper - DAX'), 'Team Helper - DAX'[Scheme] = Sheet1[Scheme Name])
)
VAR Matching = CALCULATE(COUNTROWS('Team Helper - DAX'), FILTER('Team Helper - DAX', 'Team Helper - DAX'[Team Helper]=Sheet1[Client Name])) > 0
RETURN
SWITCH(
TRUE(),
Client = "Client 1" && Scheme = "Scheme 1" ,"Team 1",
Client = "Client 2" && Scheme = "Scheme 2" ,"Team 2",
Client = "Dummy" && HandlingTeam = "Team 3", "Team 3",
Matching = TRUE(), GetTeam
)
这与我使用 Excel 公式得到的结果相同,并且使用变量有助于整理 DAX 表达式的整体外观。
有没有聪明的人想看一眼,看看有没有明显的错误?如果不是,我认为这可以满足我的需要:)