0

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

null
    • Dominik_Eng
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Hallo

    Ja ein neues Formelfeld erstellen und damit die Sortierung machen.

    • CTRAVEL
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Hi, habe ein Formelfeld (Berechnung) erstellt, aber was muss in der Formel drinstehen?
    Gruß
    Thomas

    • Leonid_Semik
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Eigenlich, wenn du zuerst nach Beginndatum sortiertst und dann nach Gruppenname gruppierst, sollte das ganze ohne weiteres funktionieren.

    • CTRAVEL
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Das dachte ich auch, aber die Reihenfolge der Beginndaten stimmt nicht. Einige stimmen (wahrscheinlich durch Zufall), andere sind total durcheinander.

    • Support
    • vor 6 Jahren
    • Gemeldet - anzeigen

    In der Formel sollte stehen:

    –––
    'Gruppenname' + " " + format('Beginndatum',"YYYY/MM/DD")
    –––

    Birger

    • CTRAVEL
    • vor 6 Jahren
    • Gemeldet - anzeigen

    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

    • Leonid_Semik
    • vor 6 Jahren
    • Gemeldet - anzeigen

    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

    • CTRAVEL
    • vor 6 Jahren
    • Gemeldet - anzeigen

    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 Beginn

    Und 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

    • Leonid_Semik
    • vor 6 Jahren
    • Gemeldet - anzeigen

    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

    • CTRAVEL
    • vor 6 Jahren
    • Gemeldet - anzeigen

    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

    • Leonid_Semik
    • vor 6 Jahren
    • Gemeldet - anzeigen

    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

    • CTRAVEL
    • vor 6 Jahren
    • Gemeldet - anzeigen

    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