Calc: Datensätze in verschiedener Sortierung mehrfach darstellen

Hallo,

wenn ich ein Tabelle mit Daten anlege, hier Deutsche und Englische Begriffe alphabetisch sortiert nach den deutschen Begriffen,
und mir auf einem zweiten Tabellenblatt die selbe Tabelle via “=$Tabellenblatt1.Zelle:Zelle” anzeigen lasse, sowie nun die Sortierung im zweiten Tabellenblatt ändere sodass diese bspw. alphabetisch aufsteigend der englischen Begriffe ist,
werden nur teilweise korrekte Angaben geleistet (korrekt die ganzen Zeilen belassen), jedoch viele Fehler (#VALUE!) angezeigt bei welchen ich vermute verschiedene Spalten der selben Zeilen werden gemischt (-> Tabellenblatt 1 hat ca. 300 Einträge mit Sortierung Ascending Spalte B, Tabellenblatt 2 hat aber sobald Ascending Spalte C gewählt wird 700 Zeilen mit Fehlern, also mehr als es eigtl. Einträge gäbe).

Wie kann dies korrekt dargestellt werden? Ich hatte überlegt ob und wie ich es bspw. mit " " oder ! oder ähnlichen Operatoren “fixieren” kann sodass eine Zeile in sich unverändert bleibt.

Ziel ist es, Stichwortverzeichnise zu erhalten in beiden Sortierungen, mit dem Wunsch offensichtlich nur einen Datensatz zu Pflegen.

Die Beispieldatei bei welcher es zu Problemen kommt:
Stichwortverzeichnis_Fibel.ods (52.4 KB)

Beste Grüße

Du benötigst genau zwei Mausklicks um die »original-Daten« jeweils nach deutschen oder nach englischen Bezeichnungen zu sortieren! wieso experimentierst du mit einer per Formel verlinkten extra-Tabelle?

Dein Kommentar nutzt niemanden etwas. Es ist unerheblich wieviel Arbeit es braucht eine andere Sortierung anzeigen zu lassen wenn es um die Besprechung einer Funktion geht welche Grundlegend ist.
In meinem konkreten Fall stand sogar schon der Grund in meinem initialen Post: Es sollen Stichwortverzeichnisse in zwei Sortierungen für die Einbindung in ein Buch erstellt werden. Damit diese nicht mit manueller Copy/Paste Arbeit verbunden sind erfolgt eine Automatisierung indem in eine ODT Datei zwei Tabellen eingefügt werden, wodurch die ODT Anzeigen sich einfach aktualisieren, und wiederrum beide Sortierungen aus nur einem Datensatz stammen.
Wobei das nur der erste Schritt ist - sobald ich das ganze zu LaTeX umarbeite muss ich mal sehen wie einfach es sich dort noch automatisieren lässt. Ggf. via einem kleinen Python Skript aus einer csv Datei. Mal sehen.

Wirf die Daten in eine “Mini-Datenbank” mit 2 Abfragen fur die Sortierungen. Ziehe die Abfragen in 2 Tabellenblätter. Aktualisieren geht über das Menü Daten → Bereich aktualisieren. Einziges Problem ist: Es sind 2 Datenbereiche, die einzeln aktualisiert werden mussen (Makro sinnvoll?), aber dafür regelt sich die Bereichsgröße automatisch.

Es scheint als wäre die (von LibreOffice bei der Markierung mehrer Zellen automatisch eingefügte) Syntax von “=$Tabellenblatt1.Zelle:Zelle” das Problem. Bspw. “=$Deutsch.B10:E1000”

Sobald ich “=$Tabellenblatt1.Zelle” verwende, klappt es auch mit einer anschließend anderen Sortierung.

Lediglich das er mir Zellen ohne Inhalt anschließend als Zelle mit Inhalt 0 darstellt wäre noch ein kleines Hinderniss, was ich aktuell (in diesem Fall) zumindest durch die Filterung (Anzeige 0 deaktiviert) noch wegbekomme.
Wenn jemand eine sauberere Lösung hat, damit auch Zellen mit tatsächlichem Inhalt 0 nicht durch Referenzierunng von leeren Zellen mit “=Zelle” vermischt werden, wäre ich dankbar.

Siehe Beispiel:
Stichwortverzeichnis_Fibel.ods (52.0 KB)

Beste Grüße

Hab ich bereits geschrieben, aber wenns denn unbedingt sein muss, dann dupliziere die Tabelle »Deutsch« dann kannst du auch gefahrlos beide Tabellen sortieren wie du lustig bist!

2 Kommentare - 2 absolut absolut fehlgeleitete Ansätze. Ein Duplikat der Tabelle erfordert ständig doppelte Korrektur wenn im Datensatz etwas geändert wird.
Du scheinst das Problem und die Funktion nicht zu begreifen.
Die Funktion, die, wie ich gerade beschrieben habe, problemlos mit “=$Tabellenblatt1.Zelle” gegeben ist.

Hallo
ab LO24.8:

=SORTIEREN($Deutsch.$A$11:$E$1000;3)

Herrlich! Zwar hat meine Repository noch gar nicht 24.8 gehabt, aber nach dem Upgrade auf v24.8 und Test von (English)
=SORT($Deutsch.$A$11:$E$1000;3;1)
funktioniert es Prima - gänzlich ohne falsche Darstellung von 0 in eigtl. leeren Zellen.

Super Lösung. Siehe:
Stichwortverzeichnis_Fibel.ods (70.0 KB)

Für jeden der das hier nachliest und selbst noch nie mit Arrays gearbeitet hat:
Das nachträgliche Editieren der Formel ist folgendermaßen möglich:

1.) Markieren vom Array: Erste Zelle anklicken und “Strg + /” 2.) Editieren der Formel mit F2 oder Mausklick ins Formelfeld 3.) Übernehmen der Änderung für das gesamte Array: “Strg + Shift + Enter”

Danke sehr.

Oder gleich das Argument »auslagern« in eine andere Zelle:

=SORT($Deutsch.$A$11:$E$1000; A2 ;A3)
1 Like

Noch smarter! Merci.

Ich habe gerade versucht auch die Range auszulagern, doch erhielt Err:504: Da die Range als Text String in einer Zelle nicht als Referenz erkannt wird.
Hiermit klappt es:

=SORT(INDIRECT(A9);B9;C9;D9)

A9: “$Deutsch.$A$11:$E$1000”
B9: “3”
C9: “1”
D9:
Ohne Anführungsstriche.

Hallo
INDIRECT ist sehr ineffizient, ausserdem brauchst du eh einen Quellbereich in fester Grösse die identisch ist zur Grösse des Ausgabebereichs.

Hallo,
was gäbe es als effizientere Alternative zu INDIRECT wenn die Range ausgelagert werden soll, um diese bspw. durch andere Formel zu generieren und als Ausgabe für das Einlesen in eine Zelle zu schreiben?

Ich würde dann alle Quellbereiche ausreichend gross mit »Luft nach unten« (aber alle gleich gross) dimensionieren, allen Quellbereichen als auch dem Zielbereich einen Namen geben ( Adresse über Spalte A überschreiben ) und wenn du mal den Quellbereich einer Formel ändern willst, selektierst du den Zielbereich ( übers Adressfeld ) wechselst in den Formelassistenten und schreibst da den Namen des gewünschten Quellbereichs rein, in der Praxis geht das wesentlich schneller wie das hier hinzuschreiben.

1 Like