【问题标题】:Dynamic filtering based on selected value in slicer in Power BI基于 Power BI 切片器中选定值的动态筛选
【发布时间】:2021-12-30 15:41:51
【问题描述】:

我正在尝试创建一个计算表,其中数据是从另一个表中获取的,并根据用户名、总平均值和这两列之间的方差计算平均值。

为了创建一个表,我在 Power BI 中使用了下面的 DAX,它根据用户名计算平均值。

scanner_speed_average_calculation = 
    SUMMARIZE(scanner_speed
        ,scanner_speed[user_name]
        ,"Average"
        ,AVERAGE(scanner_speed[order_processed]))

为了计算 group_average,我使用了以下 DAX:

group_average = 
    SUMMARIZE(
        scanner_speed
        , "Group Avg"
        , average(scanner_speed[order_processed]))

最后为了计算方差,我使用了这个查询:

Variance = scanner_speed_average_calculation[Average] - scanner_speed_average_calculation[group_average]

以下是这些计算的结果。

我希望能够根据日期中的选定值动态地进行这些计算。我进行这些计算的表确实有日期值。我希望能够在切片器中使用日期范围,并且希望这些值根据所选日期范围进行更改。我用 Filter, Selectedvalue 尝试了一些东西,但我不确定我是否正确使用它们。

下面是一个主表,我从中进行了所有这些计算。

下面是我想要分组平均和方差的视觉效果。我希望能够使用日期范围,这些列应相应更改。

任何想法或帮助将不胜感激。如果可能的话,请把整个公式。我仍然是 DAX 世界的新手。提前致谢

power bi file

【问题讨论】:

    标签: powerbi dax selectedvalue powerbi-filters


    【解决方案1】:

    如果您希望计算依赖于切片器,则需要 Measure,而不是计算列或计算表。计算列和计算表在刷新时生成并物理存储在模型中,因此切片器可以过滤它们,但切片器不能更改计算值。

    度量值不会持久化,而是根据过滤器和切片器的更改按需计算。

    如果你只是添加一个度量值

    AverageOrdersProcessed := AVERAGE(scanner_speed[order_processed])
    

    并将其放在按user_name 分组的视觉对象上,您将获得每个“用户名”的AVERAGE(scanner_speed[order_processed])

    【讨论】:

    • 您能否帮我理解一下,如果切片器正在过滤表,那么计算会随着表中数据的变化而变化,对吗?但你是说切片器不能改变值..你能详细说明一下吗?
    • 如果切片器导致行被过滤掉,汇总计算将会改变。但是行上的计算列值永远不会随着切片器而改变。
    • 感谢大卫的回答。如果我需要组平均值而不是用户名平均值怎么办?以上措施 DAX 给了我每个用户名的平均值,而不是整体
    • 为了帮助编写您需要的度量,您应该提出一个包含样本数据和所需结果的新问题。
    • 好的,谢谢大卫。我想我已经获得了为什么它以前不起作用的基础。对于其他所有人,必须通过测量而不是计算表或计算列来完成。
    猜你喜欢
    • 1970-01-01
    • 2022-06-11
    • 1970-01-01
    • 2021-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-27
    • 1970-01-01
    相关资源
    最近更新 更多