2016-12-02 78 views
1

希望能夠構建一個ArrayFormula明顯超出我所理解的範圍,所以請耐心等待。我使用下面的公式來獲取Last Non-Empty Cell的值,並減去緊接其上的單元格的值。查找陣列公式來計算差異

=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,但我希望使用一個公式,這將防止我必須分別計算每個名稱 –