Forum › Forums › Unipark › “adaptive” Mittelwerte berechnen? › Reply To: “adaptive” Mittelwerte berechnen?
Hmmm… also ich habe es gerade versucht und SGN ist bei mir auch keine gültige Funktion mehr… Dabei bin ich mir zu 100% sicher, dass ich die Funktion schon verwendet habe… Möglicherweise hat Unipark/Questback die Funktion abgeschaltet, auch wenn das in vielen Projekten für Unruhe und unerwartetes Verhalten sorgen dürfte da die Funktion auch schon so hier im Forum als Lösung vorgeschlagen wurde… Gibts dazu weiteres Infos seitens @Unipark Support (QuestBack AS) was der SGN Funktion zugestoßen ist? Egal, das hilft dir natürlich nicht weiter…
Bevor wir zur Problemlösung kommen, noch eine kleine Korrektur zu meinem ersten Post:
SGN: gibt es so scheinbar nicht mehr. Eine Ähnliche Funktion ist SIGN, allerdings gibt SIGN bei einer negativen Zahl eine negative Zahl zurück und nicht 0, wie SGN das gemacht hat.
ABS: entfernt nur das Vorzeichen, aus -77 wird also 77
Lösung:
1) Du legst drei benutzerdefinierte Variablen vom Typ Dezimalzahl an: Umfragemenü > Projekteigenschaften > Benutzerdefinierte Variablen
2) Du erstellst auf der Seite mit der Variablen v_4 (oder eine Seite später) einen Rekodierungstrigger, “Ausführen auch in Vorschau” und “Nach dem abschicken, vor dem filtern”. Speichern und anschließend in die Detailkonfiguration wechseln.
3.1) Nenner in c_0001 berechnen (Addiert v_1 zu c_0001 hinzu, wenn v_X größer 0 ist)
3.2) Zu rekodierende Variable: c_0001, Rekodierungswert: #c_0001# + #v_1#, Bedingung: #v_1# > 0, Speichern (dadurch kannst du eine weitere Rekodierung hinzufügen)
3.3) Zu rekodierende Variable: c_0001, Rekodierungswert: #c_0001# + #v_2#, Bedingung: #v_2# > 0, Speichern.
3.4) Zu rekodierende Variable: c_0001, Rekodierungswert: #c_0001# + #v_3#, Bedingung: #v_3# > 0, Speichern.
3.5) Zu rekodierende Variable: c_0001, Rekodierungswert: #c_0001# + #v_4#, Bedingung: #v_4# > 0, Speichern.
4.1) Den Zähler in c_0002 berechnen (Addiert 1 zu c_0002) hinzu, wenn v_X größer 0 ist)
4.2) Zu rekodierende Variable: c_0002, Rekodierungswert: #c_0002# + 1, Bedingung: #v_1# > 0, Speichern.
4.3) Zu rekodierende Variable: c_0002, Rekodierungswert: #c_0002# + 1, Bedingung: #v_2# > 0, Speichern.
4.4) Zu rekodierende Variable: c_0002, Rekodierungswert: #c_0002# + 1, Bedingung: #v_3# > 0, Speichern.
4.5) Zu rekodierende Variable: c_0002, Rekodierungswert: #c_0002# + 1, Bedingung: #v_4# > 0, Speichern.
5) Zu rekodierende Variable: c_0003, Rekodierungswert: #c_0001# / #c_0002#, Bedingung: keine, Speichern.
Ggf. durch größer/gleich 0 ersetzen, wenn 0 in deinem Kontext eine gültige Antwort sein sollte. Ist leider etwas Fleißarbeit…