我有一列显示“订单”的老化小时数(“ AgingHours”)。我想创建另一个名为“ Aged”的列,如果“ AgingHours”值大于切片器中的选定值,则该列为1,否则为0。用户可以选择“ 1 Hr”,“ 2 Hrs”,或来自切片器的“ 3小时”。
例如:
创建了名为AgingDate [HourDay]的切片器。用户从切片器中选择“ 2小时”(这意味着,“ AgingHours”列中> = 2的任何内容都会在“ Aged”列中输出1。下面的aged列中的输出将是:
Order AgingHours Aged
A 1 0
B 2 1
我尝试根据选择使用IF语句创建计算列,但是每个值都显示为0。
Aged =
SWITCH (
SELECTEDVALUE( AgingDate[HourDay] ),
"1 Hr", IF ( [AgingHours] >= 1, 1, 0 ),
"2 Hrs", IF ( [AgingHours] >= 2, 1, 0 ),
"3 Hrs", IF ( [AgingHours] >= 3, 1, 0 ),
0
)
答案 0 :(得分:3)
计算的列仅在加载数据时评估一次。因此,他们无法响应您报告页面上的任何切片器或过滤器。
尤其是SELECTEDVALUE( AgingDate[HourDay] )
返回一个空白值(因为它不知道您选择了哪个单一值),这意味着您的SWITCH
使用了 else 值0
。
如果您使用相同的代码作为度量,那么只要您在引用[AgingHours]
时也使用表名,就可以正常工作。