Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powerbi DAX衡量上季度销售额_Powerbi_Dax - Fatal编程技术网

Powerbi DAX衡量上季度销售额

Powerbi DAX衡量上季度销售额,powerbi,dax,Powerbi,Dax,如何创建用于计算上一季度销售额的DAX度量。我想看看有上季度销售额的产品。说这样的话: +---------+-----------------------+ | Product | Sales of last quarter | +---------+-----------------------+ | apple | 10 | | banana | 5 | | cherry |

如何创建用于计算上一季度销售额的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是单日期(一天),但它应该是一个季度的范围

因此,问题是如何界定最后一个季度的范围

您可以使用来了解最新情况


哦,是的,它能工作,但如何工作?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] )
    )
)