Date: prev next · Thread: first prev next last
2018 Archives by date, by thread · List index


Am 25.08.2018 um 11:09 schrieb Micha Kuehn:
Hallo, liebe LO-Gemeinde,

ich habe eine Tabellen-Datei mit ca. 25 Tabellenblättern. Dort enthalten
sind die User eines Systems mit ihren Anmeldenamen. Ich habe also
Spalten wie Vorname, Nachname, Code (=Anmeldename).

Ich brauche diese Listen immer wieder mal sortiert nach Nachname,
Vorname. Und dann wieder brauche ich sie sortiert nach dem Code.

Jetzt muss ich immer wieder die entsprechenden Zeilen markieren, Daten,
Daten sortieren wählen, angeben, dass ich Spaltenüberschriften habe und
schließlich angeben, wonach sortiert werden soll.

Weil ich das immer wieder hin- und her brauche, also mal nach Namen, mal
nach Code sortiert, und weil ich viele Tabellen habe, ist das insgesamt
mühsam. Gibt es eine gute Möglichkeit, das abzukürzen?

Ich bin kein Makro-Fan und kenne mich da nicht aus, fürchte aber, dass
Makros evtl. eine Möglichkeit wären.

Wäre eine Möglichkeit; aber da du schrubst, du brächtest das immer
wieder, mit wehcslender 'Besetzung', wäre eine IMHO bessere Lösung, die
diversen Sortierungen permanent in einem zweiten Tabellenblatt (oder
notfalls auch hinter den Originaldaten) aufzulisten.

Du benötigst je Sortierfolge eine Hilfsspalte und die benötigte(n)
Ausgabespalte(n). Und Voraussetzung ist, dass du im /Voraus/ einen (für
alle Eventualitäten ausreichend großen) Datenbereich für die
Ausgangsdaten festlegst. Am besten markieren (farbig abgesetzt, oder
durch Umrandung o. ä.), damit dir auffällt, wenn du wider Erwarten den
Bereich doch sprengst.

Die Formel der Hilfsspalte zum Sortieren nach Spalte A (bei einem
angenommenen Bereich von A1:A100) lautet:

| =WENN(A1=""; ""; SUMMENPRODUKT((A$1:A$30 <
A1))-ANZAHLLEEREZELLEN($A$1:$A$30))

und die Ausgabespalte (angenommen, obige Hilfsspalte läge in Splate K)
lautet:

| =WENN(K1="";"";VERSCHIEBUNG($A$1;VERGLEICH(ZEILE()-1;$K$1:$K$100;0)-1;0))

Das Summenprodukt liefert im Prinzip nur die Anzahl der Werte zurück,
die kleiner sind (für Zahlen gebe es dafür die Funktion RANG, für Texte
muss man sich so behelfen).

Die Funktion ANZAHLLEEREZELLEN hab ich hinzugefügt, damit du auch
Leerzeilen mit verarbeiten kannst, und nicht nicht bei jeder kleinsten
Änderung den Datenbereich jedesmal neu anpassen musst.

Der VERGLEICH dient dazu, die Zeile im Ausgangsbereich zu ermitteln, in
der der Wert für die aktuelle Zeile steht, und VERSCHIEBUNG holt diesen
Wert in die aktuelle Zelle.

Und das WENN am Anfang dient dem Ausblenden von Leerzeilen.

Wolfgang
-- 
Durch Donald Trump ist mir endgültig klar geworden: Es ist
nicht der Turm von Pisa, der schief steht, es ist die Welt!


-- 
Liste abmelden mit E-Mail an: users+unsubscribe@de.libreoffice.org
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.