Wie kann ich bei einer Excelauswertung gleiche Werte überspringen?
Folgendes Problem:
Ich habe eine Top10 Tabelle aus einer 233Zeilen langen Tabelle erstellt. Diese ist in Form eines Rankings aufgebaut. Die Tabelle Funktioniert folgendermaßen: Die 10 Größten Werte aus der Referenztabelle werden mit der Funktion KGrösste herausgenommen. Danach mit den Funktionen Index und Vergleich weitere Eigenschaften wie Name dazugeschrieben.
ICh habe nun das Problem, dass wenn 2 Werte gleich sind, wird immer nur der Erste genommen. Also Wenn in der RefenzenTabelle in Zeile 10 der Wert 25 steht und in Zeile 20 der Wert 25 steht, greifen in der Top 10 die INdex/VergleichsFunktion immer nur auf die weiteren Eigenschaften der Zeile 10 zu.
Was muss ich also in die Index/Vegleich Funktion einbauen, dass eine bereits gewählte Zeile nicht mehr ausgelesen wird?
Formel: INDEX(Rb!$Q$9:$Q$295;VERGLEICH(Da!G5;Rb!$R$9:$R$295;0);1)
Vielen Dank schon mal im Voraus!
2 Antworten
Ich denke "der" hier passt besser:
Ich hab dein Problem gut nachvollziehen können, bis zu dem Zeitpunkt, als du die tatsächliche Frage gestellt hast. Jetzt komm ich doch nicht mehr so ganz mit...
Also in deinem Beispiel nimmt er für eine "Top10"-Sortierung im Falle eines identischen Werts immer den ersten, den er findet ("der obere"). Was möchtest du denn stattdessen? Und was meinst du damit, dass eine Zeile nicht mehrmals ausgelesen werden soll?
Also simples Beispiel:
A1: 1 B1: Apfel
A2: 8 B2: Banane
A3: 5 B3: Kirsche
A4: 2 B4: Erdbeere
A5: 5 B5: Traube
A6: 3 B6: Birne
Jetzt möchtest du von den Top3 Werten die Obstsorte erfahren. Möchtest du jetzt:
Banane, Kirsche, Birne
oder
Banane, Kirsche, Traube?
Da hast Du tatsächlich ein Beispiel gewählt, wo es unsinnig wäre, das 3-grösste auszulassen. Mir fällt aber auf die Schnelle auch kein gegenteiliges Beispiel ein, ich weiß nur, dass dieses Problem auch bei mir schon aufgetreten ist!
Danke für deine Antwort!
Also wenn ich jetzt auf Top 3 mit deinem Beispiel das herunterbreche...Würde ich folgendes Ergebnis haben wollen:
Rang1: Wert 8 - Banane
Rang2: Wert 5 - Kirsche
Rang3: Wert 5 - Traube
(Rang 2 und 3 sind gleichwertig, werden einfach nach ihrer Reihenfolge in der DB gereiht)
mit meinem Problem, ergibt sich jedoch:
Rang 1: Wert 8 - Banane
Rang 2: Wert 5 - Kirsche
Rang 3: Wert 5 - Kirsche
Hoffe das es nun verständlicher ist. Vielen Dank auf jeden Fall!
Gut, nun habe ich dein Problem komplett verstanden. Und bin fasziniert davon, dass mir einfach keine gute Lösung einfallen will.
Das Problem ist, wie du schon sagst, nicht kgrößte. Sonst schreibst du einfach
=SVERWEIS(KGRÖSSTE($A$1:$A$6;1);$A$1:$B$6;2;FALSCH)
und gut is. Aber SVERWEIS erhält von Kgrößte zweimal die gleiche Zahl und gibt deshalb auch zweimal den gleichen Eintrag zurück (Kirsche). Auch ein Trick mit "Adresse" und "Vergleich" hat nicht funktioniert. Ich scheitere immer am gleichen Prinzip: Kgrößte gibt eine Zahl zurück und diese Zahl hat keine eindeutige Referenz. Es bräuchte also eine Funktion, die statt der Zahl selbst, direkt deren Adresse angibt (ohne erst nachher nach ihr zu suchen).
So eine Funktion habe ich leider bisher nicht gefunden. Sollte mir ein Geistesblitz kommen, dann schreib ich nochmal. VBA würde natürlich gehen.
das Problem ist, es funktioniert nur, wenn man in den 233 zeilen 233 verschieden Werte hat. Bzw. nur, wenn die 10 höchsten werte 10 verschiedene sind.
Ich habe zusätzlich in der Tabelle zu jedem Wert noch in der selben Zeile andere Eigenschaften stehen. wie den Namen des Wertes, eine Beschreibung usw.
Wenn ich jetzt KGrösste habe, und die höchsten zwei Werte richtig mit der Höhe von 25 ausgelesen werden, dann fügt er aber zwei mal den Namen und die Beschreibung dessen Wertes ein, der in der Tabelle zuerst chronologisch ausgelesen wird.
Ich benötige also eine Funktion in dem Index/Vergleich, die bei mehrfach Nennung eines Wertes (also im Beispiel 25), dann die vorherig gewählte/genannte Zeile ignoriert und überspringt, damit nicht zwei mal die gleichen Eigenschaften genannt werden.
ist es nun verständlicher?
Danke auf jeden Fall für die Bemühungen!