【问题标题】:How to produce result based on date with multiple conditions on power bi?如何在 power bi 上基于具有多个条件的日期生成结果?
【发布时间】:2020-05-07 02:04:08
【问题描述】:

我正在尝试根据日期和一些过滤器创建验证

我的输入表是

Status  Type    Date        PolicyNo 
PS      T607    01-01-2020  1002
PS      T608    01-01-2020  1002
CF      T646    01-01-2020  1002
PS      T607    04-01-2020  1003

我的情况是

1) 如何在一天内申请多个条件

  • 例如。 01-01-2020 在第 1002 天 Policy(1002) 我们有三个 T607 类型,其中任何一个 (T608/T646) 状态为 (PS/CF),输出值可能为 0,否则为 1

2) 我的预期输出是

Status  Type    Date        PolicyNo    Accept
PS      T607    01-01-2020  1002        0
PS      T608    01-01-2020  1002        0
CF      T646    01-01-2020  1002        0
PS      T607    04-01-2020  1003        1

编辑:

Date
01-01-2020
01-01-2020
01-01-2020

PolicyNo
1002
1002
1002

Type : T697 with (T608 or T646)

T607 - compalsory so (&&)
T608 - Optional so (||)
T646 - Optional so 

(and)

Status : PS or CF 
PS - Optional so (||)
CF - Optional 

结论条件: 与(类型:T697 与(T608 或 T646))与(状态:PS 或CF)

【问题讨论】:

    标签: powerbi powerbi-desktop powerbi-embedded powerbi-datasource powerbi-custom-visuals


    【解决方案1】:

    自定义列的 M (Power Query) 中的多个条件:

    = if [Date] = Date.From(DateTime.LocalNow()) and [Type] = "T607" and [PolicyNo] = 1003 then 1 else 0
    

    等等……

    注意:语法必须小写,因为 M 区分大小写。 您还可以堆叠 if´s 或使用 else if´s。您也可以使用or 条件。

    你可以在 DAX 中做同样的事情。使用IF()OR() 函数(作为新列):

    = IF(OR([Date] = TODAY(), [Type] = "T607", [PolicyNo] = 1003), 1, 0)
    

    编辑

    到您的第 4 条评论。这个逻辑可以正常工作(简化示例):

    【讨论】:

    • 我正在处理动态数据。 Date 和 PolicyNo 是动态的,键入 T697 和 (T608/T646) 中的任何一个,状态 (PS/CF) 这个条件是静态的。
    • WITCH(TRUE(),'DatewithOtherConditions'[type] = "T607" && 'DatewithOtherConditions'[type] = "T608" || 'DatewithOtherConditions'[type] = "T646" && 'DatewithOtherConditions'[status] = "CF" || 'DatewithOtherConditions'[status] = "CF" && DatewithOtherConditions[Date] ,0,1) 我正在写这段代码得到错误的结果。
    • 我期待的是 ((Value1 && (Value2 || Value3)) && (Value4 || Value5)) 取决于 PolicyNo 和运行日期。
    • if (([Type] = "T607" and ([Type] = "T608" or [Type] = "T646")) and ([Status] = "PS" or [Status] = "CF")) then 0 else 1 也无法产生错误的结果。条件是日期和保单编号。同日同保单不满足以上条件
    • 您的问题和 cmets 令人困惑^^ 基于此,我不知道您的最终情况应该是什么样子。您可以尝试分步或以简化的方式发布您的最终条件。可能就是这样:(Value=1 && (Value = 2 || Value2 = 3)) and Date = PolicyNo
    猜你喜欢
    • 1970-01-01
    • 2021-02-15
    • 1970-01-01
    • 2023-01-04
    • 2021-12-09
    • 1970-01-01
    • 1970-01-01
    • 2019-06-19
    • 1970-01-01
    相关资源
    最近更新 更多