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 使用或避免使用CALCULATE重新安装过滤器有什么区别?_Powerbi_Dax - Fatal编程技术网

Powerbi 使用或避免使用CALCULATE重新安装过滤器有什么区别?

Powerbi 使用或避免使用CALCULATE重新安装过滤器有什么区别?,powerbi,dax,Powerbi,Dax,我有2个代码如下所示。目标是从过滤器上下文中删除过滤器。值用于重新安装过滤器 方法1: 平均数( 值('销售订单'[销售订单]), [收入] ) 方法2: 算计( 平均数( “销售订单”, [收入] ),值('销售订单'[销售订单]) ) 这些方法之间的区别是什么?问题的答案是:“使用或避免计算之间的区别是什么?”计算(和CALCULATETABLE)是更改过滤器上下文的唯一函数。其他技术不会更改过滤器上下文 文章中的两个公式不会更改过滤器上下文。但第一个计算当前筛选器上下文中每个“销售订单

我有2个代码如下所示。目标是从过滤器上下文中删除过滤器。值用于重新安装过滤器

  • 方法1:

    平均数( 值('销售订单'[销售订单]), [收入] )

  • 方法2:

    算计( 平均数( “销售订单”, [收入] ),值('销售订单'[销售订单]) )


  • 这些方法之间的区别是什么?

    问题的答案是:“使用或避免计算之间的区别是什么?”计算(和CALCULATETABLE)是更改过滤器上下文的唯一函数。其他技术不会更改过滤器上下文

    文章中的两个公式不会更改过滤器上下文。但第一个计算当前筛选器上下文中每个“销售订单”[Sales Order]的平均[Revenue]

    第二个计算“销售订单”表中每行计算的[Revenue]平均值,这通常是不同的,除非“销售订单”[Sales Order]是“销售订单”表的主键


    此外,方法n。2通常是错误的,因为如果“Sales Order”表中存在重复的行,它会出现错误,因为在评估[Revenue]时会发生上下文转换,因此度量值将使用与筛选器匹配的所有重复行,而不仅仅是当前迭代的行。

    问题的答案:“使用或避免计算之间的区别是什么?”计算(和CALCULATETABLE)是更改筛选器上下文的唯一函数。其他技术不会更改筛选器上下文

    文章中的两个公式不会更改筛选上下文。但第一个公式计算当前筛选上下文中每个“销售订单”[Sales Order]的平均[Revenue]

    第二个计算“销售订单”表中每行计算的[Revenue]平均值,这通常是不同的,除非“销售订单”[Sales Order]是“销售订单”表的主键


    此外,方法n.2通常是错误的,因为如果“Sales Order”表中存在重复的行,这将导致行为不当,因为在评估[Revenue]时会发生上下文转换,因此,度量值将使用与筛选器匹配的所有重复行,而不是仅使用当前迭代的行。

    1。两个都没有删除任何筛选器。2。“销售订单”[销售订单]是否是“销售订单”表中的主键?1。两个都没有删除任何筛选器。2。“销售订单”[销售订单]“销售订单”表中的主键?方法1中的值的用途是什么?与平均值([Revenue])相同吗?请详细说明“除非‘销售订单’[Sales Order]是‘Sales Order’表的主键。”-主键如何影响此计算。如果主键是主键,则每行的‘Sales Order’[Sales Order]值不同。如果不是,则可以在多行上重复“销售订单”[Sales Order]。方法1中的值()用作表函数,返回“Sales Order”[Sales Order]的不同值。这意味着如果“Sales Order”[Sales Order]出现在多行上,只返回一次。为什么必须使用CALCULATE而不是中使用的方法?两者都在清除筛选器。您可以建议吗。两个示例中的代码执行相同的计算。在具有CALCULATE的示例中,ALL函数用作筛选器修饰符,可随日期时间[日历年]删除筛选器。在另一个中,ALL用作忽略任何现有筛选器的表函数。如果存在另一个DateTime表列上的筛选器,第一个将应用该筛选器并给出不同的结果,因为只有日历年上的筛选器被删除。第二个将忽略该筛选器并给出相同的结果。我希望它有帮助:)什么是t方法1中值的用途?是否与平均值([Revenue])相同?请详细说明“除非‘销售订单’[Sales Order]是‘Sales Order’表的主键。”-主键如何影响此计算。如果是主键,则每行的‘Sales Order’[Sales Order]值不同。如果不是,则为‘Sales Order’[Sales Order]可以在多行上重复。方法1中的VALUES()用作返回“Sales Order”[Sales Order]的不同值的表函数。这意味着如果“Sales Order”[Sales Order]出现在多行上,只返回一次。为什么必须使用CALCULATE而不是中使用的方法?两者都在清除筛选器。您可以建议吗。两个示例中的代码执行相同的计算。在具有CALCULATE的示例中,ALL函数用作筛选器修饰符,可随日期时间[日历年]删除筛选器。在另一个中,ALL用作忽略任何现有筛选器的表函数。如果存在另一个DateTime表列上的筛选器,则第一个将应用它并给出不同的结果,因为仅删除日历年上的筛选器。第二个将忽略该筛选器并给出相同的结果。我希望它有帮助:)