希望生成一个周图表,其中 x 轴为日期,y 轴为度量,称为“重复访问时间”。 我可以获取计算所选日期而不是一周的度量。
这不是真实数据,而是我花了很长时间准备的一些模拟数据,以保护一些敏感数据。
图 1 – Power BI 中的页面是什么样子?
Mon 的值应为 569,997。周三、周四和本周其余时间的值应为 0。 图 2 - 周一值
因此,无效的措施是这个:
_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
所有用户的平均重复访问时间,无论他们今天是否登录。上述措施排除了在排除 if 语句之前从未登录过的任何用户。这非常适合使用 HOME power BI 页面上断开连接的日期选择器表选择的某一天。
直接查询模式下的仪表板,因此请与所需的 dax 选项相关。
为了解释这个当前日期度量,如果选择今天,我将现在的时间作为当前日期。如果计算的度量值是昨天,则昨天的 23.59.59 将用作当前日期。
您可以使用 dax 将计算列添加到您的表中吗?
如果是,您可以添加一周的开始日期,然后以此日期为基础:
StartOfWeekDate = YourTable[Date] - WEEKDAY(YourTable[Date], 2) + 1
此公式假设一周的开始是星期一。如果您需要一周的开始是另一天,请相应地调整 WEEKDAY 函数的第二个参数:
1 周日 周一 2 次 周二 3 次 ... 周六 7 点