Welcome to the LimeSurvey Community Forum

Ask the community, share ideas, and connect with other LimeSurvey users!

Endtext anhand von Ergebnissen einer Matrix

  • AndreaBlattner
  • AndreaBlattner's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
1 week 5 days ago #263353 by AndreaBlattner
Endtext anhand von Ergebnissen einer Matrix was created by AndreaBlattner
Ihre LimeSurvey-Version: 5.6.62
Eigener Server oder LimeSurvey-Cloud: Cloud
Genutzte Designvorlage:
==================
Hallo, 

ich habe eine Umfrage erstellt und möchte für jede Spalte der Datenmatrix einen Wert von 1-3 hinzufügen. Also jedes "stimmt" soll mit einem Punkt und jedes "stimmt nicht" mit 3 Punkten bewertet werden. 
Am Ende der Umfrage soll dann der spezielle Text erscheinen, der für den jeweiligen Punktestand passend ist. 10-14 Punkte Text A, 15-20 Text B usw. 

Wäre über jede Hilfe sehr dankbar!

LG

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
1 week 5 days ago #263363 by Joffm
Hallo,
ich weiß jetzt nicht genau, was Deine Frage ist.

1. Willst Du wissen, wie man den Wert berechnet?
Stichwort: "ExpressionScript
Das geht auf verschiedenste Arten.
Nehmen wie an, Deine Matrix habe den Fragencode Q1.

a. Wenn es nur diese beiden Antwortoptionen gibt, kannst Du ja "Stimmt" mit "1" kodieren, "Stimmt nicht" mit "3".
Dann summierst Du einfach alles mit der Funktion {sum(that.Q1)}.
Sollte die Frage nicht verpflichtend sein, musst Du die Eigenschaft "NAOK" hinzufügen, da es ansonsten kein definiertes Ergebnis gibt, {sum(that.Q1.NAOK)}.
Alle Dir zur Verfügung stehenden Funktionen findest Du ja im Handbuch
[url] manual.limesurvey.org/ExpressionScript_-...mplemented_functions [/url]

b. Wenn es noch weitere Antwortoptionen gibt, kannst Du den Bewertungsmodus einschalten, an "Stimmt" den Wert "1" vergeben, an "Stimmt nicht" den Wert "3", an alle anderen den Wert "0".
Dann summierst Du wieder, diesmal aber nicht die Codes, sondern den Bewertungswert, also mit der Property ".value"
{sum(that.Q1.value)} bzw. {sum(that.Q1,valueNAOK}.
Diese Eigenschaften werden hier erklärt.
[url] manual.limesurvey.org/ExpressionScript_-...#Access_to_variables [/url]

c. Wenn Du - aus welchen Gründen auch immer - Deine Kodierung nicht ändern willst (nehmen wir an "Stimmt" habe den Code "ST", "Stimmt nicht" den Code "NST"), bietet sich die Funktion "countif()" an.
Hiermit zählst Du einfach, wie oft der Code von "Stimmt" auftauchte und multiplizierst mit "1" (ist natürlich überflüssig), und wie oft der Code von "Stimmt nicht" auftauchte und multiplizierst mit "3"; dann addierst Du diese beiden Ergebnisse.
Zum Beispiel: {sum(countif("ST".that.Q1),3*countif("NST",that.Q1))}, evtl. auch mit "NAOK"

Über die Variablen "self" und "that" lies bitte hier
[url] manual.limesurvey.org/ExpressionScript_-...%22that%22_variables [/url]

2. Oder willst Du wissen, wie Du Deinen abhängigen Text hinzauberst?
Stichwort: Natürlich auch ExpressionScript, hier ein verschachteltes IF.
Wie Du jetzt schon bei den "Implementierten Funktionen" gelesen hast, ist die Definition dieser Funktion
if(Bedingung,Resultat wenn WAHR, Resultat wenn FALSCH)
Und jedes der beiden Resultate kann wieder eine neue IF-Funktion sein
Dies vorweg.

Ich würde vorschlagen, Du berechnest den Wert innerhalb der Umfrage in einer Frage vom Typ "Gleichung".
Vorteil: Der Wert wird in den Daten gespeichert und Du vermeidest eine mehrmalige Berechnung der selben Sache.
Gut, Sei der berechnete Wert "result", d.h. die Frage vom Typ "Gleichung" hat den Fragecode "result".
Dann würdest Du dort, wo Du das Ergebnis anzeigen möchtest, entweder in einer Frage vom Typ "Textanzeige" am Ende oder in der Endnachricht ein solches IF-Konstrukt einsetzen:
if(result<15,"Ziemlich wenig",if(result<21,"Geht so gerade noch",if(result<26","Nicht schlecht",if(result<31,"Schon ganz gut",Super fantastisch"))))}
Du siehst:
Wenn das Resultat <15 ist, wird der Text angezeigt, wenn nicht, geht es weiter; wenn er dann kleiner als 21 ist, wird dieser Text angezeigt, wenn nicht, wieder weiter.
D.h. der "FALSCH"-Teil enthält eine weitere If-Funkion.

So, ich habe dies jetzt sehr ausführlich beschrieben, weil dies meiner Meinung nach eine ganz wichtige Grundlage ist.
Das Umgehen mit Gleichungen und die verschiedenen Funktionen sollten zu den Basics gehören.
Einfach einmal Herumspielen:
Zwei Werte eingeben (mehrfache numerische Eingabe) und in einer "Textanzeige" die verschiedenen Funktionen ausprobieren.

Samsung



 

Volunteers are not paid.
Not because they are worthless, but because they are priceless

Please Log in to join the conversation.

Moderators: Joffm

Lime-years ahead

Online-surveys for every purse and purpose