在工作過程中,有時為了方便區分不同的類別,一般都會選用給單元格標注顏色,這種方法簡單快捷。那如果后續想根據單元格顏色來進行匯總怎么辦呢?我們都知道可以按單元格顏色進行篩選,那除了最簡單的篩選,還有什么其他辦法呢?今天給大家介紹幾個按Excel單元格顏色求和的方法。
如圖,根據下列案例分別按不同的四個顏色對訂單數進行求和。
一、查找求和
查找這個功能大家都經常用,但是根據顏色來查找大家都會用嗎?具體方法如下:
點擊開始選項卡下,【編輯】組里的“查找和選擇”下方的“查找”或者按Ctrl+F就可以打開“查找和替換”窗口。
在“查找和替換”窗口點擊“選項”。選項上方就會出現“格式”下拉框,在下拉框選擇“從單元格選擇格式”。也可以直接選擇格式進行設置,不過從單元格選擇當然更方便了。
鼠標就會變成一個吸管,點擊黃色的單元格之后,格式旁邊的預覽窗格就是黃色的。點擊“查找全部”下方就會出現所有黃色的單元格。
點擊下方查找到的任一條記錄,按住Ctrl+A,所有黃色的單元格就被選中了。工作表右下角就出現了所有黃色的求和。
然后再利用這種方法再依次把其他顏色的單元格求和值獲取出來就可以了。
這種方法簡單易操作,缺點就是只能根據顏色一個個進行操作。
二、宏表函數求和
Excel中可以使用宏表函數get.cell來得到單元格的填充色。但宏表函數必須自定義名稱才能使用,具體方法如下:
點擊公式選項卡下【定義的名稱】組里的“定義名稱”。
在“編輯名稱”窗口,名稱輸入“color”,引用位置輸入“=GET.CELL(63,宏函數!B2)”。“宏表函數”是所在工作表的名稱,由于首先在C2單元格輸入公式獲取顏色值,所以這里選用帶顏色的單元格B2。不加絕對引用就可以方便在其他單元格同樣也能獲取到左側單元格的顏色值。
然后在C2:C10單元格里輸入“=color”。這列的值就是顏色值。
?
同理,在顏色這一列F2:F5旁邊也輸入顏色值“=color”。
最后根據一一對應的顏色值,使用SUMIF函數“=SUMIF(C:C,F2,B:B)”即可。
利用宏表函數獲取顏色的值,然后通過SUMIF函數進行求和。這種獲取顏色值的方法除了可以使用SUMIF函數之外,還可以使用其他不同的函數來對顏色進行多角度分析,非常方便實用。
三、VBA求和
獲取單元格顏色最方便最快捷的方式當然是使用VBA。Excel本身包含的函數無法實現按顏色求和,我們通過VBA自己構建一個自定義函數來幫助實現按顏色求和。
按住Alt+F11或者在工作表標簽上右鍵“查看代碼”打開VBA編輯器。
在VBA編輯器里點擊插入下方的“模塊”。
點擊新創建的模塊–模塊1,在右側窗口輸入以下代碼。
Function?SumColor(col?As?Range,?sumrange?As Range)?As?Long ????Dim?icell?As?Range ????Application.volatile ????For?Each?icell?In?sumrange ????????If icell.Interior.ColorIndex?=?col.Interior.ColorIndex Then ??????????? SumColor?=?Application.Sum(icell)?+?SumColor ??????? End?If ????Next?icell End?Function
解析:
SumColor是自定義的函數名稱,里面包括兩個參數,第一參數col是要獲取顏色的單元格,第二參數sumrange是求和區域。
(這里相當于我們自己創建一個函數SumColor,并且自己定義函數的2個參數的含義。對于初學者來說,暫時可以不用理解這段代碼的意思,只需要保存下來,作為模板套用即可)
點擊“文件”-“保存”,然后直接關閉VBA編輯器即可。
自定義函數定義好之后,直接在工作表進行使用就可以了。在F2:F5單元格輸入“=SumColor(E2,$A$2:$B$10)”就可以了。
注意:宏表函數和VBA用法由于使用了宏,在EXCEL2003版本可以直接保存,但2003以上版本需要保存為“xlsm”格式才能正常使用。
對于標記顏色的單元格來說,查找這個方法容易使用但適用場景不多,VBA功能很強大,但是要想徹底弄懂還需要更深層次的學習。宏表函數這個方法比較簡單,而且也比較實用,覺得有用的話趕緊收藏吧!
相關學習推薦:excel教程