Страницы: 1
RSS
DAX Остатки по товару на последнюю дату относительно среза
 
Добрый день. Помогите реализовать следующую задачу.
Нашла в книге "Шаблоны Dax" занимательную формулу, в оригинале, которая показывает остатки на последнюю дату по клиенту. А мне как раз и нужно такое только по товару.
До этого я пробовала меры в lastdate и lastnonblank (есть в файле). Вроде и с lastdate все хорошо, но на 15.03 (дата отчета) оно не показывает остатки, что логично, а с lastnonblank остаток 0 тянется с самого первого месяца, когда он и стал 0. Вот, хотелось бы, чтобы если в таблице фактов этого товара нет, то ячейка с остатками была пустой (Как в примере на 15.03.2021).

Как преобразовать формулу для работы в pp excel, в оригинале используется TREATAS, чего в экселе нет. Прилагаю оригинал меры, в файле также адаптировано для моих данных. Если данный вариант не подходит для моей модели, как тогда возможно реализовать идею?                                                                                                                                                                                                                                                                            
Код
Balance LastDateByCustomer := 
VAR MaxBalanceDates =    ADDCOLUMNS (SUMMARIZE (  Balances; Customers[Name]);       
                                      "@MaxBalanceDate"; 
                                                      CALCULATE ( MAX ( Balances[Date] ) )    )
VAR MaxBalanceDatesWithLineage =    TREATAS ( MaxBalanceDates;Customers[Name]; 'Date'[Date])
VAR Result =    CALCULATE (SUM ( Balances[Balance] ); MaxBalanceDatesWithLineage)
RETURN  Result

Также прилагаю фото оригинального отчета, для которого и нужна мера. При фильтрации, какой последний месяц на шкале, на последнюю по нему дату и отображаются остатки.
Также прилагаю файл с моделью и моими мерами
Изменено: Owlet - 18.03.2021 16:31:38
 
Примерно
Код
Остатки по товару :=
CALCULATE (
    SUM ( 'Продажи'[Остатки] );
    USERELATIONSHIP ( 'Продажи'[Артикул]; 'Товар'[Артикул] )
)
Изменено: Archerius - 19.03.2021 01:53:36
 
Доброе время суток
Owlet, а что мешает в срезе выбрать март - и будет Остатки lastnonblank отдавать требуемое. В противном случае - мера отдаёт за весь выбранный период. Вы всё же определитесь с что, где, когда.
 
Андрей VG, совершенно ничего не мешает. Но не совсем корректно показывать 0 в остатке, если этот товар был 3 месяц назад. Да и  начальство хочет видеть продажи по всем товарам за все периоды, а остатки на конец, а также и по месяцам фильтровать.
Но тут вопрос в другом, мера в книге построена для power bi и интересно как ее адаптировать к экселю, неужели это невозможно? А в силу еще недостаточного опыта с dax не всегда я могу сама придумать решение. Разве не для этого и есть форум?
Изменено: Owlet - 19.03.2021 09:36:46
 
Цитата
Owlet написал:
Но не совсем корректно показывать 0 в остатке, если этот товар был 3 месяц
Покажите, у меня ничего не показывает и всё соответствует требуемому результату в таблице справа. Артикулы 660, 042 пусты. Всё же постарайтесь указывать что, где, когда.
 
Цитата
Owlet написал:
в оригинале используется TREATAS
На всякий случай здесь есть примеры реализации замены функции TREATAS при помощи FILTER или INTERSECT, а также замеры производительности и наглядное объяснение почему лучше использовать физические связи.
Вот горшок пустой, он предмет простой...
 
Андрей VG, я такой вариант имею в виду. продажи добавлены для наглядности
 
PooHkrd, Спасибо, попробую применить хотя бы на маленьком примере. Я понимаю, что физическую связь  лучше использовать, но в исходных данных таблицы, которая на картинке в первом сообщении, сейчас около 800 строк, это собралось за 4 месяца, она даже на срезы по abcd шустро реагирует, так что попробую, интересно же всё таки))
 
Owlet, вы отвечаете не та тот вопрос, который я вам задал.
Цитата
Андрей VG написал:
что мешает в срезе выбрать март - и будет Остатки lastnonblank отдавать требуемое
вы стали утверждать
Цитата
Owlet написал:
ничего не мешает. Но не совсем корректно показывать 0 в остатке
И следующий вопрос
Цитата
Андрей VG написал:
Покажите
вы показываете не то, что было спрошено.
Не уверен, что стоит с моей стороны продолжать. Успехов.
 
Андрей VG,
Цитата
вы показываете не то, что было спрошено.
Значит, я не поняла, что нужно показать, а показала, что в идеале хотелось бы сделать
Цитата
Успехов.
И Вам хорошего дня)

Archerius, Спасибо, что обратили внимание на вопрос. В данном случае оно делает, что и должно: суммирует остатки за все периоды, если выбрано больше 1 месяца. Но возможно, это натолкнет меня на реализацию задуманного
Страницы: 1
Наверх