讓隱藏的列"徹底消失",公式不變的情況下只計算非隱藏的列的和

隱藏列,是我們經常使用的一項功能。但是大家有沒有注意到一個問題,當我們把某一列隱藏了以後,在對某個區域的求和等操作時,隱藏的列仍然會參與計算。很多時候我們是不希望這樣的,我們希望把某一列隱藏後,在彙總求和的時候就忽略該列的值,而沒有必要更改求和公式的計算區域。我們還是以最常見的學生成績的例子來講解今天的內容。

讓隱藏的列

以上成績表,我們希望實現的效果是,在不更改G列總分的公式的前提下,比如當我們將歷史和計算機成績列隱藏的時候,總分就變成了求語文和數學列,如果我們取消隱藏,又會變成求所有列。效果如下:相信很多小夥伴看到這個要求,腦子中肯定會蹦出一個想法,我們能夠用某個函數判斷一列某一列是否被隱藏,然後返回一個值,然後在使用條件求和函數sumif不是就能實現這個功能了嘛。思路完全正確。那用什麼函數可以實現呢?

讓隱藏的列

一、神奇的cell函數

Cell是是EXCEL中的信息函數,返回有關單元格的格式、位置或內容的信息。

語法:=cell(Info_type,reference)

參數解釋:

Info_type:為要返回的單元格信息類型,可以為如下參數。

讓隱藏的列

reference:單元格引用。

請看下面的一個例子。

讓隱藏的列

根據以上的介紹,我們可以使用cell中的width返回單元格的列寬,當該列被隱藏時,返回值為0。

二、sumif條件求和

語法:= SUMIF(range,criteria,sum_range)

參數解釋:

Range:條件區域,用於條件判斷的單元格區域。

Criteria:求和條件,由數字、邏輯表達式等組成的判定條件。

Sum_range:實際求和區域,需要求和的單元格、區域或引用。當省略該參數時,則條件區域就是實際求和區域。

三、案例實現

根據以上的介紹,我們需要將第二行設置為輔助行,用於返回列寬計算值,C2的公式為:

=CELL("width",C1)。

則總分列的計算公式為:

=SUMIF($C$2:$F$2,">0",C3:F3)。

讓隱藏的列

當設置完成後,大家就會發現一個問題,當我們對某個列進行了隱藏或者取消隱藏時,總分的計算結果並不會發生改變,這到底是是什麼原因呢?這是因為CELL雖然函數為"易失性"函數,但"隱藏"或"取消隱藏"命令不會引起其重算,因此需要手動按【F9】鍵或用其他方式刷新計算結果。

為了解決某些強迫症朋友的問題,我們可以使用VBA代碼實現讓某列隱藏後取消隱藏後自動進行計算。在本工作表中添加代碼如下:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Calculate

End Sub

讓隱藏的列

為了美觀,我們可以將第二行的輔助行刪除。

如果需要獲取本教程的演示文件,請點擊我名字後面的關注,然後私信【隱藏不計算】獲取。


分享到:


相關文章: