Clever-Excel-Forum

Normale Version: Spalte nach Häufigkeit sortieren - INDIREKT zu ineffizient?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo liebes Forum,

bin leider kein Excel Experte, deshalb tu ich mich etwas schwer und hoffe auf Eure Hilfe.

Ich habe eine Liste mit Produkten denen jeweils ein Alter zugeordnet ist.
Zunächst setze ich Filter, um z.B. nur die Produkte anzuzeigen, die dem alter 0-20 Jahren zugeordnet sind.
Jetzt möchte ich wissen, welche Produkte am häufigsten für diese Altersgruppe auftreten. Daher wollte ich diese Spalte mit Produktnamen nach der Häufigkeit der vorkommenden Namen sortieren.
Da ja vieles ausgeblendet ist und ich nicht weiss wie das ohne TEILERGEBNIS zu lösen ist, habe ich online folgende Formel gefunden:

=SUMMENPRODUKT(TEILERGEBNIS(3;INDIREKT("N"&ZEILE(N:N)))*(N:N=N1))

Das zeigt mir dann in einer Reihe den Produktnamen und die dazugehörige Häufigkeit an. Das funktioniert in einer kleinen Liste super.
Ich habe jedoch über 64.000 Reihen... und das schafft Excel / mein Rechner einfach nicht, es dauert ewig.

Liegt das an INDIREKT? Habe von performance Problemen gelesen.
Kann ich die umgehen, oder habt Ihr vielleicht eine andere Möglichkeit, wie mein Problem anzugehen ist?
Im Prinzip möchte ich ja nur wissen, welche Produktnamen am häufigsten vorkommen (ca. die Top 10).

Vielen Dank schonmal!
(09.11.2016, 14:40)ak7 schrieb: [ -> ]Hallo liebes Forum,

...

=SUMMENPRODUKT(TEILERGEBNIS(3;INDIREKT("N"&ZEILE(N:N)))*(N:N=N1))

Das zeigt mir dann in einer Reihe den Produktnamen und die dazugehörige Häufigkeit an. Das funktioniert in einer kleinen Liste super.
Ich habe jedoch über 64.000 Reihen... und das schafft Excel / mein Rechner einfach nicht, es dauert ewig.

Liegt das an INDIREKT? Habe von performance Problemen gelesen.
...
Vielen Dank schonmal!

Hallo, ja das liegt zum Einen an INDIREKT() --> http://www.online-excel.de/excel/singsel.php?f=170 und zum Anderen daran, dass du eine komplette Spalte beackern lassen willst...
Hi

danke für die Antwort.
Kann ich die Rechnung auch ohne Volatile Funktionen machen?
Bzw. wie sollte man das ganze denn besser lösen?

Danke
Hallo, das kann ich nicht sagen, ich kenne deine Datei ja nicht... :20:
Hi

ich kann die Datei leider nicht veröffentlichen oder weitergeben.
Kann ich Dir vielleicht anders vermitteln was ich bräuchte?

Nochmal zur Erklärung, ich will einfach wissen welche Namen in einer Liste von Produktnamen am häufigsten vorkommen.
Ich könnte auch mit ZÄHLENWENN arbeiten um die Häufigkeit der Namen zu finden, aber das klappt nicht wenn ich Elemente ausblende. Und das ist notwendig, da ich eine Einschränkung über das Alter machen muss.

Danke
Du könntest eine Beispieldatei posten mit Dummydaten, das man sieht was du vorhast und wo was berechnet werden soll. Du hattest ja von einer kleinen Tabelle geschrieben, wo das problemlos läuft...
Hab eine Datei dafür erstellt und angehängt.

die Formel
=SUMMENPRODUKT(TEILERGEBNIS(3;INDIREKT("A"&ZEILE(A:A)))*(A:A=A3))
funktioniert auch wenn ich beim Alter eine Einschränkung vornehme (z.B. den Filter auf <18 setze),
kann ich aber bei meiner original Liste mit 64.000 Zeilen nicht anwenden.

=WENN(ZÄHLENWENN($A$3:A3;A3)=1;ZÄHLENWENN(A:A;A3);"")
funktioniert natürlich nicht wenn ich eine Einschränkung vornehmen, weil hier nicht mit TEILERGEBNIS gearbeitet wurde.

Danke für Deine Hilfe!
Hallo

Ich habe mal für dich gesucht.
Hallöchen,

ein Problem ist ja, dass Du in 64.000 Zellen auch 64.000 Formeln hast. Zu Auszählen wie Du es willst, macht das aber doch nicht unbedingt Sinn. Wenn Du gefiltert 256x einen Namen siehst und 138x einen anderen und dazu genau so oft das gleiche Ergebnis, wäre doch zu überlegen, ob Du Dir nicht an anderer Stelle eine Liste der Namen erstellst und nur dort die Formel anwendest. Die Liste könntest Du per Formel (siehe excelformeln.de) oder über das entsprechende Excel-Menü erstellen.
Eventuell könnte man da auch ein Makro zur Unterstützung bei der Erstellung dieser Liste programmieren.
Danke für die Antworten.
Nachdem ich noch einige Zeit rumgesucht habe, bin ich zu folgender Lösung gekommen:
Zuerst mit TEILERGEBNIS über meine Namensliste "überprüfen" ob etwas ausgeblendet wurde oder nicht.
Dann erstelle ich anhand dieser Spalte eine neue mit den Namen derer, die nicht ausgeblendet sind.
Zu guter Letzt zähle ich dann die Häufigkeiten von diesen Namen.

Bin gerade dabei zu testen obs auch wirklich funktioniert und die Ergebnisse stimmen.
Seiten: 1 2