ZÄHLENWENN() in der 'For' - Schleife
Ich habe eine Spalte mit fast 100k und versuche zu bestimmen, wie viel mal ein Wert Auftritt, der wiederholt in dieser Spalte. Ich kann es tun, Zeile für Zeile aktuell, aber das ist einfache als ein Programmierer, durch so etwas wie =ZÄHLENWENN(D:D,D2). Doch, dass gibt nur D2 Spiele in Spalte D.
Muss ich Durchlaufen alle Werte von D Rückgabe ZÄHLENWENN, daher enthüllt der Wiederholungen Werte in der Spalte. Kann ich Duplikate entfernen später! Also ich habe ein dev. Taste ein basic-sub-oder-Funktion (Mann, das ist neu für mich) und etwas entlang der Linien von den grundlegenden for-Schleife immer. Gerade erst gefangen auf, wie die Umsetzung der ZÄHLENWENN() auf, um die Schleife richtig.
Momentan bin ich auf der Suche an:
Sub doloop()
Dim i As Integer
i = 1
Do While i < D.Length
Cells(i, 8).Value =CountIf(D:D,D[i])
i = i + 1
Loop
End Sub
Dass der code falsch ist offensichtlich, aber es ist, wo ich bin und kann Hilfe für alle, die mehr vertraut mit anderen Sprachen.
- Warum nicht einfach füllen Sie Ihre ZÄHLENWENN Formel? Es dauert nur ein Doppelklick.
- Möchten Sie vielleicht, dies zu erforschen, wenn Sie die Formel eingefügt, die für einige Grund: link
- RORY, du hast es einfach genug für mich! Sorry für diejenigen, die verbrachte Zeit, um code aus einer Lösung... ich sah so etwas wie dieser, ich dachte die Sprache wäre ein bisschen mehr intuitiv. SO, im Nachhinein Excel ist intuitiv in design zu erhöhen, die zählen, wenn Sie zur nächsten Zeile, wenn ich die zählen wenn-Funktion, um mehrere Zeilen in einer Spalte. Also =ZÄHLENWENN(D:D,D2), nachdem die Steuerung eingegeben, ich bin auf dem mac, für mehrere Zeilen würde itterate die D2-D3-D4-D5 und so weiter. PROST!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Anwendung.WorksheetFunction.ZÄHLENWENN() in der Schleife.
Sind Sie glaube ich zu schreiben versucht, den Wert der Zelle, das ist das, was die oben genannten nicht. FYI, wenn Sie wollen, um eine Formel in die Zelle, hier ist, wie das geschehen ist. Verwenden Sie dies anstelle von
WS.Range("H" & lRow).Value = d
Klingt wie Sie vielleicht wollen, verwenden von Tabellen in Excel und Kapital auf Ihre Funktionen wie Filterung und Gleichung Autom. Sie könnten auch interessiert sein in der Verwendung eines PivotTable zu tun etwas sehr ähnlich zu dem, was Sie beschreiben.
Wenn Sie wirklich wollen, zu gehen über diese programmatischen Weg, ich glaube, die Lösung Matt gibt Antworten auf Ihre Frage, wie Sie dies mit ZÄHLENWENN. Es gibt einen großen Nachteil, um mit ZÄHLENWENN, wenn, in, dass es nicht sehr rechnerisch effizient ist. Ich glaube nicht, dass der code Matt gepostet wird, wirklich praktisch für die Verarbeitung der 100K Zeilen erwähnt in den OP (Anwendung.ScreenUpdating = false würde einigen helfen). Hier ist eine alternative Methode, die viel effizienter, aber weniger intuitiv zu bedienen, so müssen Sie entscheiden, was Suiten Ihre Bedürfnisse und das, was Sie fühlen Sie vereinbar mit.
Können Sie auch ändern, dies umfasst die Entfernung der Wiederholungen, die Sie erwähnt.