微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Power BI DAX:从 SELECTEDVALUE 日期时间减去一小时

如何解决Power BI DAX:从 SELECTEDVALUE 日期时间减去一小时

我正在使用以下度量(和日历表)根据用户输入的日期时间切片器确定一天中给定小时的设备正常运行时间:

Selected Hour =
CALculaTE (
    'UptimeView'[Uptime %],FILTER (
        'UptimeView','UptimeView'[LocalShiftDateHour] = SELECTEDVALUE ( 'CalendarTable'[DateTime] )
    )
)

这工作得很好。问题是我还需要对所选小时 之前 的 12 小时中的 每个 执行相同的计算。当我尝试使用相同的公式但从 SELECTEDVALUE 中减去一小时时,就像这样......

S-1 =
CALculaTE (
    'UptimeView'[Uptime %],'UptimeView'[LocalShiftDateHour]
            = SELECTEDVALUE ( 'CalendarTable'[DateTime] ) - ( 1 / 24 )
    )
)

... 我的表格可视化中出现空白单元格,即使我知道那一小时有数据:

table screenshot

为什么会这样?每当我尝试对 SELECTEDVALUE 日期时间值执行数学运算时,它都会给我空白。但是不使用操作来操作它而只使用选定的日期时间本身,它没有问题。不能从 SELECTEDVALUE 日期时间中减去一个小时吗?如果没有,我应该尝试什么解决方法? (我也尝试使用 -TIME(1,0) 而不是 -1/24 但这也给了我空白。)

提前致谢!!

解决方法

我认为原因是你正在操作的减法不方便逐行进行。你能不能试着把它写成如下,把 MAXX() 函数放在你所做的微积分周围,同时添加另一个参数,它是你想要执行减法的表的名称:

S-1 =
CALCULATE (
    'UptimeView'[Uptime %],FILTER (
        'UptimeView','UptimeView'[LocalShiftDateHour]
            = MAXX('Replace_with_Tablename',SELECTEDVALUE( 
                                               'CalendarTable'[DateTime] ) - ( 1 / 24 ))
    )
)

这是我使用的技巧。实际上,MAXX(tablename,expression) 计算表中每一行的表达式并返回最大值。

不要担心最大值,它对结果没有任何影响,因为 max(one precise value in a precise row)= that same value

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。