Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Spalte nach Häufigkeit sortieren - INDIREKT zu ineffizient?
#1
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!
Antworten Top
#2
(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...
Gruß Jörg
ich muss mich erst wieder ganz langsam heran robben. Also bitte ich um Nachsicht

"Wer immer tut, was er schon kann, bleibt immer das, was er schon ist." - Henry Ford
Antworten Top
#3
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
Antworten Top
#4
Hallo, das kann ich nicht sagen, ich kenne deine Datei ja nicht... :20:
Gruß Jörg
ich muss mich erst wieder ganz langsam heran robben. Also bitte ich um Nachsicht

"Wer immer tut, was er schon kann, bleibt immer das, was er schon ist." - Henry Ford
Antworten Top
#5
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
Antworten Top
#6
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...
Gruß Jörg
ich muss mich erst wieder ganz langsam heran robben. Also bitte ich um Nachsicht

"Wer immer tut, was er schon kann, bleibt immer das, was er schon ist." - Henry Ford
Antworten Top
#7
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!


Angehängte Dateien
.xls   beispieltabelle - Kopie.xls (Größe: 27 KB / Downloads: 8)
Antworten Top
#8
Hallo

Ich habe mal für dich gesucht.
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Antworten Top
#9
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.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#10
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.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste