查找表格范围内的最后一场比赛

我原来的问题在这里回答。 我一直在尝试构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将导致空白单元格。

account_balance_aggregate_large

account_balance_aggregate_large_2


¹AGGREGATEfunction是在Excel 2010中引入的。它在早期版本中不可用。

尝试

 =SUM(MyTable[Ending Account Balance] * (MyTable[Date]=MAX(MyTable[Date]))) 

作为数组公式( CTRL+SHIFT+ENTERCTRL+SHIFT+ENTER

编辑:

让它只在一个范围内匹配(C2到D2说):

 =SUM(MyTable[Ending Account Balance] * (MyTable[Date]=MAX(MyTable[Date] * (MyTable[Date]>=C2) * (MyTable[Date]<=D2) )))