Страницы: 1
RSS
Подсчет количества посетителей, DAX
 
Всем доброго утра.
Прошу, по возможности, помощи с решением следующего кейса:
Имеются следующая БД:

"ИДпосетителя|ДатаВхода|ДатаВыхода|ИДсобытия"

ДатаВхода и ДатаВыхода: Дата и Время точность до секунды. Длительность посещения возможна любая, от нескольких минут до нескольких дней.
Необходимо посчитать количество находящихся внутри посетителей на любое конкретное время,
Также, при выделении диапазона дат на визуальном фильтре на дашборде, нужно отобразить максимальное количество посетителей за выделенный диапазон.

Буду признателен если просто направите "в нужное русло" - какие функции DAX помогут в расчетах...

Заранее благодарен за отклик.
Изменено: Dmitriy P. - 26.05.2021 09:00:40
 
Dmitriy P., Возможно это поможет. А вообще, лучше бы схематический пример
 
Цитата
Owlet написал:
Возможно  это  поможет.
не, не в тему. Тут логика следующая:
Цитата
Dmitriy P. написал:
направите "в нужное русло"
создаете виртуальную таблицу (Summarize), в которой построчно для каждого события проверяете, попадает ли фильтр даты и времени в диапазон от входа и выхода. Далее посчитанную виртуальную таблицу засовываете в функцию COUNTX, которая в итоге и посчитает кол-во событий из виртуальной таблицы SUMMARIZE.
Это один подход. Можно другую связку функций: CALCULATE(COUNT();ADDCOLUMNS(...)). Вот пример меры из соседней темы]
 
Цитата
Owlet написал:
Dmitriy P. , Возможно  это  поможет. А вообще, лучше бы схематический пример
Спасибо за ссылку, но и правда, там немножко речь о другом идет.
А что Вы имели ввиду под схематическим примером? Таблицу с заполненными этими столбцами?
тогда схематический пример может быть таким:
...
13|24.05.2021 07:25:33|24.05.2021 12:21:45|100001
14|24.05.2021 08:18:47|24.05.2021 10:43:10|100002
15|24.05.2021 10:26:03|25.05.2021 01:05:51|100003
16|24.05.2021 12:05:34|24.05.2021 11:45:02|100004
13|24.05.2021 17:51:47|26.05.2021 09:11:28|100005
...

Vladimir Chebykin, благодарю за указание направления пути.
Цитата
Vladimir Chebykin написал:
для каждого события проверяете, попадает ли фильтр даты и времени в диапазон от входа и выхода
Вот если бы еще понять как этот фильтра проверить... то есть для фильтра нужно использовать какую-то отдельную таблицу дат... или же подойдет, например ДатаВхода.
Или логика данной проверки вообще в другом...
 
Цитата
Dmitriy P. написал: Вот если бы еще понять как этот фильтра проверить
сделайте пример, тогда и решение скорее всего готовое получите, из которого понятно все будет. Важно прочитать сначала это
 
Данные для примера приложил.

Очень признателен Вам.
 
Цитата
Dmitriy P. написал:
Данные для примера приложил.
Извините, но этого мало (сделали только 50%) - Вы только исходные данные сгенерили. А где модель данных, а как же
Цитата
Dmitriy P. написал:
выделении диапазона дат на визуальном фильтре на дашборде
этот механизм в эксельке за Вас придумывать?
 
Цитата
Vladimir Chebykin написал: этот механизм в эксельке за Вас придумывать?
Вот сейчас вот Вы меня очень сильно озадачили.
Я представлял себе это просто как визуальный элемент - срез, с добавленным полем даты... а вот какой даты, уже у меня начинаются сложности...это либо одна из двух дат из исходных данных, либо какой-то еще один источник.... а если источник, то соответственно его надо создать... а функция создания источника дат с временем часами и минутами мне не известна...
В общем, если такая возможность есть, то подскажите, что еще нужно для решения возникшего вопроса, так как в моем понимании вот этих данных из файла эксель достаточно.... я представлял себе, что все дело в мере, которая и должна сосчитать...
 
должны будете
 
Примногоблагогдарен)) эксель - это конечно очень хорошо...
Но...
Видимо у меня с объяснением моих потребностей большие проблемы...
Я конечно же имел ввиду, как и указал в заглавии темы, что не могу окончательно сообразить с построением меры при помощи функциональности DAX для дальнейшего применения ее в PowerBI...
 
Цитата
Dmitriy P. написал:
что не могу окончательно сообразить с построением меры при помощи функциональности DAX
а вы даже не попробовали разобраться в файле/мерах... Поколение пепси..
Код
=CALCULATE(
   DISTINCTCOUNT([ID_посетителя]);
   FILTER('Таблица1';
      'Таблица1'[ДатаВхода]<=[дата + время]&&
      'Таблица1'[ДатаВыхода]>=[дата + время]
   )
)
Изменено: Vladimir Chebykin - 26.05.2021 15:26:49
 
Vladimir Chebykin, спасибо! сохраню себе Ваше решение, вдруг и такое пригодится))
 
Всем кто откликнулся, спасибо)
Особенно
Vladimir Chebykin


Мера которая сработала в моем случае:
Код
Количество = 
CALCULATE(
    COUNTROWS('Пример'),
    FILTER(ALL('Пример'[ДатаВхода]),'Пример'[ДатаВхода]<=MIN('Вспомогательная таблица времени'[ДатаВремя])),
    FILTER(ALL('Пример'[ДатаВыхода]),Пример'[ДатаВыхода]>=MAX('Вспомогательная таблица времени'[ДатаВремя])),
   ALL('Вспомогательная таблица времени'),
   LASTDATE('Вспомогательная таблица времени'[ДатаВремя]) --необязательный параметр
)
Страницы: 1
Наверх