2017-04-19 8 views
1

Ich habe ein Excel mit drei Spalten.VBA-Makro mit Countif mit drei Spalten

Column A:    Column B: Column C:  
shirts (long, short) color  age 

Jetzt muss ich herausfinden, wie viele lange, grüne T-Shirts dort mit einem Alter von 10. Natürlich sind ich jetzt, wie es manuell zu filtern, aber ich möchte es automatisch tun. Eigentlich habe ich eine viel komplexere Excel-Datei mit etwa 80.000 Zeilen und ich muss noch ein paar Zahlen herausfinden. Eine Lösung für das oben angegebene Beispiel wird die Aufgabe für mich erledigen. Ich werde es nur an meine eigentliche Datei anpassen. Ich habe ein paar mögliche Lösungen gefunden, aber ich denke, eine einfache countIf-Funktion wird die einfachste sein oder wird es nicht leistungsfähig genug sein, wenn es um über 80k Zeilen geht? Ich habe auch Schwierigkeiten, eine countIf-Funktion zu erstellen, die zwei zusätzliche Spalten verwendet. Ich habe es so gemacht. Zählen Sie die langen Hemden, wenn der Wert von B "grün" ist und der Wert von Spalte C "10" ist. Grundsätzlich würde ich gerne wissen, ob das eine richtige Lösung ist und wie die Funktion aussehen könnte.

+0

fügen Sie den Code, den Sie mit der Frage versucht haben. Anstatt die Formel zu erklären, füge die Formel hinzu, die du benutzt hast –

+0

Mein Versuch war so schlecht, ich dachte, es wäre besser, es nicht hinzuzufügen. – user3080315

Antwort

0

Da Sie 3 Bedingungen für Ihre Count haben, müssen Sie CountIfs Funktion (und nicht CountIf) verwenden.

Der folgende Code wird die Arbeit für die 3 Spalten tun Sie zur Verfügung gestellt haben, und das Beispiel in Ihrem Beitrag:

Dim CountIfsRes As Long 

CountIfsRes = WorksheetFunction.CountIfs(Range("A:A"), "=long", Range("B:B"), "=green", Range("C:C"), "=10") 

MsgBox CountIfsRes 
0

Die Antwort oben funktioniert, wenn Sie, wie viele lange grüne Hemden es wissen wollen, sind .

Wenn Sie mehrere Bedingungen haben, die Sie in einer Übersichtstabelle auffüllen möchten, können Sie diese Formel anpassen und die Formel in eine Tabelle einfügen.

=COUNTIFS(A:A,"long",B:B,"green",C:C,"10")