Summera celler efter färg

I Excel finns ingen inbyggd funktion för att utvärdera vilken fyllningsfärg en cell har, d.v.s. summera celler efter färg. Men det går att göra med ett makro, med koden du finner längs ner här.

Om du har ett kalkylblad med färgade celler efter egen betydelse som dessutom innehåller värden som du vill räkna samman så måste man normalt sett manuellt markera utvalda celler och sedan summera. Men med detta makro kan du istället markera ett område och även markera en cell med ”utvald” fyllningsfärg och få summan av de celler som matchar den utvalda fyllningsfärgen.
På bilden ned ser du ett exempel på hur makrot fungerar.

 

Summera celler efter färg i Excel

Här kan du ladda hem Excelfilen.

Vi rekommenderar dessa Excelkurser:
www.infocell.se – lärarledda kvalitetskurser i Excel
www.officekurs.se – oslagbar e-Learning i Excel & Office-paketet

Makrot heter SumCellByColor och har två argument, första argumentet är område för celler som ska summeras och det andra argumentet är den cell som innehåller den fyllningsfärg som ska beräknas. I exemplet på bilden, i cell H8 skrivs formeln för att aktivera makrot =SumCellsByColor(B2:D11;G8) Området B2:D11 finns färger med värden och G8 innehåller den fyllningsfärg (Gul) som ska beräknas. Resultatet blir 21 som är summan av värdena i de gula cellerna.

Vidare i exemplet används motsvarande formel för att räkna de blå och gröna cellerna också. Tänk på att använda samma nyans av färg för att det ska bli korrekt.

För att skapa makrot i din egen arbetsbok kan du kopiera koden nedan, öppna sedan VBA-editorn (Alt+F11) i Excel. Klicka på Infoga och välj Modul. Klistra in koden.

 

Kopiera koden nedan (Får du problem med kopiering/inklistring från webbläsare, öppna då filen ovan och kopiera koden från VBA-editorn)

Function SumCellsByColor(rData As Range, cellRefColor As Range)

Dim indRefColor As Long

Dim cellCurrent As Range

Dim sumRes

Application.Volatile

sumRes = 0

indRefColor = cellRefColor.Cells(1, 1).Interior.Color

For Each cellCurrent In rData

If indRefColor = cellCurrent.Interior.Color Then

sumRes = WorksheetFunction.Sum(cellCurrent, sumRes)

End If

Next cellCurrent

SumCellsByColor = sumRes

End Function

Det finns fler tips här på Excelbrevet som visar hur du kan räkna antalet färgade celler och summera celler efter färg med hjälp av en Exceltabell.

Du gillar kanske också...

Börja prenumerera på Excelbrevet

Ta del av tips & tricks i Excel och Office en gång i månaden helt kostnadsfritt.

Grattis du kommer nu att få Excelbrevet varje månad helt gratis!