在Excel公式中引用最后一行

在一个公式中,如何引用列的最后一行?

Sheet1中 ,我有一个公式:

=IF(ISNA(VLOOKUP(A2, Sheet2!A$2:A????, 1, FALSE)), "NO", "YES") 

Sheet2中 ,列A中有数字。但是,我不想硬编码上面的公式中最后一行的行号,因为行数不断变化。

有什么我可以代替“????” ? 我不是在寻找一个VBA /macros的方式来做到这一点。

我将这个公式应用到Sheet1中的几千行。 所以,如果我能把最后一行的数字保存到Sheet2!B1中,然后用B1代替“????”,也是很好的做法。

你可以使用下面的一个:

 =IF(ISNA(VLOOKUP(A2, INDIRECT("Sheet2!A$2:A" & MATCH(9E+307,Sheet2!A:A)), 1, FALSE)), "NO", "YES") 

但由于INDIRECT是易失性函数,所以这个解决scheme很慢。

更好的是:

 =IF(ISNA(VLOOKUP(A2, Sheet2!A:A, 1, FALSE)), "NO", "YES") 

另一个select是使用COUNTIF – 该函数可以引用整个列,但通常只会查看“使用范围”,所以不应该有任何重大的开销,即

=IF(COUNTIF(Sheet2!A:A,A2),"YES","NO")