【问题标题】:PowerBI query doesn't work with date filterPowerBI 查询不适用于日期过滤器
【发布时间】:2019-11-01 10:00:45
【问题描述】:

我有这个 DAX:

Earned Daily =
VAR d = SELECTEDVALUE ( 'P6 Update'[Date] )
RETURN
IF (
    'Data for Pivot'[Date] <= d
        && 'Data for Pivot'[Act Rem] = "Actual Units"
        && 'Data for Pivot'[Type] = "Current",
    'Data for Pivot'[Value],
    0
)

'P6 Update'[Date] 附加到切片器(单选日期下拉菜单)。

我看到日期设置正确,但是当我尝试使用日期过滤时它不起作用。

如果我这样做:

Earned Daily =
IF (
    'Data for Pivot'[Date] <= DATE ( 2018, 4, 19 )
        && 'Data for Pivot'[Act Rem] = "Actual Units"
        && 'Data for Pivot'[Type] = "Current",
    'Data for Pivot'[Value],
    0
)

数据过滤正确。

原代码有什么问题?

#######

注意:P6 更新表是使用以下代码创建的:

P6 Update = CALENDAR(MIN('Data for Pivot'[Date]), MAX('Data for Pivot'[Date]))

【问题讨论】:

  • 如果您选择RETURN d,它会给出日期吗?如果SELECTEDVALUE 没有返回空白,我希望这会起作用。
  • 如果您的P6 Update 表与您的Data for Pivot 表相关,这也可能导致问题。
  • 是的...我想这就是问题所在。它们是相关的。
  • 等一下...这看起来不像是一个度量,而是一个计算列。计算列不能响应切片器。它们不是动态的。
  • 你的问题。您无法将切片器选择读入计算列。

标签: if-statement filter powerbi dax slicers


【解决方案1】:

根据@Alexis Olson 的回答,我整理了一个完全符合我要求的产品:

Earned Daily = 
VAR d = SELECTEDVALUE ( 'P6 Update'[Date] )
RETURN
CALCULATE (
    SUM('Data for Pivot'[Value] ),
    FILTER(ALLSELECTED('Data for Pivot'),'Data for Pivot'[Date]=MAX('Data for Pivot'[Date])),
    'Data for Pivot'[Date] <= d,
    'Data for Pivot'[Act Rem] = "Actual Units",
    'Data for Pivot'[Type] = "Current"
)

添加了 FILTER 使其匹配 Date by Date 直到到达'P6 Update'[Date]

【讨论】:

    【解决方案2】:

    您的 DAX 公式似乎是一个计算列,而不是一个度量。由于计算列仅在每次加载表时评估一次,因此它们无法响应切片器或任何类型的动态过滤。

    解决方案是编写一个度量来生成您想要的值。它看起来像这样:

    Earned Daily =
    VAR d = SELECTEDVALUE ( 'P6 Update'[Date] )
    RETURN
    CALCULATE (
        SUM ( 'Data for Pivot'[Value] ),
        'Data for Pivot'[Date] <= d,
        'Data for Pivot'[Act Rem] = "Actual Units",
        'Data for Pivot'[Type] = "Current"
    )
    

    您可能需要根据您尝试使用此度量的上下文进行调整,但这是基本方法。

    【讨论】:

    • 是的......现在的问题是它对所有值求和,而不是在每一天显示Data for Pivot'[Value]。假设选择了日期 2018-4-15... 它对第 13 天、第 14 天和第 15 天求和。我希望它每天只输出 Data for Pivot'[Value] 而不是求和。
    • 我只是用我想要的方式回答。非常感谢 Alexis 抽出宝贵时间提供宝贵的见解。既然我们讨论了这个,我发现你写的很有意义:计算的列不能响应切片器。它们不是动态的。
    • 你能在这里解释一下吗? stackoverflow.com/q/56658634/114029会不会是因为3列都被计算了?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多