Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powerbi DAX REMOVEFILTERS vs ALL_Powerbi_Dax - Fatal编程技术网

Powerbi DAX REMOVEFILTERS vs ALL

Powerbi 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

如何用旧的函数和值替换以下代码中的所有函数和值?本练习只是为了更好地理解REMOVEFILTERS

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工作的。