Hur man räknar eller summerar celler med viss färg i Excel

Ladda ner exempel på arbetsbok

Ladda ner exempelarbetsboken

Denna handledning visar dig hur du räknar eller summerar celler i en viss bakgrundsfärg med VBA.

Tänk på följande intervall i Excel.

Det finns ingen inbyggd Excel -funktion för att räkna färgade celler. Istället måste vi skapa en användardefinierad funktion med VBA.

Räkna celler - Skapa en anpassad VBA -funktion

Att räkna hur många celler som har en viss färg med VBA handlar om att skapa en användardefinierad funktion (UDF) som går igenom alla celler i intervallet och avgör om bakgrundsfärgen för varje cell matchar den bakgrundsfärg som du testar för och sedan använder den funktionen i Excel -kalkylbladet.

I VBA skapar vi en funktion för att räkna utvalda celler.

12345678910111213141516 Funktion CountCellsByColor (rng As Range, ColorCell As Range) Som DoubleDim dblRäkna som dubbelDim rngCell As Range'Loop genom varje cell i intervalletFör varje rngCell In rng'kontrollera om den inre färgen är samma färg som cellen du har valtOm rngCell.Interior.Color = ColorCell.Interior.Color DåIf IsNumeric (rngCell.Value) = True Then'öka antalet med 1 om färgen är korrekt.dblCount = dblCount + 1Avsluta omAvsluta omNästa'Returnera värdet till ExcelCountCellsByColor = dblCountAvsluta funktion

Använd sedan den här funktionen i kalkylbladet för att returnera värdet.

1 = CountCellsByColor (B2: E10, G4)
  1. Klicka i den orange cellen i G4 och klicka på Infoga funktion.

  1. Välj Användardefinierad som kategori och välj sedan CountCellsByColor som funktion att använda.

  1. Klick OK.

  1. Markera intervallet som innehåller alla färgade celler.

  1. Välj ColorCelloch klicka sedan på OK.

Upprepa processen för att räkna cellerna med en grön bakgrundsfärg.

1 = CountCellsByColor (B2: E10, G5)

Summa celler - Skapa en anpassad VBA -funktion

Vi skapar en liknande anpassad funktion i VBA för att summera värdena för cellerna i en viss färg.

12345678910111213141516 Funktion SumCellsByColor (rng As Range, ColorCell As Range) Som DoubleDim dblSum As DoubleDim rngCell As Range'Loop genom varje cell i intervalletFör varje rngCell In rng'kontrollera om den inre färgen är samma färg som cellen du har valtOm rngCell.Interior.Color = ColorCell.Interior.Color DåIf IsNumeric (rngCell.Value) = True Then'lägg till värdet i din variabel om färgen är korrektdblSum = dblSum + rngCell.ValueAvsluta omAvsluta omNästa'Returnera värdet till ExcelSumCellsByColor = dblSumAvsluta funktion

Vi skulle då återigen använda den här funktionen i kalkylbladet för att summera de nödvändiga cellerna.

1 = SumCellsByColor (B2: E10, G7)

Du kommer att bidra till utvecklingen av webbplatsen, dela sidan med dina vänner

wave wave wave wave wave