非零 excel用数组公式获取一列中非空值,看一看


非零 excel用数组公式获取一列中非空值,看一看

文章插图

假如在A1:A10区域中有一列数据 , 其中包含数值“0”和空的单元格 , 现在需要将其中非零、非空的数据提取出来 , 并且按原数据的顺序排列 , 可以使用下面的数组公式 。
【非零 excel用数组公式获取一列中非空值,看一看】在B1单元格中输入数组公式:=OFFSET($A$1,SMALL(IF($A$1:$A$10<>0,ROW($1:$10),""),ROW(A1))-1,0)公式输入完毕后 , 按Ctrl+Shift+Enter结束 , 然后向下填充即可 。公式说明:上例A1:A10区域中 , 第1、2、4、10行包含非零、非空数据 , 先用“IF($A$1:$A$10<>0,ROW($1:$10),"")”来产生一个数列“{1;2;"";4;"";"";"";"";"";10}” , 然后用SMALL函数来获取非空数值 , 最后用OFFSET函数返回单元格数据 。OFFSET函数也可以用INDEX函数代替 , 如B1单元格中的数组公式可以写成:=INDEX($A$1:$A$10,SMALL(IF($A$1:$A$10<>0,ROW($1:$10),""),ROW(A1)))如果要仅仅获取A列中非空数据 , 即返回的数据中包括数值“0” , 将上述公式中的“$A$1:$A$10<>0”改为“$A$1:$A$10<>""”即可:=OFFSET($A$1,SMALL(IF($A$1:$A$10<>"",ROW($1:$10),""),ROW(A1))-1,0)

    经验总结扩展阅读