Я работаю над получением количества новых продаж и потерянных продаж в отношении продаж в прошлом году и году продаж на сегодняшний день. Я пытаюсь показать это в таблице и затем фильтровать эту таблицу с помощью слайсера в течение года. Ниже приведены формулы, которые я использовал:Неверные итоги с использованием IF и значений() в Power BI
SalesPY = CALCULATE(SUM(SalesData[Value]),SAMEPERIODLASTYEAR('Calendar'[DateKey]))
SalesYTD = TOTALYTD(SUM(SalesData[Value]), 'Calendar'[DateKey])
NewSalesUppdate = SUMX(VALUES(SalesData[CustomerName]),IF([SalesYTD] > 0 && [SalesPY] = 0, [SalesYTD]))
LostSalesUppdate = SUMX(VALUES(SalesData[CustomerName]),IF([SalesYTD] = 0 && [SalesPY] > 0, -[SalesPY]))
LostSalesOld = IF([SalesPY] > 0 && [SalesYTD] = 0, -[SalesPY])
NewSalesUppdate
формула работает, как следует, и подытоживает правильно. Однако LostSalesUppdate
не работает, несмотря на довольно большую противоположную формулу по сравнению с NewSalesUppdate
. Кажется, что заявление IF
никогда не становится правдой. Это странно, потому что формула LostSalesOld
показывает правильное значение, но оно не показывает общее количество.
Все советы приветствуются!
Образец данных:
Текущий результат:
Обратите внимание, как клиент А не было никаких продаж с начала года. LostSalesOld показывает -85000 в продажах, но ничего не отражается в общей сумме. LostSalesUppdate ничего не показывает.
Желаемый результат:
Теперь один из потерянных колонок продаж (не имеет значения, какой) имеет значение для клиента А, и в общей сложности
Можете ли вы объяснить с помощью некоторых примеров (например, ежемесячных) данных, что вы хотели бы сделать, и того, что вы сейчас видите? Меры SalesPY и SalesYTD различны (один ограничивается контекстом текущей даты, другой - показателем YTD). По этой причине SalesYTD никогда не будет 0 после продажи в текущем году, тогда как SalesPY часто может быть 0. По этой причине я бы не описал LostSalesUppdate и NewSalesUppdate как противоположные друг другу. – Leonard
Благодарим вас за ответ @Leonard! Я постараюсь быть немного более конкретным. – Derf95
В таблице ниже вы можете увидеть, как я хотел бы, чтобы она работала. Однако, как я уже говорил, формула LostSalesOld показывает -70000 для клиента A в lostSales, но не показывает общее количество.Когда я вместо этого пытаюсь использовать LostSalesUppdated, столбец lostSales просто становится пустым (никогда не становится правдой). Поэтому я знаю, что эта формула работает, когда я использую только оператор IF, но он не работает, когда я добавляю метод Values. Поскольку я фильтрую SalesYTD для каждого клиента, кажется, что для SalesYTD должно быть возможно 0. @Leonard – Derf95