文|效率火箭
源|效率火箭(ID:xlrocket)
在Excel表格中,會有童鞋喜歡給不同的內(nèi)容標上不同的色塊以示區(qū)分。
但問題就來了,到底該怎么對不同的色塊進行簡單統(tǒng)計,比如求個和、計個數(shù)之類的呢?
本篇將介紹三種方法來對不同底色的單元格進行計數(shù)操作:
使用篩選和SUBTOTAL函數(shù)
使用GET.CELL函數(shù)
使用宏
該法包含了兩部分:
基于不同底色,對單元格進行篩選;
使用SUBTOTAL函數(shù)對可見的單元格計數(shù)(篩選后)
假設(shè),我們現(xiàn)在有這么一個原數(shù)據(jù)表格,其中分別有綠色和橙色兩種顏色的高亮單元格。接著就看下,該如何實現(xiàn)對不同顏色單元格的計數(shù)。
>>>使用SUBTOTAL函數(shù)
在數(shù)據(jù)下方的單元格中輸入公式命令:=SUBTOTAL(102,E1:E20)
公式中102代表,計數(shù)但忽略隱藏值,往下走你就能明白它的厲害之處。
>>>根據(jù)單元格背景顏色,進行篩選
一旦你按照單元格顏色篩選后,就能看到下圖的效果:
使用SUBTOTAL函數(shù)的計數(shù)結(jié)果變成了4,忽略了其他篩掉的單元格。
使用COUNT函數(shù)的計數(shù)結(jié)果依然維持在19。
>>>創(chuàng)建一個定義名稱
點擊 公式->定義名稱
在彈出的對話框中輸入以下信息:
名稱:GetColor
范圍:可以使用默認的工作薄
引用位置:=GET.CELL(38,Sheet1!$A2)
38在這里意味著提取的是單元格的背景色(具體此參數(shù)的其他設(shè)置法,在此就不展開了),而Sheet1!$A2則表示在Sheet1表中以A列為絕對引用。
>>>在每行末尾單元格嘗試下GetColor的效果
在F列輸入=GetColor這么一個公式,結(jié)果就是沒有背景色的返回值為0,橙色的返回值為40,綠色為50。
>>>利用COUNTIF+GetColor計算不同顏色的單元格
在B22/B23單元格中分別輸入=COUNTIF($F$2:$F$20,GetColor),最終便計算出綠色數(shù)量為3,橙色數(shù)量為4。
為什么可以這樣呢?
COUNTIF函數(shù)利用GetColor這個自定義的名稱作為判斷條件,在提取了A22/A23單元格的背景色參數(shù)后,對比F2:F20這個區(qū)域的參數(shù)。
你得先利用VBA創(chuàng)建一個自定義函數(shù),然后將以下代碼加到一個新的模塊中:
Function GetColorCount(CountRange As Range, CountColor As Range)
Dim CountColorValue As Integer
Dim TotalCount As Integer
CountColorValue = CountColor.Interior.ColorIndex
Set rCell = CountRange
For Each rCell In CountRange
If rCell.Interior.ColorIndex = CountColorValue Then
TotalCount = TotalCount + 1
End If
Next rCell
GetColorCount = TotalCount
End Function
這個名為GetColorCount的自定義函數(shù)有兩個參數(shù),分別:
-CountRange是為了來定義需要計數(shù)某顏色單元格的區(qū)域
-CountColor則是為了確定這一顏色
在單元格G3中輸入=GetColorCount($A$2:$A$20,G3),也就是說需要在A2:A20這個區(qū)域找到與G3背景色相同的單元格數(shù)量。
- END -
聯(lián)系客服