萬盛學電腦網

 萬盛學電腦網 >> Excel教程 >> excel綜合 >> 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)

        .

copyright © 萬盛學電腦網 all rights reserved