Autor Thema: Rangliste erstellen  (Gelesen 2656 mal)

Offline lenchen2

  • Frischling
  • *
  • Beiträge: 9
  • Geschlecht: Weiblich
Rangliste erstellen
« am: 23.12.05 - 14:20:05 »
Hallo Experten!

Brauch mal wieder eure Hilfe...
Weiß jemand wie ich die Werte in einer Variable einem Rang zuweisen kann:
die Variable sieht so aus: [20;40;50;40;20;...] und jetzt soll in einer Schleife der höchste Wert eine 1 (für ersten Rang) zugewiesen bekommen, der zweithöchste Wert eine 2 (für zweiten Rang)...

Noch zur Erklärung - falls mein Ansatz ganz falsch ist...

Habe je ein Dokument pro Berater(immer gleiche Maske) in dem jeweils dargestellt ist welche Zielerreichung die einzelnen Berater haben (also z.B. Produkt1: 50 - für 50% Zielerreichung - Produkt2: 30 ...). Jetzt will ich bei jedem Berater anzeigen lassen wie gut er ist - also z.B. 1 für beste Zielerreichung im Vergleich zu den anderen Beratern in diesem Produkt.
Dachte mir ich könnte jeweils alle Berater-Werte pro Ziel in eine Variable packen und danach irgendwie schaun, welches der höchste Wert, zweithöchste Wert usw. ist - aber mir fehlt hierzu der Ansatz - den höchste und den niedrigsten würde ich ja noch rausbekommen, aber die zwischendrin... Hat jemand eine Idee?

Danke schon mal

Grüßle Lenchen2

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Rangliste erstellen
« Antwort #1 am: 23.12.05 - 14:34:03 »
Mit Skript würde ich sagen.
In 6 wurde in Formelsprache der Befehl @Sort eingeführt, der helfen könnte. Das er eingeführt wurde, kann als Hinweis darauf gesehen werden, dass die Funktionalität vorher fehlte.
In Java wurde mit 1.2 das Comparator Interface eingeführt, dass @Sort vermutlich inspiriert hat (sehr ähnlich), aber das gibts in Notes5 noch nicht.

Es ist eigentlich eine klassische Programmieraufgabe, ein paar Arrays in Beziehung zu setzen und neu zu sortieren. Ein direktes Beispiel habe ich aber jetzt auch nicht zur Hand und auch keine Zeit.
Es ist auf jeden Fall machbar. Nimm aber Skript, würd ich sagen.
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline lenchen2

  • Frischling
  • *
  • Beiträge: 9
  • Geschlecht: Weiblich
Re: Rangliste erstellen
« Antwort #2 am: 23.12.05 - 14:42:49 »
Danke für die Antwort. Will's auf jedenfall in LotusScript machen, da das Ganze in einen Agenten integriert werden soll, der schon andere Felder befüllt.

Aber mir fehlt leider ein Ansatz, da die Werte in der Variable auf jeden Fall sortiert werden müssen. Und ich keine Ahnung hab wie ich in Lotus Script die Werte einer Variable nach der Größe sortieren soll.

Weiß das vielleicht jemand?

Könnt das Problem auch über eine Ansicht pro Produkt lösen, dann sind die Werte sortiert, aber hab halt ziemlich viele Produkte.

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Rangliste erstellen
« Antwort #3 am: 23.12.05 - 14:53:27 »
http://www.google.de/search?hl=de&q=Sorting+algorithm+lotusScript&btnG=Google-Suche&meta=

Du hast einmal diese Zahlen (nach denen sortiert werden soll) [20;40;50;40;20;...] und in einem anderen Feld die Mitarbeiternamen, zu denen diese Zahlen gehören?
Wenn das so ist, mußt du diese Wertepaare erstmal zu einer Einheit verbinden (etwa durch einen Type oder eine Class). Dann sortierst du nach der Zahl, z.B. mit einem dieser Sortieralgorythmen.
Das sieht interessant und ganz gut dokumentiert aus.
http://jens-seiler.de/lotusscript/tablejar/
« Letzte Änderung: 23.12.05 - 14:57:33 von kennwort »
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline lenchen2

  • Frischling
  • *
  • Beiträge: 9
  • Geschlecht: Weiblich
Re: Rangliste erstellen
« Antwort #4 am: 23.12.05 - 16:01:25 »
Danke für die Antwort - denk ich werd ne Formel schreiben die die Inhalte dann in der richtigen Reihenfolge in eine neue Variable schreibt - aber heute nimmer. Jetzt ist erst mal Weihnachten.


Sobald ich sie hab füg ich sie unten an.
Natürlich bin ich auch für weitere Lösungsvorschläge dankbar


Schöne Weihnachten

Offline lenchen2

  • Frischling
  • *
  • Beiträge: 9
  • Geschlecht: Weiblich
Re: Rangliste erstellen
« Antwort #5 am: 28.12.05 - 14:27:11 »
So,

hab mir jetzt ne Schleife für das Problem programiert - vielleicht hilft's ja jemand weiter...
Falls natürlich jezt jemand sagt - " da gibt es doch eine viel einfachere Lösung" - wär ich für den Hinweis - und natürlich die dazugehörige Lösung - dankbar.

Wie gesagt wollte ich eine Rangliste machen, die mir aus einer Variablen mit beliebig sortierten Werten sagt welches der größte Wert ist, welches der zweitgrößte...

Hier meine Formel dazu

die Variable war ilbs()= ["6","6","","40","20"] ...
Und so sieht dann das Ergebnis aus: slbs()= [40,20,6,0]
jetzt ist slbs(1)=Rang1 ; slbs(2)=Rang2 usw.

(Ach ja und da es sich bei den Werten um % Angaben handelt - geht's bis max "100")


Gruß Lenchen2
...
      
   t=-1
   For i=Lbound(ilbs) To Ubound(ilbs)   
      t=t+1
      a=-1
      
      Redim Preserve slbs(t)
      If t=0 Then
         slbs(t)="101"
         t=t+1
      End If
      
      slbs(t)="0"
      For a=Lbound(ilbs) To Ubound(ilbs)   
         a=a+1
         If ilbs(a)<>"" Then
            If Int(slbs(t))<Int(ilbs(a)) And Int(ilbs(a))<Int(slbs(t-1)) Then
            slbs(t)=ilbs(a)
            End If
         End If
      Next
      If slbs(t)="0" Goto ende  'sonst kommen zum Schluss immer 2 Nullen
      If slbs(t)=slbs(t-1) Then   'damit die Werte nich mehrmals vorkommen
         t=t-1
      End If   
   Next
ende:




 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz