昨天有個小夥伴私信我,如何用公式從某個數據區域中獲取非空單元格的數值。他的問題大致是這樣子的:下圖中A1:A10是數據區域,從這個數據區域中用公式拿到非空單元格的數據,也就是C1:C7單元格區域顯示的結果。該如何實現呢?
解決該問題的思路並不難,我們要先把A1:A10單元格區域中非空單元格的行號找到並獲取到,然後使用INDEX函數取出對應的值即可。
具體操作步驟如下:
一、找到非空單元格所在的行號。
選中E1:E10單元格 -- 在編輯欄中輸入公式「=IF(A1:A10<>"",ROW(A1:A10))」 -- 按「Ctrl+Shift+Enter」回車。
公式的意思是:將A1:A10單元格區域的值與空值進行比較,如果不為空,則顯示相應非空單元格數值所在的行號,如果為空,則顯示為FALSE。
二、獲取已經找到的非空單元格所在的行號。
選中F1:F10單元格 -- 在編輯欄中輸入公式「=SMALL(E1:E10,ROW(A1:A10))」 -- 按「Ctrl+Shift+Enter」回車。
公式的意思是:ROW(A1:A10)公式得到一個行號的數組{1;2;3;4;5;6;7;8;9;10},用SMALL函數在E1:E10數據區域中按從小到大的順序取出第1至第10小的值。
三、獲取非空單元格行號對應的值。
選中G1:G10單元格 -- 在編輯欄中輸入公式「=INDEX(A1:A10,F1:F10)」 -- 按「Ctrl+Shift+Enter」回車。
公式的意思是:INDEX函數分別取出A1:A10數據區域中第1、3、4、6、7、10行的數據。從上圖可以看到,單元格為空的數據取出來的值為錯誤值,所以要把這些錯誤值給屏蔽。
四、屏蔽錯誤值。
選中H1:H10單元格 -- 在編輯欄中輸入公式「=IFERROR(G1:G10,"")」 -- 按「Ctrl+Shift+Enter」回車。
公式的意思是:如果G1:G10數據局區域中有錯誤值,則返回空值,否則返回公式的結果。
五、組合公式。
選中C1:C6單元格 -- 在編輯欄中輸入公式「=IFERROR(INDEX(A1:A10,SMALL(IF(A1:A10<>"",ROW(A1:A10)),ROW(A1:A10))),"")」 -- 按「Ctrl+Shift+Enter」回車即可。
六、動圖演示如下。
上述操作中,有什麼不懂之處可以在評論區留言哦!
覺得文章不錯,請轉發和點讚,您的不斷支持就是小編繼續寫出優質教程的動力!