Zählen Sie eindeutige Werte in Excel

8
___ qstnhdr ___ Zählen Sie eindeutige Werte in Excel ___ answer21563487 ___

JustinGs Funktion funktioniert sehr gut (und schnell), bis die Anzahl der eindeutigen Elemente 32.767 überschreitet, aufgrund einer Art von Limit in Excel.

Ich habe festgestellt, wenn Sie seinen Code ändern

%Vor%

und mach es als ...

%Vor%

Es wird dann mehr einzigartige Gegenstände behandeln.

    
___ answer17857333 ___

Hier ist eine VBA-Funktion, die für mich funktioniert.

Sie können es als Arbeitsblattfunktion , verweist auf einen Bereich, zB "= CountUnique (N8: O9)"

Es verarbeitet Text und numerische Werte und behandelt leere Zellen als einen Wert

Es muss nicht mit Array-Funktionen gearbeitet werden.

Für das Wörterbuchobjekt ist ein Verweis auf die Microsoft Scripting Library erforderlich.

%Vor%     
___ answer1682890 ___

Sie können auch einfach einen Filter verwenden, um vorübergehend eindeutige Werte anzuzeigen und die Filterung zählen Werte.

    
___ answer1676139 ___

Die Formel funktioniert für mich. Es gibt ein paar Dinge, die dazu führen könnten, dass dies nicht funktioniert. Zuerst müssen alle Zielzellen einen Wert in ihnen haben. Ein anderes Beispiel, wo dies möglicherweise nicht funktioniert, ist, wenn Sie eine Zelle mit dem Wert 31 und eine andere Zelle mit einem Textwert von "31" haben. Es wird diese als unterschiedliche Werte erkennen.

Du könntest das versuchen:

%Vor%

Dies ist eine Array Formel. Anstatt nur zu drücken, um es zu bestätigen, müssen Sie Strg + Shift + Enter drücken.

Was ist von:

Ссылка

    
___ answer29177191 ___

Nachdem ich das durchgelesen und dann weiter untersucht habe, habe ich eines, das besser für mich funktioniert als alles was ich hier sehe:

Array-Eingabe:
(Strg + Umschalt + Eingabetaste, und schließen Sie die geschweiften Klammern nicht ein)

%Vor%

Oder in VBA:

%Vor%

Es funktioniert sowohl für Zahlen als auch für Text, behandelt leere Zellen, behandelt Fehler in referenzierten Zellen und funktioniert in VBA. Es ist auch eine der kompaktesten Lösungen, die ich je gesehen habe. Wenn es in VBA verwendet wird, behandelt es anscheinend automatisch die Notwendigkeit, eine Matrixformel zu sein.

Beachten Sie, dass Fehler nur dadurch behandelt werden, dass sie in die Anzahl der Uniques aufgenommen werden. Zum Beispiel, wenn Sie zwei Zellen haben, die # DIV / 0 zurückgeben! und drei Zellen, die #VALUE! zurückgeben, würden diese 5 Zellen 2 zur endgültigen Zählung der eindeutigen Werte hinzufügen. Wenn Fehler vollständig ausgeschlossen werden sollen, müsste dies geändert werden.

In meinen Tests funktioniert dieser von Jacob oben nur für Zahlen, nicht für Text, und behandelt keine Fehler in referenzierten Zellen (gibt einen Fehler zurück, wenn eine der referenzierten Zellen einen Fehler zurückgibt):

%Vor%     
___ answer36083024 ___

Wenn jemand noch versucht, die JustinG-Dictionary-Methode zu verwenden, müssen Sie den Code leicht ändern, wenn Sie eine neuere Version von VBA verwenden.

Sie müssen auf "Microsoft Scripting Runtime" verweisen und die %code% -Begriffe wie folgt mit %code% voranstellen:

%Vor%     
___ answer37517579 ___

Dies könnte ein effizienterer Weg sein, mit einer großen Anzahl von Zeilen umzugehen. Dies verwendet den integrierten AdvancedFilter-Befehl, anstatt jede Zelle gleichzeitig durchlaufen zu müssen.

%Vor%     
___ tag123excel ___ Nur für Fragen zur Programmierung von Excel-Objekten oder -Dateien oder zur Entwicklung komplexer Formeln. Sie können das Excel-Tag mit VBA, VSTO, C #, VB.NET, PowerShell, OLE-Automatisierung und anderen programmierbezogenen Tags und Fragen kombinieren, falls zutreffend. Allgemeine Hilfe zu MS Excel für einzelne Arbeitsblattfunktionen ist bei Super User verfügbar. ___ answer1676193 ___
%Vor%

Ссылка

Sie können auch ein VBA-Makro schreiben (nicht sicher, ob Sie das wirklich wollen).

Etwas zum Effekt von (bei einer Tabellenkalkulation mit A1-A11 gefüllt und B1-B11 leer):

%Vor%     
___ tag123vba ___ Visual Basic für Applikationen (VBA) ist eine ereignisgesteuerte, objektorientierte Programmiersprache zum Schreiben von Makros, die für die gesamte Office-Suite und andere Anwendungen verwendet wird. VBA entspricht nicht VB.NET oder VBS; Wenn Sie in Visual Studio arbeiten, verwenden Sie [vb.net]. Wenn sich Ihre Frage speziell auf die Programmierung einer MS Office-Anwendung bezieht, verwenden Sie auch das entsprechende Tag: [Excel-VBA], [Zugriff-VBA], [Word-VBA], [Outlook-VBA] oder [Microsoft-Project-VBA] . ___ answer43473633 ___

Eine andere Möglichkeit, dies zu tun, ist dies:

%Vor%

Sie müssen nur die aktive Zelle in Zeile 1 der Spalte haben, die Sie zählen.

    
___ tag123excelformula ___ Dieses Tag steht für Microsoft Excel-Fragen, bei denen sich die Frage oder die Antworten speziell auf die Struktur, Syntax oder Ausgabe einer Excel-Formel beziehen. ___ answer1676160 ___

Versuchen Sie:

%code%

BEARBEITEN: Das obige wird mit leeren Einträgen in der Spalte

umgehen     
___
dayan 04.11.2009, 19:32
quelle

10 Antworten

6
%Vor%

Ссылка

Sie können auch ein VBA-Makro schreiben (nicht sicher, ob Sie das wirklich wollen).

Etwas zum Effekt von (bei einer Tabellenkalkulation mit A1-A11 gefüllt und B1-B11 leer):

%Vor%     
user113476 04.11.2009, 19:54
quelle
14

Hier ist eine VBA-Funktion, die für mich funktioniert.

Sie können es als Arbeitsblattfunktion , verweist auf einen Bereich, zB "= CountUnique (N8: O9)"

Es verarbeitet Text und numerische Werte und behandelt leere Zellen als einen Wert

Es muss nicht mit Array-Funktionen gearbeitet werden.

Für das Wörterbuchobjekt ist ein Verweis auf die Microsoft Scripting Library erforderlich.

%Vor%     
JustinG 25.07.2013 11:55
quelle
5

Versuchen Sie:

=SUM(IF(FREQUENCY(C2:C2080,C2:C2080)>0,1))

BEARBEITEN: Das obige wird mit leeren Einträgen in der Spalte

umgehen     
Jacob 04.11.2009 19:47
quelle
4

JustinGs Funktion funktioniert sehr gut (und schnell), bis die Anzahl der eindeutigen Elemente 32.767 überschreitet, aufgrund einer Art von Limit in Excel.

Ich habe festgestellt, wenn Sie seinen Code ändern

%Vor%

und mach es als ...

%Vor%

Es wird dann mehr einzigartige Gegenstände behandeln.

    
Jim D 04.02.2014 21:11
quelle
2

Sie können auch einfach einen Filter verwenden, um vorübergehend eindeutige Werte anzuzeigen und die Filterung zählen Werte.

    
Mathias 05.11.2009 19:14
quelle
2

Wenn jemand noch versucht, die JustinG-Dictionary-Methode zu verwenden, müssen Sie den Code leicht ändern, wenn Sie eine neuere Version von VBA verwenden.

Sie müssen auf "Microsoft Scripting Runtime" verweisen und die Dictionary -Begriffe wie folgt mit Scripting voranstellen:

%Vor%     
Jordan 18.03.2016 11:18
quelle
0

Die Formel funktioniert für mich. Es gibt ein paar Dinge, die dazu führen könnten, dass dies nicht funktioniert. Zuerst müssen alle Zielzellen einen Wert in ihnen haben. Ein anderes Beispiel, wo dies möglicherweise nicht funktioniert, ist, wenn Sie eine Zelle mit dem Wert 31 und eine andere Zelle mit einem Textwert von "31" haben. Es wird diese als unterschiedliche Werte erkennen.

Du könntest das versuchen:

%Vor%

Dies ist eine Array Formel. Anstatt nur zu drücken, um es zu bestätigen, müssen Sie Strg + Shift + Enter drücken.

Was ist von:

Ссылка

    
Dan 04.11.2009 19:45
quelle
0

Nachdem ich das durchgelesen und dann weiter untersucht habe, habe ich eines, das besser für mich funktioniert als alles was ich hier sehe:

Array-Eingabe:
(Strg + Umschalt + Eingabetaste, und schließen Sie die geschweiften Klammern nicht ein)

%Vor%

Oder in VBA:

%Vor%

Es funktioniert sowohl für Zahlen als auch für Text, behandelt leere Zellen, behandelt Fehler in referenzierten Zellen und funktioniert in VBA. Es ist auch eine der kompaktesten Lösungen, die ich je gesehen habe. Wenn es in VBA verwendet wird, behandelt es anscheinend automatisch die Notwendigkeit, eine Matrixformel zu sein.

Beachten Sie, dass Fehler nur dadurch behandelt werden, dass sie in die Anzahl der Uniques aufgenommen werden. Zum Beispiel, wenn Sie zwei Zellen haben, die # DIV / 0 zurückgeben! und drei Zellen, die #VALUE! zurückgeben, würden diese 5 Zellen 2 zur endgültigen Zählung der eindeutigen Werte hinzufügen. Wenn Fehler vollständig ausgeschlossen werden sollen, müsste dies geändert werden.

In meinen Tests funktioniert dieser von Jacob oben nur für Zahlen, nicht für Text, und behandelt keine Fehler in referenzierten Zellen (gibt einen Fehler zurück, wenn eine der referenzierten Zellen einen Fehler zurückgibt):

%Vor%     
Greg Lovern 20.03.2015 23:11
quelle
0

Dies könnte ein effizienterer Weg sein, mit einer großen Anzahl von Zeilen umzugehen. Dies verwendet den integrierten AdvancedFilter-Befehl, anstatt jede Zelle gleichzeitig durchlaufen zu müssen.

%Vor%     
Neil 30.05.2016 04:22
quelle
0

Eine andere Möglichkeit, dies zu tun, ist dies:

%Vor%

Sie müssen nur die aktive Zelle in Zeile 1 der Spalte haben, die Sie zählen.

    
Mike 18.04.2017 13:29
quelle

Tags und Links