Hvordan telle eller summe celler med visse farger i Excel

Last ned eksempel på arbeidsbok

Last ned eksemplet på arbeidsbok

Denne opplæringen vil vise deg hvordan du teller eller summerer celler i en bestemt bakgrunnsfarge ved hjelp av VBA.

Vurder følgende område i Excel.

Det er ingen innebygd Excel -funksjon for å telle fargede celler. I stedet må vi opprette en brukerdefinert funksjon ved hjelp av VBA.

Telle celler - Lag en tilpasset VBA -funksjon

Å telle hvor mange celler som har en bestemt farge ved hjelp av VBA, handler om å lage en brukerdefinert funksjon (UDF) som vil gå gjennom alle cellene i området, og avgjøre om bakgrunnsfargen til hver celle samsvarer med bakgrunnsfargen du tester for og deretter bruker den funksjonen i Excel -regnearket.

I VBA lager vi en funksjon for å telle utvalgte celler.

12345678910111213141516 Funksjon CountCellsByColor (rng As Range, ColorCell As Range) Som DoubleDim dblCount as DoubleDim rngCell As Range'Sløyfe gjennom hver celle i områdetFor hver rngCell In rng'sjekk for å se om den indre fargen er den samme fargen som cellen du har valgtHvis rngCell.Interior.Color = ColorCell.Interior.Color DaIf IsNumeric (rngCell.Value) = True Then'øke antallet med 1 hvis fargen er riktig.dblCount = dblCount + 1Slutt omSlutt omNeste'Returner verdien til ExcelCountCellsByColor = dblCountSluttfunksjon

Bruk deretter denne funksjonen i regnearket for å returnere verdien.

1 = CountCellsByColor (B2: E10, G4)
  1. Klikk i den oransje cellen i G4, og klikk på Sett inn funksjon.

  1. Plukke ut Brukerdefinert som kategorien, og velg deretter CountCellsByColor som funksjonen å bruke.

  1. Klikk OK.

  1. Marker området som inneholder alle de fargede cellene.

  1. Velg ColorCell, og klikk deretter OK.

Gjenta prosessen for å telle cellene med en grønn bakgrunnsfarge.

1 = CountCellsByColor (B2: E10, G5)

Sumceller - Lag en tilpasset VBA -funksjon

Vi lager en lignende egendefinert funksjon i VBA for å summere verdiene til cellene i en bestemt farge.

12345678910111213141516 Funksjon SumCellsByColor (rng As Range, ColorCell As Range) Som DoubleDim dblSum As DoubleDim rngCell As Range'Sløyfe gjennom hver celle i områdetFor hver rngCell In rng'sjekk om den indre fargen er den samme fargen som cellen du har valgtHvis rngCell.Interior.Color = ColorCell.Interior.Color DaIf IsNumeric (rngCell.Value) = True Then'legg til verdien i variabelen hvis fargen er riktigdblSum = dblSum + rngCell.ValueSlutt omSlutt omNeste'Returner verdien til ExcelSumCellsByColor = dblSumSluttfunksjon

Vi vil deretter igjen bruke denne funksjonen i regnearket for å oppsummere de nødvendige cellene.

1 = SumCellsByColor (B2: E10, G7)

Du vil bidra til utvikling av området, dele siden med vennene dine

wave wave wave wave wave