觀眾122209526
你好,親,我是微軟辦公認證大師,優質職場領域創作者
在EXCEL的應用裡面,用IF函數進行相同顏色單元格求個數,是無法實現的,因為目前,官方還沒有開發關於顏色求和的函數,但是我們可以通過自定義函數的方式實現,也就是說,我們可以自己寫一個顏色求個數的案例
1
案例要求,求出不同顏色在A列的總個數
這樣的案例,我們只能通過自定義函數的方式解決,
2
創建自定義函數
打開我們的VBA界面,而後插入一個模塊
將我們的代碼,直接複製到模塊裡面
代碼如下:
Function CountByColor(Ref_color As Range, CountRange As Range )
Application.Volatile
Dim iCol As Integer
Dim rCell As Range
iCol = Ref_color.Interior.ColorIndex
For Each rCell In CountRange
If iCol = rCell.Interior.ColorIndex Then
CountByColor = CountByColor + 1
End If
Next rCell
End Function
3
函數測試,顏色求和
在需要求個數的單元格,而後我們在公式編輯欄,直接輸入=countbycolor,就是原來我們自定義函數的名稱,而後確定,下拉,就可以看到,不同顏色在A列的個數,就求取了出來
職場的親們學會了嗎?如果有不明白的,歡迎關注後評論,我們會盡快作答
EXCEL知識屋
一、if函數的作用
IF函數一般是指Excel中的IF函數,根據指定的條件來判斷其"真"(TRUE)、"假"(FALSE),根據邏輯計算的真假值,從而返回相應的內容。可以使用函數 IF 對數值和公式進行條件檢測。
在2007版本中可以實現多大64層的嵌套。
要注意的是,指定的條件不包含題主所想的取色(我猜題主的思路是 如果 單元格為指定顏色,則彙總,否則不彙總)。因此,if函數無法用單獨於求相同顏色單元格數的和。
那是否有辦法可以求得區域內某種顏色單元格數的和呢?答案是肯定的。利用VBA編輯器或者利用excel自帶的查找功能。
第一步,按alt+F11打開VBA編輯器
第二布,點擊“插入-模塊”,在彈出窗口中輸入以下代碼
1.(SumByColor,可以對區域指定單元格的顏色進行求和):
Function SumByColor(Ref_color As Range,Sum_range As Range)
Application.Volatile
Dim iCol As Integer
Dim iCell As Range
iCol = Ref_color.Integer.ColorIndex
For Each rCell In Sum_Range
If iCol = rCell.Interior.ColorIndex Then
SumByColor = SumByColor + eCell.Value
End If
Next rCell
End Function
2.(CountByColor,可以統計區域指定單元格的顏色個數):
Function CountByColor(Ref_color As Range,CountRange As Range)
Application.Volatile
Dim iCol As Integer
Dim iCell As Range
iCol = Ref_color.Integer.ColorIndex
For Each rCell In CountRange
If iCol = rCell.Interior.ColorIndex Then
CountByColor = CountByColor + 1
End If
Next rCell
End Function
第三步,運算
假設數據區域為A1:C10範圍,所需取值的顏色為A1的黃色,則在任一單元格輸入=SumByColor(A1,A1:C10),即可得到結果。
三、巧用查找功能
有些同學可能會說,沒有裝VBA,也不會用,那怎麼辦?其實excel中還提供了另外一種方式,可以統計相同顏色的和,那就是查找功能。
1.點擊Ctrl+F,打開查找窗口,點擊選項。
2.點擊格式,選擇背景顏色,點擊。
3.鼠標變為取色管狀,移至需要取色的單元格,如黃色A1,點擊鼠標左鍵完成取色。
這裡可以看到,格式預覽中已顯示黃色。
4.點擊查找全部,可以發現黃色的單元格已經全部被選擇出來,在查找對話框中,拉選所有數據,下方將顯示黃色單元格數的和。
5.除此之外,根據格式的選擇,還可以進行更多樣化的查找。缺點是不能實時更新結果,不過日常工作應該是可以滿足的了。
希望上述方法可以幫助到你。