Рассчитайте продажи продуктов, проданных в этом году, но не годом ранее - PullRequest
0 голосов
/ 22 февраля 2019

Я хочу рассчитать сумму NetSales для продуктов, продажи которых были в этом году (2019), но НЕ продажи в прошлом году (2018).

Это то, что я пытаюсь (и еще миллион вариантовпохоже на это):

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)

Ответы [ 2 ]

0 голосов
/ 23 февраля 2019

вы можете использовать формулу dax, как показано ниже, если у вас есть таблица календаря;

this year = CALCULATE ( SUM[measure];DATEADD(CALENDAR[DATE]),0,YEAR)
last year = CALCULATE ( SUM[measure];DATEADD(CALENDAR[DATE]),-1,YEAR)
0 голосов
/ 22 февраля 2019

Я бы использовал следующий подход, где мы не будем жестко кодировать годы:

NetSales CY Not LY=
CALCULATE(
    SUM(Facts[NetSalesCurr]),
    FILTER(
        VALUES(Facts[ArticleNo]),
        CALCULATE(
            COUNTROWS(Facts),
            PREVIOUSYEAR(Calendar[Date])
        ) = 0
    )
)

Давайте разберем это:

  1. Внутренняя функция FILTER выполняет итерациюVALUES(Facts[ArticleNo]) - это все ArticleNo, у которых есть продажи в текущий выбранный период.
  2. Для каждого из этих ArticleNo мы вычисляем количество строк в таблице фактов за предыдущий год.CALCULATE(COUNTROWS(Facts), PREVIOUSYEAR(Facts[InvoiceDate]))
  3. Мы сохраняем только те ArticleNo, где это число равно = 0.
  4. Список артикулов, возвращаемых из FILTER, затем используется во внешнем операторе CALCULATE, так чтомы получаем только сумму NetSales для товаров, которые не имели продаж в предыдущем году.

Для получения дополнительной информации см. шаблон Новые и возвращающиеся клиенты .

...