我想计算今年(2019年)有销售但去年(2018年)没有销售的产品的NetSales总和。
这就是我正在尝试的方法(以及与此类似的一百万个变体):
NetSales CY Not LY =
VAR ThisYear= 2019
VAR YearBefore= 2018
VAR TabelaThisYear = SUMMARIZE(FILTER(SUMMARIZE('Facts';Facts[ArticleNo];Facts[InvoiceDate];Facts[NetSalesCurr]);YEAR('Facts'[InvoiceDate])=ThisYear && Facts[NetSalesCurr]>0);Facts[ArticleNo])
VAR TabelaYearBefore = SUMMARIZE(FILTER(SUMMARIZE('Facts';Facts[ArticleNo];Facts[InvoiceDate];Facts[NetSalesCurr]);YEAR('Facts'[InvoiceDate])=YearBefore && Facts[NetSalesCurr]>0);Facts[ArticleNo])
VAR ProdutosOnlyThisYear = EXCEPT(TabelaThisYear;TabelaYearBefore)
RETURN
CALCULATE(SUM(Facts[NetSalesCurr]);ProdutosOnlyThisYear)
答案 0 :(得分:1)
在不对年份进行硬编码的情况下,我将使用以下方法:
NetSales CY Not LY=
CALCULATE(
SUM(Facts[NetSalesCurr]),
FILTER(
VALUES(Facts[ArticleNo]),
CALCULATE(
COUNTROWS(Facts),
PREVIOUSYEAR(Calendar[Date])
) = 0
)
)
让我们分解一下:
FILTER
函数遍历VALUES(Facts[ArticleNo])
-这是在当前选定时期内具有销售量的所有ArticleNo。CALCULATE(COUNTROWS(Facts), PREVIOUSYEAR(Facts[InvoiceDate]))
= 0
的那些ArticleNo。FILTER
的外部语句中使用从CALCULATE
返回的ArticleNo列表,这样我们就只能获得上一年没有任何销售的商品的NetSales总和。 / li>
有关更多信息,请参见New and returning customers-pattern。
答案 1 :(得分:0)
如果您有日历表,则可以使用下面的dax公式;
this year = CALCULATE ( SUM[measure];DATEADD(CALENDAR[DATE]),0,YEAR)
last year = CALCULATE ( SUM[measure];DATEADD(CALENDAR[DATE]),-1,YEAR)