2016-12-02 16 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,但我希望使用一个公式,这将防止我必须分别计算每个名称 –