經(jīng)常見到有小伙伴習(xí)慣使用顏色來標(biāo)記不同特征的數(shù)據(jù),就像下面這個表格: 現(xiàn)在需要對添加顏色的單元格進(jìn)行求和,該怎么辦呢? 走你青年這樣做: 1、按Ctrl+F調(diào)出查找對話框 2、單擊【選項(xiàng)】→【格式】→【從單元格選取格式】 3、查找全部 4、然后按Ctrl+A選中全部帶有顏色的單元格 5、名稱框中輸入:顏色 按回車 6、輸入公式 =SUM(顏色) 牛B青年這樣做: 1、右鍵單擊工作表標(biāo)簽,查看代碼 2、【插入】→【模塊】 3、粘貼格式代碼 4、輸入自定義函數(shù) =SumColorIf(C2:H11,B14,C2:H11) 自定義函數(shù)代碼為: Function SumColorIf(Rng As Range, Criteria As Range, Optional SumRng As Range, Optional iType As Integer = 1) Dim CriteriaRange As Range, SumRange As Range Dim cell As Range 'iType=1表示按單元格背景色統(tǒng)計(jì),否則按字體顏色統(tǒng)計(jì),默認(rèn)值是1 Application.Volatile '聲明為易失性函數(shù) '求和條件區(qū)域,當(dāng)取整行或整列時(shí),就返回已使用區(qū)域內(nèi)的單元格區(qū)域 Set CriteriaRange = Intersect(Rng, Rng.Parent.UsedRange) '如果沒有輸入求和區(qū)域,則使用條件區(qū)域作為求和區(qū)域 If IsMissing(SumRng) Then Set SumRange = CriteriaRange Else '否則就調(diào)整求和區(qū)域,使之與條件區(qū)域大小一致 Set SumRange = SumRng.Range('A1').Resize(CriteriaRange.Rows.Count, CriteriaRange.Columns.Count) End If For Each cell In SumRange i = i + 1 If iType = 1 Then If CriteriaRange.Cells(i).Interior.ColorIndex = Criteria.Cells(1).Interior.ColorIndex Then SumColorIf = SumColorIf + cell.Value End If Else If CriteriaRange.Cells(i).Font.ColorIndex = Criteria.Cells(1).Font.ColorIndex Then SumColorIf = SumColorIf + cell.Value End If End If Next End Function 佛系青年這樣做: 1、先搞清楚添加顏色的規(guī)則是什么? 2、根據(jù)添加顏色的規(guī)則來寫公式。 例如,添加顏色的規(guī)則是高于120的數(shù)據(jù),就可以使用 =SUMIF(C2:H11,'>120') 如果添加顏色的規(guī)則是高于平均值的數(shù)據(jù),就可以使用 =SUMIF(C2:H11,'>'&AVERAGE(C2:H11)) 老祝說,添加顏色肯定是有規(guī)則和標(biāo)準(zhǔn)的,只要找到這個標(biāo)準(zhǔn),就能化繁為簡了。如果是閉著眼睛隨便填的,拉出去暴打一頓,OK了。 今天的練習(xí)文件在此: https://pan.baidu.com/s/1-5p07ngEvnnzp9OWk6SZgA 圖文作者:程習(xí)彬 祝洪忠 |
|