DAX筛选是否遵循列排序设置?以年周列筛选场景为例
DAX中年周列筛选的排序逻辑疑问
问题背景
我有一个日历表,其中年周列YEARWEEK的取值为Y24 W1这类文本格式,该列已设置按数值型的YearWeekNumber(如202401)排序。现在我写了如下DAX公式,想要计算2024 W5及之后所有周的销售额总和:
CALCULATE(SUM(SALES['SALESAMT']), YEARWEEK >= "Y24 W5")
想确认:这个筛选条件中的>=判断是否遵循YEARWEEK列的自定义排序依据?具体来说,筛选结果会不会包含Y24 W10?毕竟如果按字母排序,Y24 W10会排在Y24 W5之前,不会被纳入,但如果遵循自定义排序就会包含。
回答
- 直接对文本格式的
YEARWEEK列使用>=比较运算符时,完全不会遵循你设置的自定义排序规则,DAX只会按照文本的默认字母顺序进行比较。 - 按字母排序逻辑,
Y24 W10会被判定为小于Y24 W5——因为文本比较是逐字符匹配,W后面的第一个字符1的ASCII码值小于5,所以你的公式不会包含Y24 W10的销售额。 - 要实现按年周的实际顺序筛选,最稳妥高效的方式是直接用数值型的
YearWeekNumber列作为筛选条件,公式如下:
CALCULATE(SUM(SALES['SALESAMT']), YearWeekNumber >= 202405)
如果一定要基于YEARWEEK文本列筛选,需要借助其排序依据列构建逻辑,但这种方式不如直接用数值列简洁高效。
内容的提问来源于stack exchange,提问作者variable
相关产品推荐
相关产品推荐

