Страницы: 1
RSS
Подсчет количества пользователей в один момент времени, Написать формулу DAX для подсчета количества пользователей
 
Добрый день!

Есть лог данных использования пользователями различными ПО. Есть время начала и время окончания пользования лицензией.
Создается дашборд на Power BI Desktop. Требуется подсчитывать количество одновременно используемых лицензий в единицу времени (шаг времени принял за 1 минуту). Ранее разбивал каждую строку на список дат с нужным шагом и потом группировал. Думаю что этот шаг можно оптимизировать (так как данных становится очень много).

Планирую создать другую таблицу (типа справочника с столбцами Дата_время, ПО), и к той таблице уже делать счет количества пользователей. Подскажите можно ли это сделать через меры или промежуточные таблицы.
Прикладываю Эксель, слева таблица исходных данных, справа облегченный вариант итоговой таблицы.
 
Никита Черепанов, Вам с чем конкретно помочь? Если полностью решит задачу - можно в платном разделе.
 
Мне интересно можно ли это сделать через меры или виртуальные столбцы, и если да то какой формулой DAX можно это сделать. Если решение длинное и не бесплатное то я пойму)
 
Можно:) Лучше создать 2 справочника Дат и Времени. Данные ДатаВремя разделить в PQ на 2 столбца Дата и Время.
Меры простейшие будут.
 
Беру еще подсказку) со столбцами все понятно, а какие меры использовать не понятно (или можно как то groupby или calculate использовать?) Можете написать примерный вид формулы?
 
Никита Черепанов,
countUsers:=DISTINCTCOUNT( data[UserID] )
avg_countUsers:=DIVIDE( [countUsers]; COUNTROWS ( calendar ) * COUNTROWS ( time ) )
Изменено: surkenny - 30.05.2022 06:49:37
 
surkenny,
При этом нужно для каждой исходной строки создавать списки с датами и временем чтобы они соответствовали шагу в справочнике?
То есть если пользователь использовал лицензию 4 минуты, нужно из одной строки превратить в 4 и потом использовать меры?
 
Никита Черепанов, да.
Если данных много, то не разбивать и прямой связи уже не будет; считать будем мерами типа
Код
VAR minDate = MIN ( calendar[date] )
VAR maxDate = MAX ( calendar[date] )
VAR result = CALCULATE ( DISTINCTCOUNT ( data[UserID] ); data[dateIn] <= maxDate; data[dateOut] >= minDate )
RETURN result
 
вот, это я попробую! спасибо большое!
Страницы: 1
Наверх