Einem String eine Zahl zuweisen
Hallo in die Runde,
Ich habe Strings in zwei Spalten, so wie "B", "B+", "A", "A+" usw. Ich muss ihnen eine Zahl zuweisen und dann das Gesamtranking ausrechnen, z. B.
Rating 1: "A" = 7
Rating 2: "A+" = 8
"Ranking" = (7 + 8) / 2
Ich habe versucht das mit folgendem Code zu erreichen:
let x:=0
if 'Rating 1'='A' then
x:=7;
if 'Rating 1'='A+' then
x:=7.5;let z:=0
if 'Rating 2'='A' then
z:=7;
if 'Rating 2'='A+' then
z:=7.5;
end;
Ranking:=(x + z) / 2
Ich glaube, man sieht gleich, dass hier etwas nicht stimmt, aber was, weiß ich nicht.
Hinzu kommt, dass Ninox gleich einen Fehler meldet, da "A+ " nicht gefunden wurde.
Was soll ich tun?
10 Antworten
-
'Rating 1' ist ein Textfeld? Dann muss der Inhalt in doppelten Anführungszeichen stehen...
let x:=0 if 'Rating 1'="A" then x:=7; if 'Rating 1'="A+" then x:=7.5; let z:=0 if 'Rating 2'="A" then z:=7; if 'Rating 2'="A+" then z:=7.5; end; Ranking:=(x + z) / 2
-
Vielleicht löst schon dein Problem.
Mich interessiert einfach vermutlich überflüssigerweise aus Neugier zum Verständnis der Situation, die ich wieder mal nicht verstehe:
- Liegen die Strings fix vor in deiner Tabelle? Oder trägst du die Datensatz für Datensatz ein?
- Wieviele Strings gibt es insgesamt? 10? 1000? Dynamisch? (so dass neue Strings mit neuer zugeordneter Zahl zu erwarten sind)
-
Hallo Denis. Das wird mit if-Abfragen bei noch mehr Ranking umständlich. Vielleicht hilft Dir eine switch-case-Abfrage wie z.B.
let x := switch 'Rating 1' do case "A+": 7.5 case "A": 7 case "B+": 6.5 case "B": 6 end; let z := switch 'Rating 2' do case "A+": 7.5 case "A": 7 case "B+": 6.5 case "B": 6 end; Ranking := (x + z) / 2
-
Moin,
ich würde das vermutlich über eine Hilfstabelle angehen, in der ich jedem Rating einen Wert zuordne.
Dann könnte
1) das Rating über ein Dropdown-Menü ausgewählt werden und
2) der Zahlenwart sehr einfach ermittelt werden.
VG
Content aside
- vor 1 JahrZuletzt aktiv
- 10Antworten
- 104Ansichten
-
5
Folge bereits