计算 DAX 中两个日期之间的季度数,应用过滤器
Calculating number of Quarters between 2 dates in DAX, applying filter
我有以下 table、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)
. . . .
. . . .
一个解决方案是使用 IF 函数添加一个测试,如果条件为假,将 return 一个 BLANK() ,如果条件为真,则返回 DATEDIFF 的结果。本例中的条件是 DischDate 不同于 12/31/2050
# Quarters =
IF(
'tbl_Episode'[DischDate] <> VALUE("2050-12-31"),
DATEDIFF(
'tbl_Episodes'[AdmDate],
'tbl_Episode'[DischDate],
QUARTER
)
)
编辑:添加了评论中正确指出的“VALUE”
我有以下 table、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)
. . . .
. . . .
一个解决方案是使用 IF 函数添加一个测试,如果条件为假,将 return 一个 BLANK() ,如果条件为真,则返回 DATEDIFF 的结果。本例中的条件是 DischDate 不同于 12/31/2050
# Quarters =
IF(
'tbl_Episode'[DischDate] <> VALUE("2050-12-31"),
DATEDIFF(
'tbl_Episodes'[AdmDate],
'tbl_Episode'[DischDate],
QUARTER
)
)
编辑:添加了评论中正确指出的“VALUE”