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我想你找到了解决办法:)很高兴它对你有效