Страницы: 1
RSS
Связь таблиц в Power Pivot, Power Pivot создание календаря с выборкой интервала дат
 
Всем привет!
Столкнулся вот с такой задачей.
есть таблица фактов
ID, SN, Наименование, StartContractDateID, EndContractDateID

пример строки 1, 678563, продукт 1, 20200101, 20210512
уникальных строк более 15 000

у меня 2 календаря с шагом в 1 день + иерархия (год, квартал, месяц, неделя, день) которые я привязываю к ID таблице фактов (соответственно StartContractDateID, EndContractDateID)
Мне нужно смотреть сколько продуктов с действующим контрактом (и их наименование) на определенный день (COUNT SN)
Подскажите пожалуйста, как мне сделать календарь, который бы делал выборку: выбираю день -> Получаю все продукты с действующим на данный день контрактом.
Заранее благодарю!
 
Доброе время суток.
Цитата
Sfb sfb написал:
как мне сделать календарь
Нужен несвязанный с фактами календарь. Можете посмотреть вариант связывания двух несвязанных таблиц. В прочем, на форуме это далеко не единственное решение. Ну, базовое Dynamic segmentation :)
 
Добрый день!
Прошу Вашей помощи.
Что-то я делаю не так (либо не хватает базовых знаний).
В приложении файл с данными.
Буду признателен, если направите в нужную сторону.
 
Цитата
Новичок написал:
либо не хватает
это не удивительно
Цитата

2.3. Приложите файл(ы) с примером (общим весом не более 300Кб) в реальной структуре и форматах данных того, что есть сейчас и того, что хотелось бы на выходе
Вы уверены, что если тема в курилке, то можно и правила не соблюдать?
 
Воевал с размером файла. Приношу извинения.  
Изменено: Новичок - 01.10.2020 11:41:26
 
Вариант меры
Код
Количество активных ЗЧ:=Var minCr = MIN('Date'[ID])
Var maxCr = MAX('Date'[ID])
Var filterTable = FILTER('Facts'; (MIN('Facts'[ContractEndDAteID]; maxCr) - MAX('Facts'[ContractStartDateID]; minCr)) >= 0)
Return CALCULATE(DISTINCTCOUNT('Facts'[SN]); filterTable)
Не забудьте связь с календарём разорвать.
Изменено: Андрей VG - 01.10.2020 12:13:37
 
Новичок, так надо?
Андрей, приветствую.
Изменено: PooHkrd - 01.10.2020 12:28:42
Вот горшок пустой, он предмет простой...
 
Цитата
PooHkrd написал:
так надо?
Привет, Алексей.
Что-то выделил с 1 января по 2 апреля - нет ничего активного :(
 
Андрей VG, ТС просил:
Цитата
Sfb sfb написал:
Мне нужно смотреть сколько продуктов с действующим контрактом (и их наименование) на определенный день
Я сделал именно так.
Если бы просил для диапазона, сделал бы для него. Нет ничего активного, ибо у него контракты начинаются в массиве с 23.01.20. Если выбирать по одному дню на шкале то будет все корректно показывать.  ;)
З.Ы. только вот у ТС календарь заканчивается на 17.09.2020, и если выбирать на шкале даты после этого числа, то показывать будет пустоту, это издержки Временной шкалы, т.к. ей пофиг на исходный диапазон, она формируется на весь год в любом случае. Так что если нарастить в исходнике календарь на весь год, то и фильтрация будет работать корректно.
Изменено: PooHkrd - 01.10.2020 13:03:05
Вот горшок пустой, он предмет простой...
 
Цитата
PooHkrd написал:
Если выбирать по одному дню
Если по одному, то да, конечно. И так прощёлкать целый год :)
 
Цитата
Андрей VG написал:
И так прощёлкать целый год
Я человек простой, как в ТЗ написано, так и реализовываю. Раз ТС так хочет то я ему точно не доктор.  ;)
Вот горшок пустой, он предмет простой...
 
Спасибо большое! проверил, работает. Разобрал формулу, открыл для себя много нового (из серии "а так можно было:)").
Насколько я понял FILTER('Facts'; 'Facts'[ContractStartDateID]<= d && 'Facts'[ContractEndDAteID] >=d)  на выходе выдает ту же по структуре таблицу 'Facts'  только с наложенными ограничениями. Ограничения накладываются построчно, правильно я понял?

можно ли в power pivot создать вычисляемую таблицу?

и если я правильно понял логику, то для интервала дат это будет выглядеть так, верно?:
Код
Q1:=var s = MIN('Calendar'[ID]) 
var f = MAX('Calendar'[ID])
return 
CALCULATE( COUNT( Facts[SN]); FILTER('Facts'; 'Facts'[ContractStartDateID]<= f && 'Facts'[ContractEndDAteID] >=s) )
 
Цитата
Андрей VG написал: Вариант меры
Андрей, спасибо большое за помощь!
Применил формулу, разорвал связь. Все работает, разобрал внимательно формулу.
Мне действительно не хватило понимания основ + алогитма работы функции Filter (я свои мысли описал выше в посте).
Спасибо за науку!
 
Цитата
Новичок написал:
Ограничения накладываются построчно
Не понял вопрос. Ограничения накладываются на всю таблицу Facts.
Цитата
Новичок написал:
для интервала дат это будет выглядеть так, верно?
По идее да, вы же можете легко это проверить, зачем спрашивать?
Вы в принципе знакомы с концепцией контекста вычисления в dax?
Изменено: PooHkrd - 01.10.2020 23:16:53
Вот горшок пустой, он предмет простой...
 
Цитата
PooHkrd написал: Не понял вопрос
Вопрос был в том, что при накладывании ограничений Filter просматривает исходную таблицу построчно? то есть : строка 1 - смотрим условие - подходит, оставляем, нет выбрасывам и т.д.

Цитата
PooHkrd написал: Вы в принципе знакомы с концепцией контекста вычисления в dax?
Честно говоря - нет.
Если скажете где почитать - буду признателен.
Я в основном на SQL... а Power Pivot  как presentation layer (или front end).

Цитата
PooHkrd написал: По идее да, вы же можете легко это проверить, зачем спрашивать?
Я проверил :) спрашиваю наверное чтобы еще раз закрепить логику и сформулировать мысли, извиняюсь если некорректен.
 
Цитата
Новичок написал:
подходит, оставляем, нет выбрасывам и т.д.
Если в этом смысле, то да. Так. Но с учетом контекста вычислений.
Цитата
Новичок написал:
Если скажете где почитать - буду признателен.
Например здесь Всего-то 1000 страниц ;) .
Здесь глава из этой книги про это самое, на ангельском, если сильны - вперед.
В этом посте от одного из гуру PBI русскоязычного сегмента приведена квинтэссенция содержания из книги от мастеров по ссылкам выше.
Изменено: PooHkrd - 02.10.2020 09:12:50
Вот горшок пустой, он предмет простой...
 
Спасибо большое!
Если честно, я очень положительно поражен. Форум читаю как возникает какая-то проблема, пишу сам - первый раз.
Не сильно рассчитывал на то,что кто-то отзовется.
Спасибо за помощь. С Уважением снимаю шляпу!
P.s. Пошел читать мат часть.
-----------------------------------
Дело было не в бобине....
 
Новичок, на самом деле, если бы опубликовали тему в основной ветке, то к помощи подключилось бы больше народа, кроме меня и Андрея. Вопросы по PBI и всему что связано с Power Query/Power Pivot там не возбраняются.
Вот горшок пустой, он предмет простой...
Страницы: 1
Наверх