Powerbi DAX REMOVEFILTERS vs ALL
如何用旧的函数和值替换以下代码中的所有函数和值?本练习只是为了更好地理解REMOVEFILTERSPowerbi DAX REMOVEFILTERS vs ALL,powerbi,dax,Powerbi,Dax,如何用旧的函数和值替换以下代码中的所有函数和值?本练习只是为了更好地理解REMOVEFILTERS CALCULATETABLE ( -- get all products, in the modified filter context of... VALUES ( MyTable[product] ), -- no filter on product REMOVEFILTERS ( MyTable[product] ), -- and under the
CALCULATETABLE (
-- get all products, in the modified filter context of...
VALUES ( MyTable[product] ),
-- no filter on product
REMOVEFILTERS ( MyTable[product] ),
-- and under the same parent category
VALUES ( MyTable[Category] )
)
据我所知,这些提示是可能的
下面是示例数据:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WcisqzSwpVtJRSiwoyEkF0oZKsTpIwkmJeUAIZJigipfn56QlpRYVVQLZpqhSyRlQcWOweFhqempJYlJOKlgusagovwTIMMKUK8gvSSzJhzsBRS4/LzM/D0ibo1qFw9HILogFAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Category = _t, Product = _t, Amount = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Amount", Int64.Type}})
in
#"Changed Type"
REMOVEFILTERS只是此处所有内容的别名,因此其工作原理相同 基本上,ALL返回一个包含所有行的表,忽略可能已应用的任何筛选器 但是,当ALL用作CALCULATE或CALCULATETABLE的筛选器参数时,其行为完全不同:它从表中删除筛选器,而不返回表 为了缓解ALL的这种混乱行为,在CALCULATE中使用REMOVEFILTERS来替换ALL 有关更多详细信息,请参阅本文。
REMOVEFILTERS只是此处所有内容的别名,因此其工作原理相同 基本上,ALL返回一个包含所有行的表,忽略可能已应用的任何筛选器 但是,当ALL用作CALCULATE或CALCULATETABLE的筛选器参数时,其行为完全不同:它从表中删除筛选器,而不返回表 为了缓解ALL的这种混乱行为,在CALCULATE中使用REMOVEFILTERS来替换ALL 有关更多详细信息,请参阅本文。
是否可以使用函数ALL重写问题中的代码?如果是这样的话,怎么做?只需将REMOVEFILTERS替换为ALL,不多不少。将其视为具有两个不同名称的同一个函数。在替换的情况下,我们是否必须在移除过滤器MyTable[product]之前保留行值MyTable[product],。难道这一切都有提取所有不同值和保持它们不被过滤的优点吗?我想我慢慢地走出了双函数的单一名称陷阱。FILTERALL获得表,而CALCULATETABLE…,只是一个简单的过滤器移除器,不会将表作为结果。是吗?是的。第一个ALL inside筛选器返回一个表。CALCULATETABLE中的第二个ALL没有,它实际上是作为REMOVEFILTERS工作的。是否可以用函数ALL重写问题中的代码?如果是这样的话,怎么做?只需将REMOVEFILTERS替换为ALL,不多不少。将其视为具有两个不同名称的同一个函数。在替换的情况下,我们是否必须在移除过滤器MyTable[product]之前保留行值MyTable[product],。难道这一切都有提取所有不同值和保持它们不被过滤的优点吗?我想我慢慢地走出了双函数的单一名称陷阱。FILTERALL获得表,而CALCULATETABLE…,只是一个简单的过滤器移除器,不会将表作为结果。是吗?是的。第一个ALL inside筛选器返回一个表。第二个ALL inside CALCULATETABLE没有,它实际上是作为REMOVEFILTERS工作的。