篩選狀態下的計算套路,全網首發!

提示:本期難度係數稍高,建議先收藏。工作中如果遇到類似問題,能夠直接套用就好。

1、篩選後添加序號

D2單元格公式

=SUBTOTAL(3,E$1:E2)-1

簡要說明:

1、SUBTOTAL函數只統計可見單元格內容。

2、第一參數使用3,表示執行CoUNTA函數的計算規則。

3、公式始終計算E列從第一行至公式所在行這個區域中,處於可見狀態的非空單元格個數。用結果減1,實現序號效果。

2、篩選後相乘

E2單元格公式為:

=SUMPRODUCT(SUBTOTAL(3,OFFSET(E3,ROW(1:13),))*F4:F16*G4:G16)

簡要說明:

1、OFFSET以E3單元格為基點,依次向下偏移1~13行,實現對E4~E16每個單元格的單獨引用。

2、SUBTOTAL函數第一參數使用3,即依次統計E4~E16每個單元格的可見單元格個數,如果單元格處於顯示狀態,則對這個單元格的統計結果為1,否則統計結果為0。

得到類似以下效果:

{1;0;1;1;1;1;0;0;1;1;0;1;0}

3、再使用以上結果乘以F列的數量和G列的單價,如果單元格處於顯示狀態,則相當於1*數量*單價,否則相當於0*數量*單價。

4、最後使用SUMPRODUCT函數對乘積進行求和。

3、篩選後按條件計數

E2單元格公式為:

=SUMPRODUCT(SUBTOTAL(3,OFFSET(E3,ROW(1:13),))*(G4:G16>5))

簡要說明:

1、前半部分計算原理與示例2相同。

2、僅改變後半段的統計條件為(G4:G16>5)

4、篩選後自動更正標題

D1單元格公式為:

=LOOKUP(1,0/SUBTOTAL(3,OFFSET(D1,ROW(1:15)-1,)),D:D)&"統計表"

簡要說明:

1、SUBTOTAL與OFFSET函數結合部分,計算原理與示例2相同。

得到由0和1組成的內存數組:

{0;1;0;1;0;0;0;1;0;0;0;1;0;0;0}

2、用0/這個內存數組,如果是1,得到0,如果是0,則為錯誤值。

{#DIV/0!;0;#DIV/0!;0;#DIV/0!;……;#DIV/0!;0;#DIV/0!;……}

3、LOOKUP函數以1作為查詢值,在以上內存數組中查找最後一個0的位置,並返回對應位置的D列的內容。

最終目的就是實現篩選後,提取最後一個處於顯示狀態的單元格內容。

4、將提取到的內容與&"統計表"連接,變成可自動更新的表格標題。

好了,今天的內容就好大家分享到這裡,祝各位一天好心情~~

圖文製作:祝洪忠

易學寶微視頻教程,1290個Office技巧精粹,每個技巧都與實際工作密切相關。輕鬆學習技巧,練就職場達人,淘寶搜索關鍵字:ExcelHome易學寶

推薦閱讀:

【說刑品案】計算追訴期限截止時間的確定
如何使用EXCEL計算生辰八字
命卦的計算
周文王是外星人嗎?發明這麼精妙的卦,堪比發明計算機!
腰圍計算

TAG:套路 | 計算 | 狀態 | 篩選 |