DAX - 根据事实表中的最新数据运行日期在日期维度表中创建滚动的“过去 7 天内”TRUE/FALSE 列
Posted
技术标签:
【中文标题】DAX - 根据事实表中的最新数据运行日期在日期维度表中创建滚动的“过去 7 天内”TRUE/FALSE 列【英文标题】:DAX - Creating a rolling "within last 7 days" TRUE/FALSE column in Date Dimension table based on latest data run date in Fact table 【发布时间】:2022-01-22 06:55:39 【问题描述】:我知道这应该很简单,但无法弄清楚。我想在我的数据维度表中的 Power BI 中创建一个滚动的“过去 7 天内”TRUE/FALSE 列,以允许我将其用作其他计算的过滤器 - 这将基于我的最新数据运行日期事实表(可以延迟到每天下午运行,因此我不只是简单地使用TODAY()
函数)。
我在创建列时尝试使用DATEDIFF
函数,当我在我的事实表中测试它时效果很好(因为最大运行日期是表中的最后运行日期)。但是,当引用我的日期维度表时,它为我提供了“最新运行日期”之前最多 7 天的所有内容的 TRUE 值,而且还为我提供了最新运行日期之后的每个日期。我的日期维度表包含未来 5 年的日期,因此这是一个问题。
Rolling 7 Days = if (DATEDIFF('Fact Table'[Date], MAX('Fact Table'[Date]), DAY) <= 7, TRUE(), FALSE())
我如何重新编写它,以便它仅在最新数据运行日期后的最后 7 天内明确给出 TRUE
结果,以便我可以将其用作过滤器?
这甚至可以写成衡量标准吗?
提前致谢!
【问题讨论】:
【参考方案1】:尝试使用两个条件而不是一个条件。
例如,
Rolling 7 Days =
VAR MaxFactDate = MAX ( 'Fact Table'[Date] )
RETURN
( dimDate[Date] > MaxFactDate - 7 ) && ( dimDate[Date] <= MaxFactDate )
【讨论】:
优秀的@Alexis Olson!不知道 DAX 中的变量(尽管在 Python 中),所以这很有意义,知道真的很有用!感谢您的努力!以上是关于DAX - 根据事实表中的最新数据运行日期在日期维度表中创建滚动的“过去 7 天内”TRUE/FALSE 列的主要内容,如果未能解决你的问题,请参考以下文章