Excel如何按顏色求和:整理了4 種方法,你會用哪些?
編按:說實話,小窩是第一次做顏色求和,因爲我幾乎都用條件格式標識數據,顏色求和就是僞需求。但是問了身邊朋友,以及看了一些學員的提問,原來真存在按顏色求和的。在此,整理了4種方法。
顏色求和實際是個僞命題!
不信?
那就往下看!
1、直接用SUM或者SUMIF求和
分別求綠色與粉色單元格之和。
綠色單元格之和:
=SUM((B3:G9>500)*B3:G9)
粉色單元格之和:
=SUM((B3:G9<250)*B3:G9)
“對嗎?”
你肯定有疑惑:感覺“顏色”條件都沒有使用就完成了求和,這結果對嗎?
結果是否對,繼續看就知道了。
2、查找法求和
來到Sheet2中,同樣分別求綠色和粉色單元格之和。
步驟:
(1)按CTRL+F打開“查找和替換”對話框
(2)單擊“選項”—“格式”—“從單元格格式”,然後吸取綠色單元格。
(3)單擊“查找全部”。
(4)按CTRL+A全選,然後點“關閉”。
(5)在名稱框中輸入“綠色”。
(6)同樣的操作選中粉色單元格,在名稱框中輸入“粉色”。
(7)輸入公式=SUM(綠色)或=SUM(粉色)完成求和。
用到顏色條件了,並且求出來的和與前方是一樣的!
回到Sheet1中。
請用查找法做顏色求和。
請一定試試!!
試了後你會發現無法用查找顏色的方法求和,或者說其結果是錯誤的。
咋回事呢?
我們在表中用顏色標識不同的數據都是基於具體規則進行的,譬如所有大於500的填充綠色,小於250的填充粉色。Excel的條件格式可以幫我們自動完成標識。
下圖就是Sheet1中的條件格式。
它包含兩條規則:<250填充粉色,>500填充綠色。
知道了顏色出現的規則,那麼顏色求和也就是按條件規則求和而已,與具體的顏色無關。
如此處,綠色之和=SUM((B3:G9>500)*B3:G9),粉色之和=SUM((B3:G9<250)*B3:G9)。
用條件格式顯示出來的單元格填色並不等於單元格實質填充了顏色。因此,你無法用查找顏色的方式來求和;無法用下面將要介紹的宏表函數,以及更牛的VBA自定義函數完成顏色求和。
查找法、宏表函數法、VBA自定義格式法,它們都要利用具體填色信息,只能求——
逐個手動填色的數字的和!
顏色標識數字,肯定用條件格式;
用條件格式,就無法通過識別顏色來求和;
能按顏色求和的都是手動填色的,
可誰會自己手欠找麻煩呢?
因此,
按顏色求和就是僞命題!
或許你說,“我就是手動標色的 —— 啊,不,是那個安排做事的人隨手標的,然後要求我求和”。
太壞了!
看來還得做顏色求和。下面是其他的方法。
3、宏表函數法
到Sheet3。提供兩種宏表函數法:一個是公式簡單的,但有輔助列(行);一個是不用輔助列(行)的,但是公式複雜。
1)簡單公式
步驟:
(1)單擊“公式”—“定義名稱”,輸入名稱“color”(名稱須是唯一的,不能與已有名稱相同)。引用位置處輸入公式“=get.cell(63,sheet3!b3)”。
Get.cell()是宏表函數,用於獲取單元格的某類信息。具體信息類型由數字指定,數字範圍1~66。其中,63代表單元格背景顏色。
(2)在B11輸入公式“=color”並右拉下拉獲取單元格的顏色值。
可以看到當前綠色顏色值36,粉色顏色值40。
(3)寫公式完成顏色求和。
輸入公式“=SUMIF($B$11:$G$17,A19,$B$3:$G$9)”並下拉即可。
能去掉輔助行或列嗎?
可以!只不過定義名稱中的公式就複雜了。
2)複雜公式
步驟:
(1)重新定義名稱。
定義名稱,新創建一個名稱“color_2”,然後在引用位置輸入如下公式:
=SUM((GET.CELL(63,INDIRECT("r"&ROW(Sheet3!$B$3:$G$9)&"c"&COLUMN(Sheet3!$B$3:$G$9),0))=GET.CELL(63,Sheet3!A19))*Sheet3!$B$3:$G$9)
(2)在B19處輸入公式“=color_2”下拉即可。
公式說明:
①INDIRECT("r"&ROW(Sheet3!$B$3:$G$9)&"c"&COLUMN(Sheet3!$B$3:$G$9),0),用INDIRECT分別引用B3:G9中的每個單元格。之所以要分別引用,而不是直接寫成GET.CELL(63, Sheet3!$B$3:$G$9),是因爲GET.CELL函數不支持數據區域。
②GET.CELL(63, ①)得到每個單元格的顏色值。
餘下的部分不說你也明白。
4、“很牛很牛”的自定義函數法
到Sheet4。
在B13中輸入公式“=SumColor($B$3:$G$9,A13)”下拉即可。
非常簡單,很靈活,可以在當前文件的任何表格中使用。
SUMCOLOR是自定義函數,第一參數選擇要求和的區域,第二參數選擇顏色條件單元格。
這個自定義函數怎麼來的呢?
按ALT+F11打開VBA編輯器。
(1)單擊“插入”—“模塊”命令。
(2)在插入的模塊中輸入如下代碼(可以複製此處代碼進行粘貼。能實現顏色求和功能的代碼有多種,下方只是相對簡單的一種。)
Function SumColor(sum_range As Range, ref_rang As Range)
Dim x As Range
For Each x In sum_range
If x.Interior.ColorIndex = ref_rang.Interior.ColorIndex Then
SumColor = Application.Sum(x) + SumColor
End If
Next x
End Function
(3)返回工作表即可用函數SUMCOLOR進行求和了。
附上代碼解析:
注意:使用了宏表函數,以及VBA自定義函數後,文件需要保存爲支持宏的xlsm格式。
小結
1.如果是利用條件格式賦予單元格顏色的,(只能)直接用規則進行條件求和,與顏色無關。
2.如果真是手動爲單元格填充顏色的,那查找法、宏表函數法、自定義函數法都可以。
做Excel高手,快速提升工作效率,部落窩教育Excel精品好課任你選擇!
學習交流請加微信hclhclsc進羣領取資料
用SUM函數條件求和比SUMIF還方便
SUMIF函數用法集
條件格式效果錯誤的原因
INDIRECT函數的R1C1樣式用法
版權申明:
本文作者小窩;部落窩教育享有稿件專有使用權。若需轉載請聯繫部落窩教育。