tft每日頭條

 > 科技

 > excel單元格顔色和字體顔色計算

excel單元格顔色和字體顔色計算

科技 更新时间:2024-11-23 23:57:08

前言|職場實例

Excel已經成為職場人士必備的技能。作為個人電腦普及以來用途最廣泛的辦公軟件之一,在很多公司,Excel已經完全成為了一種生産工具,無論何種行業,隻要需要和數據打交道,Excel幾乎是不二的選擇。

Excel中的公式功能是非常強大的,但是有些函數系統并不自帶,需要我們自己自定義設計生成。

比如下圖所示:

我們想要按背景填充顔色統計數據源中的數據個數和數據之和;以及按字體顔色統計數據源中的數據個數和數據之和。

但是通過普通的Excel可視化函數并不能實現這樣的操作。所以今天小編要向大家介紹用VBA代碼的方法自定義函數解決這樣的顔色統計。因為Excel本身是支持VBA的,用代碼,就可以對很多函數公式無法實現的功能,重新進行設計。

excel單元格顔色和字體顔色計算(Excel以單元格填充顔色或字體顔色統計數據)1

步驟|解決方案

首先,我們右擊工作表名稱标簽,點擊“查看代碼”命令。進入VBA編輯窗口界面。

excel單元格顔色和字體顔色計算(Excel以單元格填充顔色或字體顔色統計數據)2

點擊插入-模塊,将下面一段代碼複制粘貼到VBA模塊編輯窗口中。保存關閉。回到Excel主界面。

excel單元格顔色和字體顔色計算(Excel以單元格填充顔色或字體顔色統計數據)3

代碼如下:

Function CountByBGColor(Col As Range, CountRange As Range) '根據背景顔色計數 Application.Volatile Dim iCell As Range CountByBGColor = 0 For Each iCell In CountRange If iCell.Interior.Color = Col.Interior.Color Then CountByBGColor = CountByBGColor 1 End If Next End Function Function SumByBGColor(Col As Range, SumRange As Range) '根據背景顔色求和 Application.Volatile Dim iCell As Range SumByBGColor = 0 For Each iCell In SumRange If iCell.Interior.Color = Col.Interior.Color Then SumByBGColor = SumByBGColor Application.WorksheetFunction.Sum(iCell) End If Next End Function Function CountByFontColor(Col As Range, CountRange As Range) '根據字體顔色色計數 Application.Volatile Dim iCell As Range CountByFontColor = 0 For Each iCell In CountRange If iCell.Font.Color = Col.Font.Color Then CountByFontColor = CountByFontColor 1 End If Next End Function Function SumByFontColor(Col As Range, SumRange As Range) '根據字體顔色求和 Application.Volatile Dim iCell As Range SumByFontColor = 0 For Each iCell In SumRange If iCell.Font.Color = Col.Font.Color Then SumByFontColor = SumByFontColor Application.WorksheetFunction.Sum(iCell) End If Next End Function

當我們保存代碼後,返回到工作表界面,像常規公式一樣,在編輯欄輸入函數,就可以實現正常的統計了。

按背景填充顔色統計數據個數

我們在H2單元格輸入函數:

=CountByBGColor(G2,$B$2:$E$6)

向下填充函數

excel單元格顔色和字體顔色計算(Excel以單元格填充顔色或字體顔色統計數據)4

按背景填充顔色統計數據之和

我們在I2單元格輸入函數:

=SumByBGColor(G2,$B$2:$E$6)

向下填充函數

excel單元格顔色和字體顔色計算(Excel以單元格填充顔色或字體顔色統計數據)5

按字體顔色統計數據個數

我們在H9單元格輸入函數:

= CountByFontColor(G9,$B$9:$E$13)

向下填充函數

excel單元格顔色和字體顔色計算(Excel以單元格填充顔色或字體顔色統計數據)6

按字體顔色統計數據之和

我們在I9單元格輸入函數:

=SumByFontColor(G9,$B$9:$E$13)

向下填充函數

excel單元格顔色和字體顔色計算(Excel以單元格填充顔色或字體顔色統計數據)7

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved