【问题标题】:DAX using SWITCH and SELECTEDVALUE for an output based on a slicer selection基于切片器选择的输出使用 SWITCH 和 SELECTEDVALUE 的 DAX
【发布时间】:2018-11-13 04:21:01
【问题描述】:

我有一列显示“订单”的时效小时数(“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
    )

【问题讨论】:

  • 是否有特定原因需要将其作为列?您将如何在报告中使用“年龄”值?
  • 我将其与概要面板联系起来。因此,对于代表订单 B 的面板,如果“老化”值 > 0,它将显示为红色。然后还有其他三种来自其他表格的条件/颜色。
  • 计算列无法响应切片器。我想你想要一个衡量标准。

标签: powerbi dax


【解决方案1】:

计算的列仅在加载数据时计算一次。因此,他们无法响应您报告页面上的任何切片器或过滤器。

特别是,SELECTEDVALUE( AgingDate[HourDay] ) 正在返回一个空白值(因为它不知道您选择了哪个单个值),这意味着您的 SWITCH 正在使用 @987654323 的 else 值@。

如果您使用相同的代码作为度量,它看起来应该可以正常工作,只要您在引用[AgingHours] 时也使用表名。

【讨论】:

  • 很有意义。 Measure 是否按预期工作...谢谢!
猜你喜欢
  • 2022-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-06
  • 1970-01-01
  • 1970-01-01
  • 2013-12-05
相关资源
最近更新 更多