偏移量如何能够转到上一年的数据,而不必显式地从日期表中删除过滤器?

问题描述 投票:0回答:1
DEFINE
MEASURE DimProduct[CurrentYearSales] = SUM(FactInternetSales[SalesAmount])
MEASURE DimProduct[PreviousYearSales] = CALCULATE(SUM(FactInternetSales[SalesAmount]), OFFSET(-1, , ORDERBY(DimDate[CalendarYear])))
EVALUATE
SUMMARIZECOLUMNS (
    DimDate[CalendarYear],
    "CurrentYearSales", DimProduct[CurrentYearSales],
    "PreviousYearSales", DimProduct[PreviousYearSales]
)

在汇总列中,我们为每一行计算当前年份和上一年的销售额。

但是,在当前年份行的上下文中,OFFSET 如何能够转到上一年,而不需要使用 REMOVEFILTERS 或 ALL 从日期表中删除过滤器?

powerbi dax data-analysis powerbi-desktop measure
1个回答
0
投票

根据 SQLBI:https://www.sqlbi.com/articles/introducing-window-functions-in-dax/

因为我们没有指定源表,所以自动OFFSET 使用 ALLSELECTED 对所有指定的列生成表 在 ORDERBY 中。

依靠自动表格生成可以产生更简单的代码 – 冒着找不到所需行并获得 结果不准确。表达计算的正确方法是 使用 ALL ( ‘日期’[年份])。使用 ALL 忽略年份上的先前过滤器 产生正确的结果:

© www.soinside.com 2019 - 2024. All rights reserved.