A:A表示第A列的全部单元格。
公式向下拖的话就象你说的一样其引用的范围不会变化,可是后面的row(1:1)会变成row(2:2)的,这样第二行公式所产生的值就是前面求出的数组中的第二个元素了。
要理解这个公式的话,你要一步一步地看它的求值过程。
先是IF(A$3:A$450<>0,ROW(A$3:A$450))。它表示如果A$3到A$450这此单元格里非零的话,就得到它的行号,否则就是FALSE。
然后看SMALL(IF(A$3:A$450<>0,ROW(A$3:A$450)),ROW(1:1))。它表示从前面的一系列非零行的行号中取得最小的1个。(如果复制公式的话最后的1变成2,就取得第2小的一个。
最后的Index函数则返回该行A列的值。
所以该公式的结果就是去除了A$3到A$450中的非零行。