Guten Tag zusammen,
ich habe zwar schon die SuFu genutzt da ich dachte, diese Frage sei bestimmt schon etliche Male gestellt worden, nur leider habe ich keine Antworten gefunden außer "Nutze doch die integrierte Sortier-Funktion". Leider ist es für mich notwendig, das Ganze mit Formeln zu erledigen.
Hier mein Problem: Ich möchte aus einer Liste mit n Datensäten eine fortlaufende Rang-ID erstellen, abhängig von mehreren Kriterien.
Erfundenes Beispiel: Autos. Die Kriterien (jeweils binär, also ist vorhanden oder nicht):
1. Preis >10.000€ / < 10.000€
2. Türen 5 / 3
3. Schaltung manuell / Automatic
Nach dieser Reihenfolge soll auch sortiert werden. D.h. zuerst alle Einträge Preis > 10.000€ & Türen 5 & Schaltung manuell, dann alle >10.000€ & Türen 5 & Schaltung automatic, dann das Ganze mit 3 Türen und dann das Ganze mit Preis < 10.000€.
Ich habe bisher leider keine andere Möglichkeit gefunden, als mit 6 Hilfsspalten zu arbeiten und in jeder Spalte die beschriebenen Bedingungen abzufragen.
Das sieht dann in Etwa so aus:
Hilfsspalte D:
Wenn(UND($A1>10000;$B1=5;$C1="manuell");MAX($D$1:$D1)+1;0)
In Hilfsspalte E erfrage ich dieselben Bedigungen außer $C1="automatic" und addiere zum Maximum von der gesamten Hilfsspalte D das Maximum der bisherigen Hilfsspalte E.
So fahre ich für alle 6 Hilfsspalten fort und habe nachher keine doppelten IDs, sondern eben jene die aufeinander aufbauen.
Problem: Ich habe mehr als nur diese 3 Kriterien (insgesamt sind es 26 Hilfsspalten) und mein Datensätze sind im 5-stelligen Bereich. Das sorgt mit dieser Methode für eine sehr langsam arbeitende Tabelle mit merkbarem Lagging bei Bearbeitung der Datensätze und abnorm langer Ladezeit beim Öffnen des Datenblattes.
Kennt denn nicht jemand zufälligerweise eine Matrixfunktion oder eine elegantere Methode, wie ich an Hilfsspalten und/oder an Rechenzeit einsparen kann? Sicher habe ich nur irgendwo einen Denkfehler und es ist gar nicht nötig, so viel miteinander kreuzzurechnen.
EDIT:
VBA ist leider keine Möglichkeit.
Vielen Dank bereits vorab für Eure Hilfe.
Grüße
Binary91
ich habe zwar schon die SuFu genutzt da ich dachte, diese Frage sei bestimmt schon etliche Male gestellt worden, nur leider habe ich keine Antworten gefunden außer "Nutze doch die integrierte Sortier-Funktion". Leider ist es für mich notwendig, das Ganze mit Formeln zu erledigen.
Hier mein Problem: Ich möchte aus einer Liste mit n Datensäten eine fortlaufende Rang-ID erstellen, abhängig von mehreren Kriterien.
Erfundenes Beispiel: Autos. Die Kriterien (jeweils binär, also ist vorhanden oder nicht):
1. Preis >10.000€ / < 10.000€
2. Türen 5 / 3
3. Schaltung manuell / Automatic
Nach dieser Reihenfolge soll auch sortiert werden. D.h. zuerst alle Einträge Preis > 10.000€ & Türen 5 & Schaltung manuell, dann alle >10.000€ & Türen 5 & Schaltung automatic, dann das Ganze mit 3 Türen und dann das Ganze mit Preis < 10.000€.
Ich habe bisher leider keine andere Möglichkeit gefunden, als mit 6 Hilfsspalten zu arbeiten und in jeder Spalte die beschriebenen Bedingungen abzufragen.
Das sieht dann in Etwa so aus:
Hilfsspalte D:
Wenn(UND($A1>10000;$B1=5;$C1="manuell");MAX($D$1:$D1)+1;0)
In Hilfsspalte E erfrage ich dieselben Bedigungen außer $C1="automatic" und addiere zum Maximum von der gesamten Hilfsspalte D das Maximum der bisherigen Hilfsspalte E.
So fahre ich für alle 6 Hilfsspalten fort und habe nachher keine doppelten IDs, sondern eben jene die aufeinander aufbauen.
Problem: Ich habe mehr als nur diese 3 Kriterien (insgesamt sind es 26 Hilfsspalten) und mein Datensätze sind im 5-stelligen Bereich. Das sorgt mit dieser Methode für eine sehr langsam arbeitende Tabelle mit merkbarem Lagging bei Bearbeitung der Datensätze und abnorm langer Ladezeit beim Öffnen des Datenblattes.
Kennt denn nicht jemand zufälligerweise eine Matrixfunktion oder eine elegantere Methode, wie ich an Hilfsspalten und/oder an Rechenzeit einsparen kann? Sicher habe ich nur irgendwo einen Denkfehler und es ist gar nicht nötig, so viel miteinander kreuzzurechnen.
EDIT:
VBA ist leider keine Möglichkeit.
Vielen Dank bereits vorab für Eure Hilfe.
Grüße
Binary91