Power BI中基于多条件的DAX筛选度量值问题求助
解决Power BI多条件筛选的DAX度量值方案
问题分析
你的错误DAX存在两个核心问题:
- 语法错误:
'dataset'[Order Date]) + 3 > TODAY()中多了一个右括号,导致表达式结构混乱。 - 逻辑与用途不匹配:你用
CONCATENATEX拼接空值,这无法直接用于筛选表格视觉对象,需要改为能判断订单是否符合条件的度量值。
正确DAX实现
方案1:用于视觉级筛选的判断度量值
这个度量值返回1(符合条件)或0(不符合),你可以在表格视觉对象的筛选器中设置该度量值等于1,即可筛选出目标订单:
符合筛选条件 = VAR 当前日期 = TODAY() RETURN IF( ISBLANK('dataset'[Delivered Date]) && DATEDIFF('dataset'[下单日期], 当前日期, DAY) > 3, 1, 0 )
方案2:直接返回符合条件的订单ID(用于切片器或验证)
如果需要在切片器中展示符合条件的订单ID,或者验证筛选结果,可用如下度量值:
未完成超3天订单 = CONCATENATEX( FILTER( 'dataset', ISBLANK('dataset'[Delivered Date]) && DATEDIFF('dataset'[下单日期], TODAY(), DAY) > 3 ), 'dataset'[订单ID], ", " )
关键说明
- 使用
DATEDIFF计算下单天数更直观,避免日期运算的边界问题(比如跨月/跨年)。 - 若你的
下单后天数字段是已计算好的列,也可以直接用该字段简化条件:'dataset'[下单后天数] > 3,此时度量值可改为:
符合筛选条件 = IF( ISBLANK('dataset'[Delivered Date]) && 'dataset'[下单后天数] > 3, 1, 0 )
内容的提问来源于stack exchange,提问作者dkong
相关产品推荐
相关产品推荐

