Autor Thema: Listenwerte bearbeiten und anzeigen !!!  (Gelesen 1880 mal)

Offline dvlad

  • Frischling
  • *
  • Beiträge: 4
Listenwerte bearbeiten und anzeigen !!!
« am: 26.03.08 - 08:40:23 »
Hallo,

ich habe folgendes Problem.

In einen Berechneten Feld(Liste) wird eine Liste erstellt (z.B.: x;x;x;y;y;z)
Aus dieser Liste möchte ich eine zweite Liste bilden die dann so ausschaut ( x*3;y*2;z*1)
Leider bin ich noch nicht so fit was Formelsprache angeht.
Hier mein Code, wie ich mir das überlegt habe das es funktionieren könnte. Bringt aber leider ein FEHLER, Array-Index außerhalb des gültigen Bereichs.

count := 0;
list1:=Liste;
list2:=@Unique (Liste);

@For(i := 1;i <= @Elements(list2);i := i + 1;
   @For(n := 1;n <= @Elements(list1);n := n + 1;
   @If(list1[n] = list2; count[n]:=count[n]+1 ; "")) ;
   anz:=list2 +"*"+ count[n]);
@SetField ("Listeneu";anz)

Würde mich sehr freuen wenn mir jemand auf die Sprünge helfen könnte.


Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: Listenwerte bearbeiten und anzeigen !!!
« Antwort #1 am: 26.03.08 - 09:55:53 »
... habe ich das richtig verstanden - du möchtest aus einer Liste mit 6 Werten 3 Listen machen?

Toni
Grüßle Toni :)

Offline dvlad

  • Frischling
  • *
  • Beiträge: 4
Re: Listenwerte bearbeiten und anzeigen !!!
« Antwort #2 am: 26.03.08 - 10:30:44 »
Das Berechnete Feld(Liste) variert.
Einmal sind es (z.B.: x;x;x;y;y;z) od. (x;x;y;y) od. (z;y;y).

list1:= Liste => z.B.:( x;x;x;y;y;z) od. (x;x;y;y) od. (z;y;y)
list2:=@Unique(Liste) =>(x;y;z) od. (x;y) od. (z;y)

Ich möchte rausfinden wie oft ein Wert aus der list2 z.b.: "x", in der list1 vorkommt und die Werte dann zusammenketten, so das es verständlich ist das x 3mal in der ersten Liste vorkommt (x*3), in der zweiten Liste müsste dann (x*2) rauskommen, in der dritten Liste kommt x gar nicht vor also leer.
Eine 3 Liste soll erstellt werden in der die Ergebnisse so aussehen:

list3:=(x*3;y*2;z*1) od. (x*2;y*2) od. (z*1;y*2)

Glombi

  • Gast
Re: Listenwerte bearbeiten und anzeigen !!!
« Antwort #3 am: 26.03.08 - 10:32:57 »
So:

_RetListe :=
   @If(
      Liste != "";
         @Transform(
            Liste;
            "x";
            x + ("*" + @Text(@Elements(Liste) - @Elements(@Trim(@Replace(Liste;x;"")))))
         );
      ""
   );
@Unique(_RetListe)


Andreas

Offline dvlad

  • Frischling
  • *
  • Beiträge: 4
Re: Listenwerte bearbeiten und anzeigen !!!
« Antwort #4 am: 26.03.08 - 11:01:43 »
Funktioner..., aber nur für einen Wert der list2 ("x").

jetzt muss ich nur noch die anderen Werte der list2 ermitteln.
Die sollen nähmlich auch angezeigt werden.

Ich versuche es mal mit einer @For Schleife davor.


Glombi

  • Gast
Re: Listenwerte bearbeiten und anzeigen !!!
« Antwort #5 am: 26.03.08 - 11:05:00 »
Funktioner..., aber nur für einen Wert der list2 ("x").
Äh, nein! "x" ist ein Platzhalter in der @Transform Funktion. Ich hätte diesen auch "Seppel" nennen können.
Probier es doch einfach mal aus.

Andreas

Offline dvlad

  • Frischling
  • *
  • Beiträge: 4
Re: Listenwerte bearbeiten und anzeigen !!!
« Antwort #6 am: 26.03.08 - 11:23:53 »
 :-[ peinlich.

jetzt ist es wieder klar. Ich hatte mir die @Transform - Formel schon  mal angeschaut, habe es aber noch nicht so durchschaut.

Ich hatte dein Code ausprobiert aber nur mit einen @Prompt ausgegeben und da zeigt er mir nur den ersten Wert der list2, also wenn die Liste mit "x" anfängt dann x*Anzahl.
Habe jetzt das Ergebnis in einem Feld ausgegeben und siehe da, alles passt.

Vielen Dank Andreas,

Ein Kompliment an das ganze Forum.



 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz