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&睡眠的關係,男人如何獲取足夠的睾酮!
[老燦茶社]恭敬是獲取一切智慧的珍寶
領悟佛理禪機 獲取人生智慧 【人生感悟】
開放獲取潮湧 我們還等什麼

TAG:練習 | 公式 | Excel公式 | 獲取 | Excel |