Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: CountIf mit mehreren Bedingungen

CountIf mit mehreren Bedingungen
14.06.2019 12:54:28
MaAs
Hallo liebe VBA-Experten,
ich habe mal wieder dieses Forum durchforstet, aber mein Anliegen nicht so gefunden, wie ich es brauche (oder mein Verständnis ist noch nicht so ausgeprägt).
Ich möchte folgendes erreichen:
In Spalte C sind Namen vorhanden und in Spalte G sind Zahlen vorhanden. Nun sollen alle Namen mit roter Schrift versehen werden, die mehrfach auftauchen aber auch eine identische Nummer haben.
Bsp.
Hans 3
Peter 5
Nina 4
Peter 5
Hans 2
Hier sollte jetzt nur Peter rot hervorgehoben werden.
Ich habe bereits folgendes Makro, was alle Namen markiert, die mehrfach auftauchen.
Sub Duplikate_hervorheben()
Dim Bereich As Range
Dim Zelle As Range
Set Bereich = Range("C2:C500")
For Each Zelle In Bereich
If WorksheetFunction.CountIf(Bereich, Zelle.Value) > 1 Then
Zelle.Font.ColorIndex = 3
End If
Next Zelle
End Sub

Vielen Dank
Mariam
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: CountIf mit mehreren Bedingungen
14.06.2019 13:10:23
Daniel
Hi
dann Worksheetfunction.CountIfs für das Zählen mit mehreren Bedingungen ("neu" seit Excel 2007):
If WorksheetFunction.CountIfs(Bereich, Zelle.Value, Bereich.Offset(0, 4), Zelle.Offset(0, 4).value) > 1 Then
Gruß Daniel
AW: CountIf mit mehreren Bedingungen
14.06.2019 13:13:15
Rudi
Hallo,
warum nicht per bed. Formatierung?
Formel: =ZÄHLENWENNS(C$1:$C$6;C1;G$1:$G$6;G1)&gt1
Gruß
Rudi
Anzeige
AW: CountIf mit mehreren Bedingungen
14.06.2019 13:54:39
MaAs
Danke für die schnelle Antwort!
@Daniel: ich bekomme folgende Fehlermeldung: Fehler beim Kompilieren: Falsche Anzahl an Argumenten oder ungültige Zuweisung zu einer Eigenschaft.
@Rudi: das Ganze ist ein Ausschnitt aus einem umfangreicheren Makro.
LG Mariam
AW: CountIf mit mehreren Bedingungen
14.06.2019 14:12:32
Rudi
Hallo,
Sub Duplikate_hervorheben()
Dim Bereich1 As Range, Bereich2 As Range
Dim Zelle As Range
Set Bereich1 = Range("C2:C500")
Set Bereich2 = Range("G2:G500")
For Each Zelle In Bereich1
If WorksheetFunction.CountIfs(Bereich1, Zelle.Value, Bereich2, Zelle.Offset(, 4)) > 1 Then
Zelle.Font.Color = 255
Zelle.Offset(, 4).Font.Color = 255
End If
Next Zelle
End Sub

Gruß
Rudi
Anzeige
AW: CountIf mit mehreren Bedingungen
14.06.2019 14:30:00
Daniel
Hi
dann zeig mal deinen Code.
ich vermute, du hast das "s" am Ende übersehen und verwendest immer noch CountIf anstelle von CountIfs.
für das Zählen mit mehreren Bedingungen brauchs du CountIfs - mit "s" am Ende.
nochmal zur Verdeutlichung:
falsch : CountIf
richtig: CountIfs
Gruß Daniel
Anzeige
AW: CountIf mit mehreren Bedingungen
14.06.2019 15:08:27
MaAs
Hi,
@Daniel: *schäm*
Danke euch beiden vielmals. Beides klappt problemlos!
LG Mariam
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

CountIf mit mehreren Bedingungen in Excel


Schritt-für-Schritt-Anleitung

Um in Excel mit mehreren Bedingungen zu zählen, kannst du die Funktion WorksheetFunction.CountIfs verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung, wie du das in VBA umsetzen kannst:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Einfügen eines Moduls: Klicke mit der rechten Maustaste auf „VBAProject (deine Arbeitsmappe)“ und wähle „Einfügen“ > „Modul“.

  3. Code eingeben: Füge den folgenden Code in das Modul ein:

    Sub Duplikate_hervorheben()
       Dim Bereich1 As Range, Bereich2 As Range
       Dim Zelle As Range
       Set Bereich1 = Range("C2:C500")
       Set Bereich2 = Range("G2:G500")
       For Each Zelle In Bereich1
           If WorksheetFunction.CountIfs(Bereich1, Zelle.Value, Bereich2, Zelle.Offset(0, 4).Value) > 1 Then
               Zelle.Font.Color = 255 ' Rot färben
               Zelle.Offset(0, 4).Font.Color = 255 ' Auch die Zahl färben
           End If
       Next Zelle
    End Sub
  4. Makro ausführen: Schließe den VBA-Editor und führe das Makro über ALT + F8 aus.


Häufige Fehler und Lösungen

  • Fehlermeldung: Falsche Anzahl an Argumenten: Stelle sicher, dass du CountIfs und nicht CountIf verwendest. CountIf funktioniert nur mit einer Bedingung, während CountIfs mehrere unterstützt.

  • Falsche Bereiche ausgewählt: Achte darauf, dass die Bereiche (Bereich1 und Bereich2) korrekt definiert sind und die Anzahl der Zeilen übereinstimmt.


Alternative Methoden

Eine Alternative zu VBA ist die Verwendung der bedingten Formatierung in Excel:

  1. Wähle den Bereich in Spalte C aus.

  2. Gehe zu Start > Bedingte Formatierung > Neue Regel.

  3. Wähle „Formel zur Ermittlung der zu formatierenden Zellen verwenden“.

  4. Gib die folgende Formel ein:

    =ZÄHLENWENNS(C$2:C$500; C2; G$2:G$500; G2) > 1
  5. Wähle das gewünschte Format aus (z.B. rote Schrift) und klicke auf „OK“.


Praktische Beispiele

Angenommen, du hast folgende Daten:

Name Zahl
Hans 3
Peter 5
Nina 4
Peter 5
Hans 2

Wenn du das oben genannte Makro ausführst, wird nur „Peter“ rot hervorgehoben, da dieser Name mit der Zahl 5 mehrfach vorkommt. Hierbei wird die Funktion WorksheetFunction.CountIfs genutzt, um die Namen mit den dazugehörigen Zahlen zu vergleichen.


Tipps für Profis

  • Nutze Application.WorksheetFunction.CountIfs, um die Berechnungen schneller zu gestalten, wenn du innerhalb von VBA arbeitest.
  • Achte darauf, dass deine Daten sauber sind; Leerzeichen oder unterschiedliche Schreibweisen können die Zählung beeinflussen.
  • Experimentiere mit CountIf und CountIfs, um die Unterschiede zwischen den beiden Funktionen besser zu verstehen.

FAQ: Häufige Fragen

1. Was ist der Unterschied zwischen CountIf und CountIfs? CountIf zählt Zellen, die einer einzigen Bedingung entsprechen, während CountIfs mehrere Bedingungen gleichzeitig berücksichtigt.

2. Kann ich CountIfs auch in einer Formel direkt in Excel verwenden? Ja, du kannst die Formel =ZÄHLENWENNS(...) auch direkt in einer Zelle verwenden, um die Anzahl der Zellen zu zählen, die mehreren Bedingungen entsprechen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige