隐藏列,是我們經常使用的一項功能。但是大家有沒有注意到一個問題,當我們把某一列隐藏了以後,在對某個區域的求和等操作時,隐藏的列仍然會參與計算。很多時候我們是不希望這樣的,我們希望把某一列隐藏後,在彙總求和的時候就忽略該列的值,而沒有必要更改求和公式的計算區域。我們還是以最常見的學生成績的例子來講解今天的内容。
以上成績表,我們希望實現的效果是,在不更改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
為了美觀,我們可以将第二行的輔助行删除。
如果需要獲取本教程的演示文件,請點擊我名字後面的關注,然後私信【隐藏不計算】獲取。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!