2016-12-02 5 views
1

В надежде построить ArrayFormula, что явно превышает то, что я понимаю, поэтому, пожалуйста, несите меня. Я использую следующую формулу, чтобы захватить значение Last Non-Empty Cell и вычесть значение ячейки непосредственно над ним.Lookup Array Формула для расчета разницы

=ArrayFormula((LOOKUP(2,1/(NOT(ISBLANK(Sheet3!A:A))),Sheet3!A:A))-INDEX(Sheet3!A:A, CountA(A:A)-2,1)) 

Я хотел бы использовать HLOOKUP функции, чтобы соответствовать именам из вертикального списка, чтобы определить последнюю непустую ячейку в соответствующем столбце. Я могу получить правильное значение из столбца «Имена» с приведенной ниже формулой, но не уверен, как интегрировать его в ArrayFormula.

=HLOOKUP(A4,Sheet3!A1:E30,1,FALSE) 

Правильная формула должна получить значение в последней непустой ячейки столбца, содержащего имя в 'Data Test'!A:A

Пожалуйста, смотрите образец листа для справки: Data Test

ответ

1

так, как я понимаю данных разумно предположить, что диапазон в каждом столбце является последовательным.

Мы также должны будем рассчитать изменение субсидии для каждого отдельно, потому что некоторые из этих формул не работают с ArrayFormulae.

Эта формула находит последнюю строку соответствующего столбца и вторую по последнюю строку и вычитает два, если есть ошибка (потому что мы пытаемся вычесть строку для Eric), мы используем последнее и единственное значение.

=IFERROR(
OFFSET(
    Sheet3!$A$1, 
    COUNTA(OFFSET(Sheet3!$A$1, 0, MATCH($A2, Sheet3!$A$1:$E$1, 0) - 1, 1000)) - 1, 
    MATCH($A2, Sheet3!$A$1:$E$1, 0) - 1) - 
OFFSET(
    Sheet3!$A$1, 
    COUNTA(OFFSET(Sheet3!$A$1, 0, MATCH($A2, Sheet3!$A$1:$E$1, 0) - 1, 1000)) - 2, 
    MATCH($A2, Sheet3!$A$1:$E$1, 0) - 1), 
OFFSET(
    Sheet3!$A$1, 
    COUNTA(OFFSET(Sheet3!$A$1, 0, MATCH($A2, Sheet3!$A$1:$E$1, 0) - 1, 1000)) - 1, 
    MATCH($A2, Sheet3!$A$1:$E$1, 0) - 1)) 
+0

Спасибо @Robin, но я надеюсь использовать формулу, которая не позволит мне рассчитывать отдельно для каждого имени –