2016-01-12 2 views
1

Мой первоначальный вопрос был дан here. Я пытался построить на вершине, что для создания зеркального действия к тому, что первоначальный вопрос пытались решить:Найти последний матч в таблице диапазон

=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], "<>"))) 

Я хотел бы найти первое доступное значение даты, но подсчитывая от последнего дано. Вышеизложенное работает в своей логике, но всегда выбирает SECOND от последнего, а не самого последнего (D2), как мне нужно. Причина для ">="&C2 заключается в том, что без нее я столкнулся с проблемой, когда эта формула скопирована в диапазоне, который она заполняет в соответствии с будущими датами, но мне нужно, чтобы она применима только к текущему временному интервалу.

8 января баланс 222.00, что мне нужно, чтобы получить в E2

enter image description here

ответ

1

Вы используете SMALL подфункции в AGGREGATE¹ функция в(); мне кажется, что вы должны использовать подфункцию LARGE().

В Е2, как,

=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)) 
    , "") 

Заполненный до Е3 приведет к пустой клетке вследствие COUNTIF function проверки.

account_balance_aggregate_large

account_balance_aggregate_large_2


¹ AGGREGATE function была введена с Excel 2010. Он не доступен в более ранних версиях.

+0

Вы делаете чудеса в электронной таблице Jeeped, еще раз спасибо. – user3024007

+0

Мне нравится думать, что я заставляю их танцевать. – Jeeped

2

Попробуйте

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

введена как формула массива (CTRL+SHIFT+ENTER).

Edit:

Чтобы он соответствовал только в диапазоне (C2 D2, говорят):

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

Это работает, но не решает мою первоначальную проблему, потому что, когда я копирую это до 'e3', я все равно получаю 222,00, и это должно быть пустым (ожидая его соответствующих значений из диапазона 1/10 - 1/15, когда они становятся доступными в MyTable) – user3024007

+0

Это то, о чем вы думали? – dashnick

+0

... Я получаю ошибку значения ... – user3024007

Смежные вопросы