|
昨天有個(gè)小伙伴私信我,如何用公式從某個(gè)數(shù)據(jù)區(qū)域中獲取非空單元格的數(shù)值。他的問題大致是這樣子的:下圖中A1:A10是數(shù)據(jù)區(qū)域,從這個(gè)數(shù)據(jù)區(qū)域中用公式拿到非空單元格的數(shù)據(jù),也就是C1:C7單元格區(qū)域顯示的結(jié)果。該如何實(shí)現(xiàn)呢? 解決該問題的思路并不難,我們要先把A1:A10單元格區(qū)域中非空單元格的行號(hào)找到并獲取到,然后使用INDEX函數(shù)取出對(duì)應(yīng)的值即可。 具體操作步驟如下: 一、找到非空單元格所在的行號(hào)。 選中E1:E10單元格 -- 在編輯欄中輸入公式“=IF(A1:A10<>'',ROW(A1:A10))” -- 按“Ctrl+Shift+Enter”回車。 公式的意思是:將A1:A10單元格區(qū)域的值與空值進(jìn)行比較,如果不為空,則顯示相應(yīng)非空單元格數(shù)值所在的行號(hào),如果為空,則顯示為FALSE。 二、獲取已經(jīng)找到的非空單元格所在的行號(hào)。 選中F1:F10單元格 -- 在編輯欄中輸入公式“=SMALL(E1:E10,ROW(A1:A10))” -- 按“Ctrl+Shift+Enter”回車。 公式的意思是:ROW(A1:A10)公式得到一個(gè)行號(hào)的數(shù)組{1;2;3;4;5;6;7;8;9;10},用SMALL函數(shù)在E1:E10數(shù)據(jù)區(qū)域中按從小到大的順序取出第1至第10小的值。 三、獲取非空單元格行號(hào)對(duì)應(yīng)的值。 選中G1:G10單元格 -- 在編輯欄中輸入公式“=INDEX(A1:A10,F1:F10)” -- 按“Ctrl+Shift+Enter”回車。 公式的意思是:INDEX函數(shù)分別取出A1:A10數(shù)據(jù)區(qū)域中第1、3、4、6、7、10行的數(shù)據(jù)。從上圖可以看到,單元格為空的數(shù)據(jù)取出來的值為錯(cuò)誤值,所以要把這些錯(cuò)誤值給屏蔽。 四、屏蔽錯(cuò)誤值。 選中H1:H10單元格 -- 在編輯欄中輸入公式“=IFERROR(G1:G10,'')” -- 按“Ctrl+Shift+Enter”回車。 公式的意思是:如果G1:G10數(shù)據(jù)局區(qū)域中有錯(cuò)誤值,則返回空值,否則返回公式的結(jié)果。 五、組合公式。 選中C1:C6單元格 -- 在編輯欄中輸入公式“=IFERROR(INDEX(A1:A10,SMALL(IF(A1:A10<>'',ROW(A1:A10)),ROW(A1:A10))),'')” -- 按“Ctrl+Shift+Enter”回車即可。 上述操作中,有什么不懂之處可以在評(píng)論區(qū)留言哦! |
|
|