Hallo Excel-Forum
Es geht nicht weiter ...
Für eine Geldabrechnung, die im ersten Tabellenblatt nach Belegen notiert
wird und in drei Bereiche untergliedert ist, soll ein weiteres Tabellenblatt
die Werte in fünf Spalten nach Datum sortiert wieder ausdrucken.
Sicher nicht sehr elegant, aber so ist mein Lösungsversuch:
Die fünf Spalten einer Daten-Zeile verketten, um sie gemeinsam zu sortieren.
Als Trennzeichen dient das § um Leerstellen in Text-Teilen zu erhalten.
WENN(O4=0;0;VERKETTEN(O4;"§";P4;"§";Q4;"§";R4;"§";S4))
( Die fünf Spalten: Beleg, Bezeichnung, Datum, Bar ein, Bar aus )
Dann werden alle Daten nach oben aufgerückt und die Leer-Zeilen übersprungen.
WENN(ZEILE()>SUMME(N(Z$1:Z$400<>0));"";INDEX(Z$1:Z$400;KKLEINSTE
(WENN(Z$1:Z$400<>0;ZEILE($1:$400));ZEILE())))~f~
41572§0§Lohn & Gehalt - Oktober§26§0
Das ist das Ergebnis, alle Daten in einem.
Datum, Beleg, Bezeichnung, Bar ein, Bar aus
Eine Funktion, die das Paket wieder trennt, funktioniert bereits.
TEIL(LINKS("§"&$A1;FINDEN("##";WECHSELN("§"&$A1;"§";"##";
SPALTE(B1))&"##")-);FINDEN("##";WECHSELN("§"&$A1;"§";"##";
SPALTE(A1))&"##")+1;99)
Problem:
41572§0§Lohn & Gehalt - Oktober§26§0
wird diese Zeile sortiert, so ist die Reihe aufsteigend mit der zweiten Spalte
(im Beispiel die Null) und nicht von der ersten Spalte, dem Datum 41572..
Wie kann ich die 41572 und folgende per Formel sortieren lassen?
Ich müsste für das Sortieren die ersten fünf Zeichen festlegen können.
Mit dieser Formel wird sortiert:
WENN(ZEILE()>SUMME(N(Z$1:Z$400<>0));"";INDEX(Z$1:Z$400;
KKLEINSTE(WENN(Z$1:Z$400<>0;ZEILE($1:$400));ZEILE())))
Insgesamt gibt es vielleicht eine bessere Lösung.
Bis jetzt bin ich mit meinem Experiment zufrieden,
aber auch für neue Ansätze offen.
Danke für Euer Interesse
Bei Fragen - jederzeit
Oliver