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)
我正在根据原始过滤条件创建 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)