Nach 2 Spalten sortieren
Hallo,
ich habe in einer Tabelle u.a. 2 wichtige Spalten:
Gruppenname und Beginndatum
Ich möchte nach Gruppenname gruppieren, damit ich optisch sehe welche Gruppen zusammengehören, und diese zusammengehörenden Gruppen dann nach aufsteigend nach Beginndatum sortieren. Ich bekomme entweder nur das eine oder andere hin.
Gibt es da einen Trick?
Gruß
Thomas
12 Antworten
-
Hallo
Ja ein neues Formelfeld erstellen und damit die Sortierung machen.
-
Hi, habe ein Formelfeld (Berechnung) erstellt, aber was muss in der Formel drinstehen?
Gruß
Thomas -
Eigenlich, wenn du zuerst nach Beginndatum sortiertst und dann nach Gruppenname gruppierst, sollte das ganze ohne weiteres funktionieren.
-
Das dachte ich auch, aber die Reihenfolge der Beginndaten stimmt nicht. Einige stimmen (wahrscheinlich durch Zufall), andere sind total durcheinander.
-
In der Formel sollte stehen:
–––
'Gruppenname' + " " + format('Beginndatum',"YYYY/MM/DD")
–––Birger
-
Danke, aber trotzdem das gleiche Problem.
In der Ausgabe der Formel wird zwar Gruppenname Datum angezeigt aber trotzdem stimmt die Sortierung nicht.
Die Sortierung erfolgt nach dem Anfangsbuchstaben von Gruppenname
Egal ob ich das Formularfeld sortiere, gruppiere oder sortiere & gruppiere.
Kann es sein, daß man die Formel umdrehen muss, also sowas wie:
Beginn + Gruppenname -
Komisch. Leg eine Zusatzspalte als Funktion an. Die Formel:
---
let mySort := Gruppenname + format(Beginndatum, "YYMMDD");
cnt(select DEINETABELLE where Gruppenname + format(Beginndatum, "YYMMDD") < mySort) + 1---
Dann sortierst du nach diese Spalte aufteigend. So kriegst du alle deine Gruppen bei einander und nach Datum sortiert. Wenn das nicht funktioniert, dann entweder ist deine Tabelle anders aufgebaut als du erklärst oder wir verstehen deine Erklärung anders.
grüße
Leo
-
Hallo Leo,
danke für Deine Nachricht. Auch hier das gleiche Ergebnis. Alles sortiert sich scheinbar nach den Anfangsbuchstaben von Gruppenname. Ich habe jetzt folgendes Setup:
Spalte Formel mit dem Code 'Gruppenname' + " " + format('Beginn',"YYYY/MM/DD")
Anmerkung: Das Feld heisst BeginnUnd die Funktion mit dem Code von Dir.
Sortierung Aufsteigend, keine Gruppierung in den Spalten.
In der Ausgabe erscheinen in der Spalte Funktion fortlaufende Zahlen. Diese Aufzählung ist immerhin korrekt aufsteigend.
Ich habe hier mal einen Screenshot: https://mab.to/X0GPcv5sb
Gruß
Thomas -
wir reden hier aneinander vorbei. Deine Gruppen sind Familiennamen und die Beginndatums sind pro Gruppe immer gleich.
In diesem Fall sollte meine Formel anders aussehen:
---
let mySort := format(Beginn, "YYMMDD")+Gruppenname;
cnt(select DEINETABELLE where format(Beginndatum, "YYMMDD")+Gruppenname < mySort) + 1
---
Grüße
Leo
-
Hallo Leo,
danke für Deine Geduld, aber es ist immer noch fast das gleiche Ergebnis. Lediglich steht jetzt in der Spalte Funktion überall eine 0
Screenshot https://mab.to/uJUN8PgsV
Sortierung nach wie vor Name.
Irgendwas fehlt da noch.
Das Beginn Datum kann manchmal bei einer oder mehreren Gruppen gleich sein, aber es ist nicht bei jeder Gruppe so. Das ist auch der Grund, warum hier eine Trennung benötigt wird. Eine Gruppe kann aus einer oder mehreren Personen bestehen, die auch unterschiedliche Namen haben können. Deswegen auch der Gruppenname, der die gesamte Gruppe als einen Block identifiziert.
Gruß
Thomas -
Ok, letzter Versuch für die Sortierungsspalte:
---
let myNR := Nr;
let mySort := format(Beginn, "YYMMDD") + Gruppenname;
cnt((select DEINETABELLE)[format(Beginn, "YYMMDD") + Gruppenname < mySort]) + 1 + cnt((select DEINETABELLE)[format(Beginn, "YYMMDD") + Gruppenname = mySort and Nr < myNR])---
Leo
-
Hallo Leo,
es funktioniert :-).
Vielen herzlichen Dank für Deine Mühe und die Geduld. Und ein schönes sonniges Wochenende.
Gruß
Thomas
Content aside
- vor 6 JahrenZuletzt aktiv
- 12Antworten
- 4307Ansichten