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

时间:2021-03-25 19:42:38

标签: datetime powerbi dax subtraction hour

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

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

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

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

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

table screenshot

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

提前致谢!!

1 个答案:

答案 0 :(得分:0)

我认为原因是你正在操作的减法不方便逐行进行。你能不能试着把它写成如下,把 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

相关问题