【问题标题】:DAX IF(OR( and LOOKUPValue in oneDAX IF(OR( 和 LOOKUPValue 合二为一
【发布时间】:2021-11-17 11:23:36
【问题描述】:

对使用 PowerBI 和 DAX 非常陌生,但想看看它是否是我某些报告的更好选择。

我正在尝试在 PowerBI 中复制我在 Excel 中的公式,但似乎无法做到!

公式是一个带有 OR/AND(嵌套)的 IF 语句,最后是一个 vlookup。我缩短了部分 IF(OR 使用命名范围和计数 - 见下文

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' 是命名范围,它只是在另一个包含客户列表的工作表上找到的列。

努力使用 DAX 来模仿这个!我有两张纸,我目前的失败尝试如下

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])
        )) 

非常感谢任何帮助,我已经尝试了我常用的谷歌来获得答案,这让我更接近但没有运气:(

【问题讨论】:

  • 你的失败尝试会产生什么结果?

标签: powerbi dax


【解决方案1】:

所以在玩了一些之后,我相信我已经想通了 -

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 表达式的整体外观。

任何聪明的人都想看看这个并检查是否有一些明显的错误?如果不是,我认为这可以满足我的需要:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-09
    • 2023-02-18
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多