我在论坛上找到了一个公式,可以找到列中最后一个填充的单元格:
LOOKUP(2,1/(G:G<>""),ROW(G:G)))
但是这一点还在发生什么?
1/(G:G<>"")
一分为??? (这些不等于&#34;&#34;?)我不明白这里的逻辑。
答案 0 :(得分:0)
如果您想通过使用公式审核评估公式来逐步观察计算,我强烈建议您限制范围。说申请:
=LOOKUP(2,1/(G1:G10<>""),ROW(G1:G10))
并且,为了便于说明,在表格中填充不低于G6(但在G1:G5范围内,在这种情况下可能有助于理解正在发生的事情)。
对于这个答案,我只考虑五个细胞:G1,G3和G4填充,G2和G5(以后)没有。
1/(G1:G5<>"")
确实是这个公式的核心。正如您所认识到的那样,G1:G5<>""
会测试是否等于&#34;&#34; 。 ""
是&#39;空&#39;}的惯例。对于Excel单元格。如果填充(即&#34;非空&#34;),则返回TRUE,否则返回FALSE。因此,对于针对该示例选择的五个单元,返回关于G1:G5的数组:
TRUE;FALSE;TRUE;TRUE;FALSE
。
在算术计算中,Excel将TRUE视为1
,将FALSE视为0
。因此,使用上面的真值表作为分母,1
作为分子给出一个数组(再次按顺序):
1/1;1/0;1/1;1/1;1/0
解析为:
1;#DIV/0!;1;1;#DIV/0!
。
在上面的LOOKUP函数中,2
被选为lookup_value。 (任何其他大于1的数字都同样适用。)因此,我们在一个由2
或错误组成的数组中寻找1
。因此,没有机会找到完全匹配,因此默认启动,这是最后一个值(按顺序,不计算错误)。数组中的最后一个1
是第四个元素,ROW中的第四个元素(G1:G5)是...... 4
。
G4是ColumnG中最后一个填充的单元格(在我的示例中)。