DAX мера для создания недельного графика - PullRequest
3 голосов
/ 18 марта 2020

Предполагается создать недельный график с днем ​​по оси x и показателем по оси y, который называется «Повторное время доступа». Я могу получить меру для расчета на выбранный день, но не на неделю.

Это не реальные данные, а некоторые макетные данные, которые я потратил целую вечность, чтобы подготовить, чтобы защитить некоторые конфиденциальные данные.

Рисунок 1. Как выглядит страница в Power BI?

enter image description here

Значение для Mon должно составлять 569,997. Значения для среды, четверга и оставшейся части недели должны быть 0. Рисунок 2 - Значения по понедельникам

enter image description here

Таким образом, показатель, который не работает, это:

_RepeatTimeToAccess_Value_Days_Graph =
VAR Selected_Date =
    SELECTEDVALUE ( 'DateSelector'[WeekDate], MAX ( 'DateSelector'[WeekDate] ) )
VAR allseconds =
    CALCULATE (
        AVERAGEX (
            VALUES ( AppUser[AppUserId] ),
            DATEDIFF (
                IF ( AppUser[LastLogin] = DATE ( 1899, 12, 30 ), BLANK (), AppUser[LastLogin] ),
                AppUser[CurrentDate],
                SECOND
            )
        ),
        'Date'[WeekDate] = Selected_Date
    )
VAR days =
    INT ( allseconds / 24 / 60 / 60 )
RETURN
    allseconds

Есть две меры (текущая дата и последний вход в систему), которые я включаю, на которые также ссылаются:

CurrentDate =
VAR DateSelected =
    CALCULATE (
        MAX ( 'Date'[DayDate] ),
        FILTER (
            'Date',
            SELECTEDVALUE ( 'DateSelector'[DayDate], MAX ( 'DateSelector'[DayDate] ) ) = 'Date'[DayDate]
        )
    )
VAR Today =
    TODAY ()
VAR Result =
    IF (
        Today = DateSelected,
        NOW (),
        DATEVALUE ( DateSelected ) + TIME ( 23, 59, 59 )
    )
RETURN
    Result

LastLogin =
CALCULATE (
    MINX (
        TOPN ( 1, 'AppAccessLog', 'AppAccessLog'[Source_OriginalTimeStamp] ),
        'AppAccessLog'[Source_OriginalTimeStamp]
    ),
    FILTER (
        ALL ( 'Date' ),
        'Date'[DateId]
            <= SELECTEDVALUE ( 'DateSelector'[DateId], MAX ( 'DateSelector'[DateId] ) )
    )
) + 0

Среднее повторное время доступа для всех пользователей, независимо от того, вошел сегодня. Вышеуказанная мера исключает любого пользователя, который никогда не входил в систему по дате, исключая, если зарегистрированы. Это прекрасно работает для отдельного дня, выбранного с использованием отключенной таблицы выбора даты на странице HOME power BI.

Панель управления в режиме Direct Query, поэтому необходимо указать параметры dax.

Чтобы объяснить это мера currentdate, я сейчас беру время в качестве текущей даты, если выбрано сегодняшнее. Если вчера рассчитывается мера, то для текущей даты будет использоваться вчерашняя дата в 23.59.59.

...