【问题标题】:Calculating number of Quarters between 2 dates in DAX, applying filter计算 DAX 中两个日期之间的季度数,应用过滤器
【发布时间】:2020-12-16 01:14:15
【问题描述】:

我有下表,tbl_Episodes(10K 记录):

       ClientID       AdmDate    DischDate
            54      9/20/2013    5/28/2015
            63      3/07/2013    4/12/2014 
            75      4/07/2014   12/31/2050
            .              .            .
            .              .            .

我需要创建一个计算列,它将计算两个季度之间的季度数(3 个月) AdmDate(患者入院日期)和 DischDate(患者出院日期)

我正在使用以下 DAX 表达式:

       # Quarters= Datediff('tbl_Episodes'[AdmDate], 
                            'tbl_Episode'[DischDate],QUARTER)

但如果 DischDate = 12/31/2050,我需要排除计算

我希望我的结果是:

      ClientID       AdmDate    DischDate   #Quarters
            54      9/20/2013    5/28/2015         6
            63      3/07/2013    4/12/2014         4 
            75      4/07/2014   12/31/2050         0   (or blank would work)
             .             .            .          .
             .             .            .          .

【问题讨论】:

    标签: dax calculated-columns quarter


    【解决方案1】:

    一种解决方案是使用 IF 函数添加一个测试,如果条件为假,它将返回 BLANK(),如果条件为真,则返回 DATEDIFF 的结果。在这种情况下,条件是 DischDate 与 2050 年 12 月 31 日不同

    # Quarters =
    IF(
        'tbl_Episode'[DischDate] <> VALUE("2050-12-31"),
        DATEDIFF(
            'tbl_Episodes'[AdmDate],
            'tbl_Episode'[DischDate],
            QUARTER
        )
    )
    

    编辑:添加了评论中正确指出的“VALUE”

    【讨论】:

    • 只有一件事——我必须在 IF 表达式中使用 Value("2050-12-31") 以避免格式不匹配错误
    • 正确,我相应地改变了答案:)
    猜你喜欢
    • 1970-01-01
    • 2021-04-13
    • 1970-01-01
    • 1970-01-01
    • 2015-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多