隱藏列,是我們經(jīng)常使用的一項功能。但是大家有沒有注意到一個問題,當(dāng)我們把某一列隱藏了以后,在對某個區(qū)域的求和等操作時,隱藏的列仍然會參與計算。很多時候我們是不希望這樣的,我們希望把某一列隱藏后,在匯總求和的時候就忽略該列的值,而沒有必要更改求和公式的計算區(qū)域。我們還是以最常見的學(xué)生成績的例子來講解今天的內(nèi)容。
以上成績表,我們希望實現(xiàn)的效果是,在不更改G列總分的公式的前提下,比如當(dāng)我們將歷史和計算機成績列隱藏的時候,總分就變成了求語文和數(shù)學(xué)列,如果我們?nèi)∠[藏,又會變成求所有列。效果如下:相信很多小伙伴看到這個要求,腦子中肯定會蹦出一個想法,我們能夠用某個函數(shù)判斷一列某一列是否被隱藏,然后返回一個值,然后在使用條件求和函數(shù)sumif不是就能實現(xiàn)這個功能了嘛。思路完全正確。那用什么函數(shù)可以實現(xiàn)呢?
Cell是是EXCEL中的信息函數(shù),返回有關(guān)單元格的格式、位置或內(nèi)容的信息。
語法:=cell(Info_type,reference)
參數(shù)解釋:
Info_type:為要返回的單元格信息類型,可以為如下參數(shù)。
reference:單元格引用。
請看下面的一個例子。
根據(jù)以上的介紹,我們可以使用cell中的width返回單元格的列寬,當(dāng)該列被隱藏時,返回值為0。
語法:= SUMIF(range,criteria,sum_range)
參數(shù)解釋:
Range:條件區(qū)域,用于條件判斷的單元格區(qū)域。
Criteria:求和條件,由數(shù)字、邏輯表達式等組成的判定條件。
Sum_range:實際求和區(qū)域,需要求和的單元格、區(qū)域或引用。當(dāng)省略該參數(shù)時,則條件區(qū)域就是實際求和區(qū)域。
根據(jù)以上的介紹,我們需要將第二行設(shè)置為輔助行,用于返回列寬計算值,C2的公式為:
=CELL('width',C1)。
則總分列的計算公式為:
=SUMIF($C$2:$F$2,'>0',C3:F3)。
當(dāng)設(shè)置完成后,大家就會發(fā)現(xiàn)一個問題,當(dāng)我們對某個列進行了隱藏或者取消隱藏時,總分的計算結(jié)果并不會發(fā)生改變,這到底是是什么原因呢?這是因為CELL雖然函數(shù)為'易失性'函數(shù),但'隱藏'或'取消隱藏'命令不會引起其重算,因此需要手動按【F9】鍵或用其他方式刷新計算結(jié)果。
為了解決某些強迫癥朋友的問題,我們可以使用VBA代碼實現(xiàn)讓某列隱藏后取消隱藏后自動進行計算。在本工作表中添加代碼如下:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Calculate
End Sub
為了美觀,我們可以將第二行的輔助行刪除。
如果需要獲取本教程的演示文件,請點擊我名字后面的關(guān)注,然后私信【隱藏不計算】獲取。
聯(lián)系客服