Sortieren mit untergeordneten Spalten
#11
Zitat:... und beliebig sortieren (Auf Blatt 1).

Nein, da die Tabelle von EA1950 per Formel erzeugt wird.
Antworten Top
#12
Hallo @ws-53, @Karlos_K

Zitat:... und beliebig sortieren (Auf Blatt 1)

Nein, da die Tabelle von EA1950 per Formel erzeugt wird.

die sortierte Tabelle wird zwar per Formel erzeugt, aber die Vorgangsweise dabei ist folgende:
1) der zu sortierende Bereich wird in eine Variable eingelesen (Bereich)
2) die Leerzellen der 1. Spalte dieses Bereiches werden mit den davor angeführten Gemeindenamen aufgefüllt (SCAN-Funktion)
3) der so vervollständigte Bereich wird mit der SORTIEREN(Bereich; Sortierspalte; Sortierrichtung)-Funktion sortiert
4) aus der 1. Spalte der so sortierten Matrix werden wieder diejenigen Gemeindenamen-Doppler entfernt, die unmittelbar übereinander stehen.

Das heißt, die Sortierung ist nur durch die Verwendung der SORTIEREN-Funktion etwas eingeschränkt - die SORTIERENNACH-Funktion würde ein Sortieren nach mehreren Spalten ermöglichen, was mir angesichts von nur 2-3 echten Datenspalten zu aufwändig erschien.

Aus Punkt 4) können sich natürlich unterschiedliche Namensentfernungen ergeben aufgrund der sortierten Zeilen (ob nach der 1., 2., 3. oder 4. Spalte auf/absteigend sortiert wird).
Gruß Anton.

Windows 11 64bit
Microsoft365 Insider 64bit
Antworten Top
#13
Hallo Miteinander,
 
ich hatte gestern Abend das schon so weit, das Spalte A aufsteigend und Spalte B Blockweise aufsteigend sortiert wird und das Konstrukt dynamisch arbeitet.
 
Was ich auch bis jetzt nicht hinbekommen habe, ist Blockweises Sortieren in C aufsteigend, wenn Datumszahlen mehr als eins im Block vorhanden ist, dies im Block zu sortierten.
 
Ich vermute mal das ich mich da etwas verrannt habe. Vielleicht hat da jemand eine Idee
 
hier die Formel eingerückt:
Code:
=LET(xA;Tabelle1!A1:D1;
    xB;MAX(WENN(Tabelle1!A:D<>"";ZEILE(Tabelle1!A:D)));
    xC;Tabelle1!A2:INDEX(Tabelle1!D:D;xB);
    xD;INDEX(xC;;1);
    xE;WENN(
        xD<>"";
        xD;
        XVERWEIS(ZEILE(xD);
            FILTER(ZEILE(xD);xD<>"");
            FILTER(xD;xD<>"");"";-1));
    xF;SORTIERENNACH(
        xC;
        xE;1;
        WENN(xD<>"";0;1);1;
        INDEX(xC;;2);1;
        INDEX(xC;;3);1
    );
   VSTAPELN(xA;WENN(xF=0;"";xF))
)
Vielleicht hat da jemand noch eine Idee dazu.

Gruß Uwe
Antworten Top
#14
Hallo,

Zitat:Vielleicht hat da jemand eine Idee

ja, siehe unter #4.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#15
@Klaus-Dieter,

das ist denke ich mal hier jeden klar, der in solchen Foren unterwegs ist.

Aber du nutzt O365 und kannst ja mal selbst dran rum schrauben in #13, so was wie (die letzte fehlende Bedingung: Wenn im Block die Anzahl Datumswerte >1 dann diesen Block in Spalte Datum sortieren) virtuell mit den neuen Technologien zu lösen.

Gruß Uwe
Antworten Top
#16
Hi Uwe,

ich bin da voll bei Klaus-Dieter. Wieso sollte ich mir Monsterformeln ausdenken, wenn man durch eine vernünftige Datenhaltung ohne eine einzige Formel auskommen kann?
Ich kann ja verstehen, dass es Spaß macht, solche Rätsel zu lösen. Habe ich früher selbst gerne gemacht. Und ich bin echt immer wieder von deinen Formeln beeindruckt. Echt toll was du da hinbekommst. Und es ist eine Freude, die nachzuvollziehen. Aber mittlerweile suche ich lieber den Weg des geringsten Widerstands. Und der ist eindeutig in #4 aufgezeigt worden.
Gruß,
Helmut

Win11 - Office365 / MacOS - Office365
[-] Folgende(r) 1 Nutzer sagt Danke an HKindler für diesen Beitrag:
  • Klaus-Dieter
Antworten Top
#17
Hallo Excel-PQ-Fan's

hier mal eine Power Query Lösung.

Gruß von Luschi
aus klein-Paris


Angehängte Dateien
.xlsx   Karlos_K_Spezialsortierung.xlsx (Größe: 26,35 KB / Downloads: 8)
Antworten Top
#18
Hallo,

die noch offene Sortierung nach Datum im Block hatte mir keine Ruhe gelassen. Ich dachte ich hatte das schon mal so, aber fand dann den Fehler nicht.
hier nun die Lösung:
Code:
=LET(
  xA;Tabelle1!A1:D1;
  xB;MAX(WENN(Tabelle1!A:D<>"";ZEILE(Tabelle1!A:D)));
  xC;Tabelle1!A2:INDEX(Tabelle1!D:D;xB);
  xD;INDEX(xC;;1);
  xE;WENN(xD<>""; xD;XVERWEIS(ZEILE(xD);FILTER(ZEILE(xD);xD<>"");FILTER(xD;xD<>"");"";-1));
  xF;WENN(A1;WENN(xD<>"";0;WENN(ISTZAHL(INDEX(xC;;3));INDEX(xC;;3);DATUM(9999;12;31)));WENN(xD<>""; 0; 1));
  xG;SORTIERENNACH(xC;xE;1;xF;1;INDEX(xC;;2);1;INDEX(xC;;3);1);
  VSTAPELN(xA; WENN(xG=0;"";xG))
)

.xlsx   Sortieren nach SpaltenBlöcke.xlsx (Größe: 15,65 KB / Downloads: 6)

Gruß Uwe
Antworten Top


Gehe zu:


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