Ich wende oft SORTIERENNACH und FILTER an und habe bisher alle Anvorderungen hinbekommen doch nun habe ich eine eigendlich einfache Formel die mir den Fehler #WERT liefert. Ich suche schon einen ganzen Tag nach der Stelle wo sich der Fehler eingeschlichen hat. Im Blatt Tabelle1 befinden sich die Vorgabedaten und im Blatt Tabell3 möchte ich davon eine Liste die nach dem Nachnahmen sortiert ist und mit FILTER nur bestimmte Zeilen aufgelistet werden. Die Formeln und weitere Hinweise in der Testdatei im Blatt Tabelle3.
Moin! In G8: =SORTIEREN(FILTER(INDIREKT($D$1);INDIREKT($D$4)<>"."))
SORTIERENNACH() hat hier nix zu suchen! Du willst nach Spalte 1 der Filtermatrix SORTIEREN(), was der Default ist. Du könntest es auch explizit angeben: =SORTIEREN(FILTER(INDIREKT($D$1);INDIREKT($D$4)<>".");1)
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
20.07.2025, 10:57 (Dieser Beitrag wurde zuletzt bearbeitet: 20.07.2025, 11:27 von EA1950.)
Hallo,
Zitat:Ich wende oft SORTIERENNACH und FILTER an und habe bisher alle Anforderungen hinbekommen. Doch nun habe ich eine eigentlich einfache Formel, die mir den Fehler #WERT liefert. Ich suche schon einen ganzen Tag nach der Stelle wo sich der Fehler eingeschlichen hat.
=SORTIERENNACH(FILTER(INDIREKT($D$1);INDIREKT($D$4)<>".");INDIREKT($D$4);1) 1) Du wendest im fett geschriebenen Formelteil eine Filterung auf INDIREKT($D$1) an. Somit hat dieser Bereich durch die Filterung weniger Zeilen als vor der Filterung. 2) Im orangenen Formelteil INDIREKT($D$4) wird der Bereich angegeben, der die Sortierreihenfolge für 1) enthält. 3) Aufgrund der Filterung in 1) enthält die Filterung weniger Zeilen als die Sortierreihenfolge in 2). 4) Der Funktion bleibt nichts anderes übrig, als eine Fehlermeldung (#WERT!) zurückzugeben.
Eine funktionierende Formelvariante wäre gewesen: =LET(f; FILTER(INDIREKT($D$1);INDIREKT($D$4)<>"."); SORTIERENNACH(f; SPALTENWAHL(f;1); 1)) weil sich hier durch SPALTENWAHL(f;4) der Sortierreihenfolgebereich auf die 1. Spalte der Filterung f bezieht. Allerdings ist dieser Bereich von INDIREKT($D$4) entkoppelt.
20.07.2025, 11:58 (Dieser Beitrag wurde zuletzt bearbeitet: 20.07.2025, 11:59 von RPP63.)
Moin! Ich sehe keinen (logischen) Unterschied zwischen SPALTENWAHL(Matrix;1) und INDEX(Matrix;;1) Allerdings sehe ich hier weiterhin keine Notwendigkeit, SORTIERENNACH() statt SORTIEREN() zu verwenden. Ich nehme doch auch nicht ohne Not SUMMEWENNS(), wenn SUMMEWENN() ausreicht.
Two Cents und Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:1 Nutzer sagt Danke an RPP63 für diesen Beitrag 28 • Jockel
Zitat:Ich nehme doch auch nicht ohne Not SUMMEWENNS(), wenn SUMMEWENN() ausreicht.
Da kenne ich andere Stimmen, die mich auch inzwischen überzeugt haben. Die Parameterreihenfolge von SUMMEWENNS ist schon logischer, weil erst der (eindeutige und einmalige) zu summierende Bereich angegeben wird. Selbst wenn es zunächst nur 1 Bedingung gibt, macht SUMMEWENNS das Selbe wie SUMMEWENN. Und wenn man dann doch noch mal ne Bedingung hinzufügen muss, ist es dann einfacher und schneller erledigt. Und die Performance sollte eigentlich identisch sein.
Moin Boris! Als ich es abgeschickt hatte, kam auch bei mir der leichte Zweifel, ob das jetzt ein passendes Beispiel war … Aber beim hiesigen Problem bleibe ich dabei: SORTIERENNACH() macht nur dann Sinn, wenn man nach mehreren Kriterien oder nach einem "fremden" Schlüssel (benutzdefinierte Liste; Zufall) sortieren will.
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)