Excel公式練習2:獲取非空單元格
本次的練習是:嘗試使用一個公式,來消除指定單元格區域中的空單元格,即獲得的值中不包括空單元格,如下圖所示。
先不看下面的內容,自已試試!
公式思路
先找到非空單元格所在行的行號,獲取行號並以行號作為INDEX函數的參數取出相應的值。
公式
選擇單元格C1:C7,輸入公式:
=IFERROR(INDEX(A1:A7,SMALL(IF(A1:A7<>"",ROW(A1:A7)),ROW(A1:A7))),"")
按Ctrl+Shift+Enter組合鍵完成輸入。
公式解析
下面,我們將公式分解,來看看是怎麼一步一步得到答案的。
首先,找出非空單元格所在行的行號。選擇單元格C1:C7,輸入公式:
=IF(A1:A7<>"",ROW(A1:A7))
按Ctrl+Shift+Enter組合鍵完成輸入。結果如下圖所示:
從圖中可以看出,公式將列A中的值與空值比較,不為空則在列C中相應的單元格輸入非空單元格行號,而空單元格則輸入FALSE。
接下來,獲取已經找出的非空單元格的行號。選擇單元格E1:E7,輸入公式:
=SMALL(C1:C7,ROW(A1:A7))
按Ctrl+Shift+Enter組合鍵完成輸入。結果如下圖所示:
代表非空單元格行號的數值已依次輸入到列E單元格中。ROW函數得到一個數組{1;2;3;4;5;6;7},作為SMALL函數的參數,依次取出C1:C7中第1至第7小的值。
然後,將行號作為INDEX函數的參數取出值。選擇單元格G1:G7,輸入公式:
=INDEX(A1:A7,E1:E7)
按Ctrl+Shift+Enter組合鍵完成輸入。結果如下圖所示:
可以看到,在列G中放置了非空單元格的值,但也放置了錯誤值。INDEX函數依次取出列A中第1、3、5、7行的數據。
最後,使用IFERROR函數消除錯誤值。選擇單元格I1:I7,輸入公式:
=IFERROR(G1:G7,"")
按Ctrl+Shift+Enter組合鍵完成輸入。結果如下圖所示:
如果是錯誤值,則為空。
將上述各步的公式組合,即可得到最終的公式。
下期公式練習
Excel公式練習3:求連續數據之和的最大值
求連續N個數據中所有連續M個數據之和的最大值。
有興趣的朋友,可以先思考。
如果您對本文介紹的內容有什麼建議或好的示例,歡迎發送郵件給我:xhdsxfjy@163.com
也可以在本文下面發表留言,留下您的足跡。
本文屬原創文章,轉載請聯繫我或者註明出處。
關注《完美Excel》微信公眾賬號:
推薦閱讀:
※財官獲取的方式
※睾酮和維生素D&睡眠的關係,男人如何獲取足夠的睾酮!
※[老燦茶社]恭敬是獲取一切智慧的珍寶
※領悟佛理禪機 獲取人生智慧 【人生感悟】
※開放獲取潮湧 我們還等什麼