【问题标题】:DAX measure Last Quarter SalesDAX 衡量上季度销售额
【发布时间】:2020-06-22 08:53:49
【问题描述】:

如何创建计算上一季度销售额的 DAX 度量。我想看看有上一季度销售额的产品。说这样的话:

+---------+-----------------------+
| Product | Sales of last quarter |
+---------+-----------------------+
| apple   |                    10 |
| banana  |                     5 |
| cherry  |                     8 |
+---------+-----------------------+

我觉得解决方案可能是两种过滤器的混合:

  • DATESQTD
  • 日期范围

这是我的最佳猜测:

Sales_of_last_quarter =
VAR MaxDate =
    LASTNONBLANK(
        'Calendar'[Date],
        CALCULATE(
            [Sales]
        )
    )
VAR SalesByQuarter =
    CALCULATE(
        [Sales],
        DATESQTD( Calendar[Date] )
    )
VAR result =
    CALCULATE(
        SalesByQuarter,
        MaxDate
    )
RETURN
    result

上述措施有效。但是我想知道是否有可能一次性完成。这不起作用:

Sales_of_last_quarter =
VAR MaxDate =
    LASTNONBLANK(
        'Calendar'[Date],
        CALCULATE(
            [Sales]
        )
    )

RETURN
SalesByQuarter =
    CALCULATE(
        [Sales],
        DATESQTD( Calendar[Date] ),
        MaxDate
    )

它不起作用,因为 MaxDate 是单个日期(一天),但它应该是一个季度的范围。

所以问题是如何定义上一季度的范围。

【问题讨论】:

    标签: powerbi dax


    【解决方案1】:

    您可以使用CALCULATETABLE 获取DATESQTD 直到LASTNONBLANK 日期。

    Sales of Last Quarter = 
    CALCULATE (
        [Sales],
        CALCULATETABLE (
            DATESQTD ( 'Calendar'[Date] ),
            LASTNONBLANK ( 'Calendar'[Date], [Sales] )
        )
    )
    

    【讨论】:

    • 哦,是的,它有效,但如何? LASTNONBLANK 只返回一个日期,而 DATESQTD 返回大约 90 天的范围。它怎么知道计算季度范围的销售额并取最后一个季度。为什么它不返回这两个函数范围的公共部分,即有一天 LASTNONBLANK?
    • 这是一个猜测,但看起来包括 DATESQTD 在内的一些时间智能函数在找到感兴趣的日期之前有效地在幕后应用 REMOVEFILTERS。我发现这篇 SQLBI 文章 (sqlbi.com/articles/time-intelligence-in-power-bi-desktop) 提到了这一点,但我找不到任何其他文档中明确说明。
    • 谢谢。谜团还在。 REMOVEFILTERS 将返回所有日期,DATESQTD 将全部缩减为 90 天,但 LASTNONBLANK 将其进一步缩减为 1 天。至少,这是我可能期望的,当然是错误的。
    • 令人惊讶的是,这项措施也有效:CALCULATE( [Sales], DATESQTD( Calendar[Date] ) )
    • 是的,这应该可以,除了它可能是空白的。假设 Calendar 表中有截至 12 月 31 日的日期,以及截至 6 月 30 日的销售记录。DATESQTD 总计返回的是“10 月 1 日到 12 月 31 日”,并且在此期间没有销售记录。如果这是所需的行为,那很好。如果没有,上面的公式可能是一个很好的微调。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-25
    • 2022-06-23
    • 2021-10-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多