Powerbi 为什么';在我的行上下文中使用时,前面的函数不能工作

Powerbi 为什么';在我的行上下文中使用时,前面的函数不能工作,powerbi,dax,Powerbi,Dax,我试图根据两个值(object_1和object_2)之间的计算结果创建一个滚动总和。问题是,当我试图通过使用calculate函数+previous函数来实现这一点时,它似乎没有任何影响 我尝试使用我试图创建滚动总和的值创建一个虚拟表(使用summary),然后在Sumx函数中使用previous来创建所需的效果,但这不起作用 Rolling Sum = var object_1 = Calculate(SUM('Table 1'[Value]), Filter(allselecte

我试图根据两个值(
object_1
object_2
)之间的计算结果创建一个滚动总和。问题是,当我试图通过使用
calculate
函数+
previous
函数来实现这一点时,它似乎没有任何影响

我尝试使用我试图创建滚动总和的值创建一个虚拟表(使用
summary
),然后在
Sumx
函数中使用
previous
来创建所需的效果,但这不起作用

Rolling Sum = 

var object_1 = Calculate(SUM('Table 1'[Value]),
   Filter(allselected('Table 1'),
      COUNTROWS(FILTER('Table 1',
         EARLIER('Table 1'[Date])<= 'Table 1'[Date]))))

var object_2 = Calculate(SUM('Table 2'[Value]),
   Filter(allselected('Table 2'),
      COUNTROWS(FILTER('Table 2',
         EARLIER('Table 2'[Date])<= 'Table 2'[Date]))))

return

calculate(object_1 - object_2,
   Filter(allselected('Date Table'),
      COUNTROWS(FILTER('Date Table',
         EARLIER('Date Table'[Date])<= 'Date Table'[Date]))))
滚动和=
var object_1=计算(总和('表1'[值]),
过滤器(全部选定(“表1”),
COUNTROWS(筛选器('表1',

早期('Table 1'[Date])我认为,由于您在VAR中使用的是早期版本,因此它不在筛选上下文中,基本上忽略了它。您可能会幸运地将计算移到return语句中,然后创建一个VAR来存储最大日期(在筛选上下文之外)…我还没有测试过,但可能是:

    Rolling Sum =
VAR T1MaxDate =
    MAX ( 'Table 1'[Date] )
VAR T2MaxDate =
    MAX ( 'Table 2'[Date] )
VAR MaxDate =
    MAX ( 'Date Table'[Date] )
RETURN
    CALCULATE (
        CALCULATE (
            SUM ( 'Table 1'[Value] ),
            FILTER (
                ALLSELECTED ( 'Table 1' ),
                COUNTROWS ( FILTER ( 'Table 1', 'Table 1'[Date] <= T1MaxDate ) )
            )
        )
            - CALCULATE (
                SUM ( 'Table 2'[Value] ),
                FILTER (
                    ALLSELECTED ( 'Table 2' ),
                    COUNTROWS ( FILTER ( 'Table 2', 'Table 2'[Date] <= T2MaxDate ) )
                )
            ),
        FILTER (
            ALLSELECTED ( 'Date Table' ),
            COUNTROWS ( FILTER ( 'Date Table', 'Date Table'[Date] <= MaxDate ) )
        )
    )   
滚动求和=
变量T1MaxDate=
最大值(“表1”[日期])
变量T2MaxDate=
最大值(“表2”[日期])
VAR MaxDate=
最大值('日期表'[日期])
回来
算计(
算计(
总和('表1'[值]),
滤器(
全部选定(‘表1’),

COUNTROWS(筛选器('表1','表1'[日期]这是一个我认为您可以用来创建滚动计算的示例。它计算了本年度6个月滚动与上一年度相比的分数变化:快速问题;在上一个筛选上下文中,您是指表2而不是日期2?如果是,原因是什么?我根据您过滤“日期2”的原始度量值进行计算,但我我认为这是无意的,所以我编辑了我的文章。@KvothesLute请看我的编辑,这是一个非常标准的模式,应该可以满足您的需要。如果您需要ALLSELECTED()你总是可以利用这些措施来解决困惑,我现在就知道了。用这种方式做这件事比早一点好吗?@KvothesLute我想你找到了解决办法:)很高兴它对你有效