查找表格范围内的最后一场比赛
我原来的问题在这里回答。 我一直在尝试构build一个镜像操作,以解决原始问题:
=SUMIFS( MyTable[Ending Account Balance], MyTable[Date], AGGREGATE( 15, 6, MyTable[Date] / ( MyTable[Ending Account Balance] <>"" ), COUNTIFS( MyTable[Date], "<="&D2, MyTable[Date], ">="&C2, MyTable[Ending Account Balance], "<>" ) ) )
我想find第一个可用的date值,但从上次给出的数字上升。 上面的逻辑工作,但总是从最后select第二,而不是最后( D2
),因为我需要它。 ">="&C2
的原因是,如果没有它,我遇到了这个公式被复制到根据未来date填充的范围的问题,但是我需要这个只适用于当前的时间跨度。
1月8日222.00的余额是我需要得到的E2
您正在使用AGGREGATE¹function的SMALL子function( 15 ); 在我看来,你应该使用LARGE子function( 14 )。
在E2中,
=IF(COUNTIFS(MyTable[ending account balance], "<>0", MyTable[date], ">="&C2, MyTable[date], "<="&D2), SUMIFS( MyTable[ending account balance], MyTable[date], AGGREGATE(14, 6, MyTable[date]/((MyTable[ending account balance] <>"")*(MyTable[date]>=C2)*(MyTable[date]<=D2)), 1)) , "")
由于COUNTIF函数检查,填充到E3将导致空白单元格。
¹AGGREGATEfunction是在Excel 2010中引入的。它在早期版本中不可用。
尝试
=SUM(MyTable[Ending Account Balance] * (MyTable[Date]=MAX(MyTable[Date])))
作为数组公式( CTRL+SHIFT+ENTER
) CTRL+SHIFT+ENTER
。
编辑:
让它只在一个范围内匹配(C2到D2说):
=SUM(MyTable[Ending Account Balance] * (MyTable[Date]=MAX(MyTable[Date] * (MyTable[Date]>=C2) * (MyTable[Date]<=D2) )))