如何用DAX或Power Query标记创建日期超90天的应用?
解决方案
DAX计算列(优先方案)
直接通过逐行判断逻辑返回单个值,完全符合计算列的要求:
New Column = IF(Arive[Date Created] < TODAY() - 90, 1, BLANK())
- 用
TODAY()而非NOW()是因为前者仅返回日期,避免与通常为纯日期格式的[Date Created]产生时间部分的冲突;如果你的[Date Created]是日期时间格式,可替换为NOW()。 - 满足条件时返回1,不满足则返回空值(
BLANK()),匹配需求。
原公式错误原因
你之前使用的DATESBETWEEN会返回一个包含指定日期范围内所有日期的表,而计算列要求每行返回单个值,CALCULATE无法将表转换为单个值,因此触发“提供了多个值,但预期单个值”的错误。
替代方案:直接用度量值统计(无需新建列)
如果你的最终目的是统计符合条件的记录数,无需新建计算列,直接编写度量值即可:
Count 90+ Days Old = CALCULATE(COUNTROWS(Arive), Arive[Date Created] < TODAY() - 90)
Power Query公式
若使用Power Query处理,在编辑器中添加自定义列,公式如下:
if [Date Created] < Date.From(DateTime.LocalNow()) - #duration(90, 0, 0, 0) then 1 else null
- 若
[Date Created]是日期时间格式,可去掉Date.From(),直接使用DateTime.LocalNow() - #duration(90, 0, 0, 0)进行比较。
内容的提问来源于stack exchange,提问作者Ryan B
相关产品推荐
相关产品推荐

