Powerbi DAX衡量上季度销售额
如何创建用于计算上一季度销售额的DAX度量。我想看看有上季度销售额的产品。说这样的话:Powerbi DAX衡量上季度销售额,powerbi,dax,Powerbi,Dax,如何创建用于计算上一季度销售额的DAX度量。我想看看有上季度销售额的产品。说这样的话: +---------+-----------------------+ | Product | Sales of last quarter | +---------+-----------------------+ | apple | 10 | | banana | 5 | | cherry |
+---------+-----------------------+
| 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是单日期(一天),但它应该是一个季度的范围
因此,问题是如何界定最后一个季度的范围 您可以使用来了解最新情况
哦,是的,它能工作,但如何工作?LASTNONBLANK只返回一个日期,而DATESQTD返回的范围约为90天。它怎么会知道如何计算季度范围内的销售额,并计算最后一个季度的销售额呢。为什么它不返回这两个函数范围的公共部分,这将是最后一个非空的一天?这是一个相当大的猜测,但看起来一些时间智能函数,包括DATESQTD,在找到感兴趣的日期之前,在幕后有效地应用了REMOVEFILTERS。我发现这篇SQLBI文章()提到了这一点,但在其他任何文档中都没有明确说明。谢谢。迷雾还在那里。REMOVEFILTERS将返回所有日期,DATESQTD将全部收缩为90天,但LASTNONBLANK将其进一步收缩为1天。至少,这是我所期望的,当然是错误的。令人惊讶的是,这个指标也能起作用:
CALCULATE([Sales]),DATESQTD(Calendar[Date])
是的,这应该能起作用,但总的来说它可能是空的。假设日历表中的日期截止到12月31日,销售记录截止到6月30日。DATESQTD总计返回的日期为“10月1日至12月31日”,并且在此期间没有销售记录。如果这是所期望的行为,那就好了。否则,上述公式可能是一个很好的微调。
Sales of Last Quarter =
CALCULATE (
[Sales],
CALCULATETABLE (
DATESQTD ( 'Calendar'[Date] ),
LASTNONBLANK ( 'Calendar'[Date], [Sales] )
)
)