Das Handling mit Listen ist die einfache Lösung.
Ansonsten kann man alternativ auf Script und Array-Funktionen setzten. Solange es nur um das hoch/runterschieben geht würde es genügen, innerhalb der Liste/des Arrays die Werte zu tauschen. Dafür ist es immer gut Vorgänger, Nachfolger, Start und Ende zu kennen. Listenschengelei ist Informatik-Grundlagenwissen. Wenn es um Start/Ende/Löschen/Hinzufügen geht, wird es spannender.
Das Ganze macht aber aus meiner Sicht nur und richtig Sinn, wenn die Liste nicht direkt aus einer Formel kommt, sondern die Anordnung in einem Feld gespeichert ist und über die "Schiebefunktion" manipuliert und dann refresht werden kann.
Immer eine coole Funktion wenn es um Listen und Formelsprache geht: @transform
zum Beispiel:
Schnellfix-Implementierung mit Mehrfachwerte-Feld "test", Formel auf eine Schaltfläche, in der Liste wird der Wert "3" nach oben durchgeschoben. Der Wert "3" läßt sich natürlich durch eine Variable ersetzen, sollte aber nur 1x vorkommen, sonst wirds bunt.
y := "";
z := "";
first := "";
resultlist := @Transform( test; "x"; @If(y = ""; @Do(y:= x; first := x; @Nothing); @If( x = "3";@Do( z := y; y := x; y:z ); y = "3"; @Do(y:= x; @Nothing) ;@Do( z := y; y := x; z ) ) ) ) ;
FIELD test := @If( first = "3" & y = "3"; "3"; first = "3"; first : resultlist : y; y = "3"; resultlist; resultlist : y ) ;
Gruß, Heiko