【问题标题】:DAX - Creating a rolling "within last 7 days" TRUE/FALSE column in Date Dimension table based on latest data run date in Fact tableDAX - 根据事实表中的最新数据运行日期在日期维度表中创建滚动的“过去 7 天内”TRUE/FALSE 列
【发布时间】: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 结果,以便我可以将其用作过滤器?

这甚至可以写成衡量标准吗?

提前致谢!

【问题讨论】:

    标签: powerbi dax datediff


    【解决方案1】:

    尝试使用两个条件而不是一个条件。

    例如,

    Rolling 7 Days =
    VAR MaxFactDate = MAX ( 'Fact Table'[Date] )
    RETURN
        ( dimDate[Date] > MaxFactDate - 7 ) && ( dimDate[Date] <= MaxFactDate )
    

    【讨论】:

    • 优秀的@Alexis Olson!不知道 DAX 中的变量(尽管在 Python 中),所以这很有意义,知道真的很有用!感谢您的努力!
    猜你喜欢
    • 1970-01-01
    • 2015-01-28
    • 1970-01-01
    • 2021-11-26
    • 2021-07-28
    • 2020-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多