Страницы: 1
RSS
Расчет кол-ва дней с помощью DAX
 
Добрый день!
Прошу подсказать по следующему моменту:
Как  в DAX написать формулу, которая вычисляет кол-во дней прошедших с последней продажи в разрезе компании и товара. Т.е формула вычитает из сегодняшней даты дату последней продажи определенного товара в разрезе компаний. Пример: Прошло 11 дней с даты последней продажи Товара D Компанией 3 и 12 дней с последней продажи Товара A Компанией 2.Если же продукт по конкретной компании не продавался то выводило "0" Пример во вложении. Пример .xlsx (8.93 КБ)
 
Вам нужна формула для столбца или для меры? И почему в вашем примере если Компания 1 продавала товар А 01.08.2017, 02.08.2017  и 03.08.2017, то в столбце временной лаг у вас прочерк? Согласно условиям задачи, там вроде должно быть 12?
Изменено: PooHkrd - 15.08.2017 10:53:59
Вот горшок пустой, он предмет простой...
 
Цитата
PooHkrd написал:
Согласно условиям задачи, там вроде должно быть 12?
согласен с PooHkrd, задание сформулировано нечетко
вот набросал вычисления - если не помогут, то постарайтесь конкретизировать ваши пожелания
 
Вы правы,спасибо, я проглядел, там должно быть 12. Мне для меры нужна формула

Blood81 спасибо, очень интересно, но можно ли для меры?
 
Пока вот так.
Код
Мера_Временной_Лаг:=DAY(
                            TODAY()-
                            MAXX(
                                SUMMARIZE('Таблица1';'Таблица1'[Компания];'Таблица1'[Товар];"макс.дата";MAX('Таблица1'[Дата]));
                                [макс.дата]))
Эта мера не обнуляет значения для дат, которые не являются максимальными. Но в сводной без детализации по датам количество дней от последней продажи для связки Компания+Товар выводится корректно.
Чуть позже вернусь к вопросу. Или может еще кто поможет.
Вот горшок пустой, он предмет простой...
 
Усложняете.
Мера без вывода 0 для отсутствующих пар:
Код
=(TODAY()-MAX('Таблица1'[Дата]))*1

И, кстати, DAY выведет число до 31, не более. Поменяйте для компании 2 товар D месяц на июль, увидите разницу.

C отсутствующими сочетаниями товар-компания сложнее, вам их просто так в сводную не вывести, так как этих сочетаний не существует в модели данных.

Если подойдет вычисляемая таблица, то там можно извратиться через CROSSJOIN, например. Что-то больше ничего в голову не приходит.
F1 творит чудеса
 
Блин.  :oops:
Еще учиться, учиться и учиться как завещал дедушка Ленин.
Вот горшок пустой, он предмет простой...
 
да ну нечего стесняться. все учимся.
F1 творит чудеса
 
Цитата
Максим Зеленский написал:
C отсутствующими сочетаниями товар-компания сложнее, вам их просто так в сводную не вывести
а почему не вывести? будет ошибку выдавать? или из TODAY вичитать 0 ? в любом случае это можно отсечь логическим IF
 


Попробуйте, если получится - сниму шляпу.

Цитата
Максим Зеленский написал:
этих сочетаний не существует в модели данных
Если бы они были в разных таблицах, то там сработал бы AUTOEXIST. В одной таблице он не включается, соответственно несуществующие пары не создаются и меры для них не рассчитываются.

PS. Для вычисляемой DAX-таблицы такая формула (где [Лаг] - предыдущая мера).
Код
EVALUATE
ADDCOLUMNS (
    CROSSJOIN ( ALL ( 'Таблица1'[Товар] ), ALL ( 'Таблица1'[Компания] ) ),
    "Lag", CALCULATE ( IF ( COUNTROWS ( 'Таблица1' ) = 0, 0, [Лаг] ) )
)
Изменено: Максим Зеленский - 15.08.2017 13:57:37
F1 творит чудеса
 
Добрый день. Похожая проблема, стоит задача выводить остатки товара по которым не было движений 1 год и 2 года. Т.е. остатки "залежалого" товара.

есть Мера Остаток товара , так же столбец Кол-воДнейБезДвижений = TODAY()-'Таблица'[ДатаПоследнейПродажи]
Создала меру этого "залежака 1год"  = CALCULATE('Таблица'[Остаток товара, ед.]; FILTER('Таблица';'Таблица'[Кол-воДнейБезДвижений]="365"))
Но она не работает. Подскажите, пожалуйста
 
zera11, Небось еще ругается что она не умеет сравнивать числа с текстом да?
"365" в формуле зачем в кавычки взяли? И уверены что там должно быть строгое равенство, может все таки >= 365 ?
Вот горшок пустой, он предмет простой...
 
PooHkrd,не ругалось. в кавычки взяла, т.к. это значение из строки Кол-воДнейБезДвижений. Заменила на  >= 365 и значения выдает с минусом теперь  :(

Может из-за того что "Остаток сумма" это Мера а Кол-воДнейБезДвижений столбец ?
Изменено: zera11 - 10.02.2020 11:13:50
 
Никто здесь не видит ваших исходных данных в модели. Как вы себе представляете оказание реальной помощи? Так?
Вот горшок пустой, он предмет простой...
 
Сорри
Остаток товара, ед.Мера = CALCULATE( [Приход товаров в кол-ве] - [Расход товаров в кол-ве]; FILTER(all('Календарь'[Date]);'Календарь'[Date] <=max('Календарь'[Date])))

ДатаПоследнейПродажиСтолбец = CALCULATE(MAX('Календарь'[Date]); FILTER('РН_ПартииТоваров'; 'РН_ПартииТоваров'[Номенклатура] = EARLIER('РН_ПартииТоваров'[Номенклатура];1)))

Кол-воДнейБезДвиженийСтолбец = TODAY()-'РН_ПартииТоваров'[ДатаПоследнейПродажи]


Залежак1годМера = CALCULATE('РН_ПартииТоваров'[Остаток товара, ед.]; FILTER('РН_ПартииТоваров';'РН_ПартииТоваров'[Кол-воДнейБезДвиженийСтолбец]>=365))


получается это https://i.imgur.com/d1sSd69.png
 
zera11, вы извините, если я непонятно изъясняюсь. Но даже в правилах форума очень четко написано про файл-пример, и что это такое. Чтобы вам помочь нужен кусочек вашей модели данных с хотя бы парой десятков строк, и обязательно в той же самой структуре что имеется в вашей модели со всеми связями таблиц, вычисляемыми столбцами и остальным. А гаданием по фотографии, я, извините, не умею.
Вот горшок пустой, он предмет простой...
 
PooHkrd, дело в том что это DAX но в Power BI. Удобно ли будет в формате pbix файл посмотреть?
Изменено: zera11 - 10.02.2020 15:54:58
 
Добрый вечер.
К сожалению не могу сжать файл, прилагаю скриншоты... буду крайне благодарна за помощь...
Необходимо рассчитать кол-во товара по которому не было движений (продаж) 1год, 2года и т.п.
Остатки получила исходя из кол-ва накопительно https://i.imgur.com/9AqVkeX.png
Дата последней продажи https://i.imgur.com/G286BSU.png
Кол-во Днейбез Движения https://i.imgur.com/Tiw5pih.png
Использую меру Залежак1год = CALCULATE('рПродажиФакт'[Остатки товара, единиц]; FILTER('рПродажиФакт';'рПродажиФакт'[Кол-воДнейБезДвижений].[Date]>=365)) , но не выходит https://i.imgur.com/wUc9HvJ.png  
Изменено: zera11 - 16.02.2020 00:39:08
Страницы: 1
Читают тему
Наверх