Rechenblatt in zwei Ebenen sortieren

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

Re: Rechenblatt in zwei Ebenen sortieren

#12256 On 25 November, 2016 22:02 Thomas Kaegi said,

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

Re: Rechenblatt in zwei Ebenen sortieren

#12259 On 27 November, 2016 08:34 jacques villars said,

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

Re: Rechenblatt in zwei Ebenen sortieren

#12257 On 26 November, 2016 10:43 Thomas Kaegi said,

Hallo 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

Freundliche Grüsse, Thomas

Re: Rechenblatt in zwei Ebenen sortieren

#12258 On 26 November, 2016 12:34 Steffen said,

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

Re: Rechenblatt in zwei Ebenen sortieren

#12260 On 27 November, 2016 08:51 jacques villars said,

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,

jacques

Re: Rechenblatt in zwei Ebenen sortieren

#12261 On 27 November, 2016 13:49 jacques villars said,

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