Average by Color in Excel (Step-by-Step Example)

The Average by Color feature in Excel is a powerful tool that can be used to quickly analyze and summarize data in a spreadsheet. This feature allows you to quickly identify the average of a range of numbers by color. This can be useful for identifying trends or patterns within the data. For example, you could easily identify the average sales volume of products based on their color. This feature can be used in a variety of ways to quickly analyze and summarize data in a spreadsheet. In this step-by-step example, we will walk through how to use the Average by Color feature in Excel.


Often you may want to average values in Excel based on their color.

For example, suppose we have the following dataset and we’d like to calculate the average value of cells based on the cell colors:

The easiest way to do this is by writing some code in VBA in Excel.

This might seem intimidating if you’re not familiar with VBA but the process is straightforward and the following step-by-step example shows exactly how to do so.

Step 1: Enter the Data

First, enter the data values into Excel:

Step 2: Show the Developer Tab in Excel

Next, we need to make sure the Developer tab is visible on the top ribbon in Excel.

To do so, click the File tab, then click Options, then click Customize Ribbon.

Under the section called Main Tabs, check the box next to Developer, then click OK:

Step 3: Create a Macro Using VBA

Next, click the Developer tab along the top ribbon and then click the Visual Basic icon:

Next, click the Insert tab and then click Module from the dropdown menu:

Next, paste the following code into the module code editor:

Function AvgCellsByColor(CellRange As Range, CellColor As Range)

Dim CellColorValue As Integer
Dim RunningAvg As Long
Dim RunningSum As Long
Dim RunngingCount As Long

CellColorValue = CellColor.Interior.ColorIndex
Set i = CellRange

For Each i In CellRange
    If i.Interior.ColorIndex = CellColorValue Then
    RunningSum = RunningSum + i.Value
    RunningCount = RunningCount + 1
    End If
Next i

AvgCellsByColor = RunningSum / RunningCount

End Function

The following screenshot shows how to do so:

Next, close the VB Editor.

Step 4: Use the Macro to Average by Color

Lastly, we can use the macro we created to calculate the average of cell values based on color.

First, fill in cells C2:C4 with the colors that you’d like to calculate the average value for.

Then type the following formula into cell D2:

=AvgCellsByColor($A$2:$A$11, C2)

Drag and fill this formula down to each remaining cell in column D and the formula will automatically calculate the average value for each of the cells that have specific background colors:

Excel average by color

For example, we can see that the average value of the cells with a light green background is 17.67.

We can confirm this by manually calculating the average of each cell with a light green background:

Average of Cells with Light Green Background: (20 + 13 + 20) / 3 = 17.67.

This matches the value calculated by our formula.


In conclusion, it is possible to calculate the average value of cells in Excel based on their color using VBA. This can be done by entering the data values into Excel, showing the Developer tab in Excel, creating a macro using VBA, and utilizing the macro to average by color. This approach is straightforward and can be used to quickly calculate the average value of cells by color.

x