PowerBI CALCULATETABLE,使用 SELECTEDVALUE 筛选

PowerBI CALCULATETABLE, FILTER with SELECTEDVALUE

我正在根据原始过滤条件创建 table,我的过滤值来自 SELECTEDVALUE

Table 未在 SELECTEDVALUE 上进行过滤,如果我用实际值替换它就可以了。

代码(无效)

TransGt5 = 
var seletectedQuanity = SELECTEDVALUE(QuantityFilter[Quantity])
    return CALCULATETABLE(
        Transactions,
        FILTER(
                ALL(Transactions),
                Transactions[Quantity] >= seletectedQuanity
            ))

具有硬编码值的代码工程文件:

TransGt5 = 
var seletectedQuanity = SELECTEDVALUE(QuantityFilter[Quantity])
    return CALCULATETABLE(
        Transactions,
        FILTER(
                ALL(Transactions),
                Transactions[Quantity] >= 3
            ))

我做错了什么?

这不是 Power BI 在概念上的工作方式。

DAX 有两种使用方式:查询数据和定义数据(类似于SQL)。

  • 对于查询,您可以创建 DAX 度量。它们在 运行 时间内执行,可以响应切片器和其他用户操作。
  • 对于计算的 table 和列,您也可以编写 DAX 代码,但它仅在设计时执行,当您创建代码或刷新数据时。它不作为查询运行,也不能响应用户操作。您使用 DAX 创建 table 的事实无关紧要 - 结果是静态 table,与导入的 tables.
  • 相同

让它起作用的唯一方法是建立一个度量。在度量内部,您可以计算 tables,将它们存储在变量中,使用它们计算您需要的任何内容,然后发布结果。结果将响应切片器。

例如,它可能是这样的:

Example =
VAR seletectedQuanity = SELECTEDVALUE ( QuantityFilter[Quantity] )

VAR FilteredTable =
    CALCULATETABLE (
        Transactions,
        Transactions[Quantity] >= seletectedQuanity )

VAR Result = SUMX ( FilteredTable, Transactions[Quantity] )

RETURN Result

(尽管对于此示例,有更简单的方法可以实现相同的结果,无需计算 table)