Hallo zusammen,
Habe einen Rechenblatt mit zwei Ebenen ; wie kann ich den ganzen Rechenblatt sortieren, also nicht nur die erste Ebene, sondern gleichzeitig auch die zweite ?
jacques
Hallo Jacques
Ich glaube nicht, dass das geht. Ich würde die Spalten, nach denen sortiert werden soll, von der ersten Lage in die zweite kopieren (entweder mit copy/paste, oder mit KopiereBereich (eine von Martin's Power Funktions), oder ohne Power Fuctions mit einer Suchlaufformel und SetzeZelle.
Dann nacheinander die beiden Lagen sortieren. Natürlich musst du darauf achten, dass beim Kopieren der Sortierspalten per Formel diese Formel nur einmal ausgeführt und nicht etwa nach dem Sortieren der ersten Lage neu berechnet wird.
Gruss, Thomas
Hallo Thomas, Ich glaube nicht, dass das geht Schade :-( Werde also in meiner Datei ein wenig basteln, damit alles funktioniert : irgendwo in der ersten Ebene die zu sortieren Elementen, in der zweiten Ebene Kopien dieser Elementen als Ergebnisse von Suchlauffunktionen. Danke für die Antwort. Mit freundlichen Grüssen, jacques
Mit einem AppleScript lässt sich dein Problem lösen. Für das folgende Script habe ich diese Annahmen getroffen:
1. In beiden Lagen von Rechenblatt 1 sind nur die Spalten A:F belegt und sollen sortiert werden 2. Es soll nach dem Inhalt der Spalten A und B von Lage 1 sortiert werden
Im Script wird zuerst der Inhalt von Spalten A und B aus Lage 1 in die Spalten G und H von Lage 2 kopiert. Danach werden die beiden Lagen sortiert: - Lage 1 (Spalten A:F) nach Spalten A und B - Lage 2 (Spalten A:H) nach Spalten G und H Schliesslich werden die Spalten G und H in Lage 2 des Rechenblatts gelöscht.
Das Script lässt sich natürlich beliebig modifizieren. Es wäre nach dem gleichen Prinzip auch möglich, nach dem Inhalt von Spalten in Lage 1 und 2 zu sortieren. Da müsste einfach zuerst die "Sortierspalte" aus Lage 2 in die Lage 1 übertragen werden.
Hier das Script: tell application "RagTime 6.6" activate select columns 1 thru 2 of table "Rechenblatt 1" of document 1 copy select cell "[2]G1" of table "Rechenblatt 1" of document 1 paste sort columns 1 thru 6 of table "Rechenblatt 1" of document 1 sorting by row group by member count members "1" using keys {{class:sort key, sorting order:ascending, sorting range:"A1"}, {class:sort key, sorting order:ascending, sorting range:"B1"}, {class:sort key, sorting order:ascending, sorting range:""}} sort range "[2]A:[2]H" of table "Rechenblatt 1" of document 1 sorting by row group by member count members "1" using keys {{class:sort key, sorting order:ascending, sorting range:"[2]G1"}, {class:sort key, sorting order:ascending, sorting range:"[2]H1"}, {class:sort key, sorting order:ascending, sorting range:""}} select range "[2]G:[2]H" of table "Rechenblatt 1" of document 1 delete selection end tell
tell application "RagTime 6.6" activate select columns 1 thru 2 of table "Rechenblatt 1" of document 1 copy select cell "[2]G1" of table "Rechenblatt 1" of document 1 paste sort columns 1 thru 6 of table "Rechenblatt 1" of document 1 sorting by row group by member count members "1" using keys {{class:sort key, sorting order:ascending, sorting range:"A1"}, {class:sort key, sorting order:ascending, sorting range:"B1"}, {class:sort key, sorting order:ascending, sorting range:""}} sort range "[2]A:[2]H" of table "Rechenblatt 1" of document 1 sorting by row group by member count members "1" using keys {{class:sort key, sorting order:ascending, sorting range:"[2]G1"}, {class:sort key, sorting order:ascending, sorting range:"[2]H1"}, {class:sort key, sorting order:ascending, sorting range:""}} select range "[2]G:[2]H" of table "Rechenblatt 1" of document 1 delete selection end tell
Freundliche Grüsse, Thomas
Hallo Thomas, hallo Jacques,
den Sinn Eurer Sortieraktion habe ich erst nach Ausprobieren verstanden, der Anwendungszweck ist mir allerdings nach wie vor nicht klar.
Ich dachte zunächst, das Rechenblatt wäre in 2 Lagen aufgeteilt, da die Tabelle zu lang für die leidigen 16.000 Zeilen ist und die Tabelle einfach in Lage 2 fortgesetzt würde.
Eine solche Sortierung über 2 Lagen wäre natürlich deutlich aufwändiger, da die beiden Lagen für eine Sortierung zuerst irgendwie zu einer Gesamttabelle zusammengefasst werden müssten.
Bei Jacques' Szenario frage ich mich allerdings, warum sich die gesamten Daten nicht sowieso in Lage 1 befinden, das wäre doch das Einfachste, oder? Erst bei Erreichen der 16.000 Spalten wäre so etwas doch dann notwendig.
Vielleicht hab ich aber auch was komplett missverstanden?
Herzlichen Gruß an die Samstags-Arbeiterklasse;-) Steffen
Hallo Steffen und Thomas,
@ Thomas
hatte deine zweite Antwort nicht sofort gefunden ; werde nun diese auch näher betrachten…
@ Steffen
Weshalb zwei Lagen ?
Beide Lagen werden übereinander im Layout gelegt, damit die Daten von beiden übereinanderstehenden Zellen zusammen lesbar werden ! (die erste Ebene ist durchsichtig).
Vielendank und Grüsse,
Hallo, Meine Lösung : die Werte werden zuerst in den Spalten [1]AH usw. ausser des Layouts generiert, und mit VSuchlauf([1]AH:AH;1;;SetzeZelle(LfdZelle;[2]H:H;LfdIndex)) usw. im Layout kopiert, wo sie sichtbar sind. Nur die Lage [1] wird sortiert, die Lage[2] wird automatisch aktualisiert. Gruss jacques