Problem mit SORTIERENNACH und FILTER
#1
Hallo zusammen

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.


Angehängte Dateien
.xlsx   FÄ Namenlistetest.xlsx (Größe: 23,02 KB / Downloads: 11)
MfG Peter

WIN 10  /  MS 365
Antworten Top
#2
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)
Antworten Top
#3
Ich mache mal den Erklärbären, weil ich heute (bei der Schwüle) nicht mehr vor die Tür gehe:

Ich nutze SORTIEREN(), wenn dies nach lediglich einem Sortierkriterium erfolgen soll, welches sich in Klarform in der Sortiermatrix befindet.

SORTIERENNACH() hat 2 wichtige Varianten

• Ich will eine "echte" Zufallssortierung einer Matrix:
=SORTIERENNACH(Matrix;ZUFALLSMATRIX(ZEILEN(Matrix)))

• Ich will nach mehreren Kriterien in festgelegter Reihenfolge sortieren:
=SORTIERENNACH(Matrix;Matrix_Spalte3;1;Matrix_Spalte1;-1;Matrix_Spalte2;1)

Ich selbst benutze SORTIERENNACH() bei 2 Anwendungen

• Lottozahlen 6 aus 49 so:
=INDEX(SORTIERENNACH(SEQUENZ(49);ZUFALLSMATRIX(49));SEQUENZ(6))
(die man jetzt noch SORTIEREN() könnte)

• Sortieren von Geburtsdaten nach Geburtstag:
=SORTIERENNACH(Geburtsdatum_Vektor;TEXT(Geburtsdatum_Vektor;"MMTT"))
ABC
1GebDatGebTag
201.06.195610.01.1983
322.06.196119.01.1960
410.01.198312.02.1969
519.11.196918.02.1970
623.12.196801.06.1956
706.09.197022.06.1961
821.11.196806.09.1970
919.01.196019.11.1969
1012.02.196921.11.1968
1118.02.197023.12.1968

ZelleFormel
C2=SORTIERENNACH(A2:A11;TEXT(A2:A11;"MMTT"))
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:
  • Jockel
Antworten Top
#4
Hallo Ralf

Vielen Dank für Deine Hilfe. 
Da hat sich wohl mein Gehirn voll auf das SORTIERENNACH eingeklinkt und das einfache SORTIEREN nicht preisgegeben.
MfG Peter

WIN 10  /  MS 365
Antworten Top
#5
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.
Gruß Anton.

Windows 10 64bit
Office365 32bit
Antworten Top
#6
Hi,

da wäre wohl das angebracht:

Code:
=LET(xa;FILTER(INDIREKT($D$1);INDIREKT($D$4)<>".");SORTIERENNACH(xa;INDEX(xa;;1);1))
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#7
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:
  • Jockel
Antworten Top
#8
Hi,

es ging mir ja auch nur darum, zu zeigen, wie es mit SORTIERENNACH funktionieren könnte.

Spaltenwahl ist mehr zu schreiben als Index.
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
[-] Folgende(r) 1 Nutzer sagt Danke an BoskoBiati für diesen Beitrag:
  • Jockel
Antworten Top
#9
Hi Ralf,


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. Smile
Antworten Top
#10
Moin Boris!
Als ich es abgeschickt hatte, kam auch bei mir der leichte Zweifel, ob das jetzt ein passendes Beispiel war … Wink
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)
Antworten Top


Gehe zu:


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