Welcome to the LimeSurvey Community Forum

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

Auslesen / Auswerten von Fragebogen

  • holch
  • holch's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
2 days 17 hours ago #269322 by holch
Replied by holch on topic Auslesen / Auswerten von Fragebogen

Gut. Wie wäre es denn, wenn Du Dir diese kleine Auflistung per Mail schicken ließest?


Nur weil es vielleicht falsch rüber kommt: Das zusenden per Email wäre nur ein Extra. Du kannst es natürlich auch in einer Equation/Formel-Frage in der Datenbank ablegen, und dann zusätzlich per Email verschicken (Admin Notification).

Help us to help you!
  • Provide your LS version and where it is installed (own server, uni/employer, SaaS hosting, etc.).
  • Always provide a LSS file (not LSQ or LSG).
Note: I answer at this forum in my spare time, I'm not a LimeSurvey GmbH employee.

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
2 days 17 hours ago #269323 by Joffm
Replied by Joffm on topic Auslesen / Auswerten von Fragebogen

(Admin Notification)

Die meinte ich auch.
Das Einzige wäre, die Standard-Vorlage etwas zu modifizieren, um die Ergebnisse etwas anschaulicher rüberzubringen.

Joffm
 

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

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
2 days 13 minutes ago - 2 days 9 minutes ago #269339 by Joffm
Replied by Joffm on topic Auslesen / Auswerten von Fragebogen
So, wie versprochen:

Inzwischen hast Du sicher gelesen, dass man zum Berechnen von irgendwelchen Dingen eine Frage vom Typ "Gleichung" benutzt (mittels ExpressionScript), und dass dann das Ergebnis der Berechnung in der Datenbank unter dem Fragencode dieser "Gleichungsfrage" auftaucht.
Außerdem weißt Du, dass diese Berechnungen mit geschweiften Klammern umschlossen werden.

Haben wir also eine "Gleichungsfrage" mit dem Code "eqErgebnis" und schreiben dort die Funktion {6*Q1}, so steht in der Datenbank in der Spalte "eqErgebnis" das Sechsfache der Antwort auf Frage "Q1".


1. Die Lösung "zu Fuß"
Du willst einfach die Codes der gegebenen Antworten aufsummieren.
Zunächst die abzulehnende Lösung, nämlich zu schreiben {Q1+Q2+Q3}
Der "+" Operator hat nämlich eine doppelte Bedeutung:
a. Summierung zweier Zahlen
b. Verkettung von Texten
Die zugrundeliegende Programmiersprache (php) ist zwar so schlau zu erkennen, on es sich um Zahlen oder Texte handelt; trotzdem gibt es pathologische Fälle, dass 14+32 nicht 46 ergibt, sondern 1432.

Aber schließlich gibt es die Funktion "sum()"
Alle Funktionen findet man hier:
[url] www.limesurvey.org/manual/ExpressionScri...mplemented_functions [/url]

Und als Argumente werden alle Summanden eingetragen.
Daher erstellsr Du vier Fragen vom Typ "Gleichung", nennst sie entsprechend (müssen ja nicht die von mir gewählten Codes sein), und trägst einfach als Fragetext ein:

In "scoreTotA"
{sum(RAADS14_RAAD1.NAOK, RAADS14_RAAD2.NAOK, RAADS14_RAAD3.NAOK, RAADS14_RAAD4.NAOK, RAADS14_RAAD5.NAOK, (4-RAADS14_RAAD6. NAOK),RAADS14_RAAD7. NAOK,RAADS14_RAAD8. NAOK,RAADS14_RAAD9. NAOK,RAADS14_RAA10.NAOK, RAADS14_RAA11.NAOK, RAADS14_RAA12.NAOK, RAADS14_RAA13.NAOK, RAADS14_RAA14.NAOK)}

In "scoreMDA":
{sum(RAADS14_RAAD1.NAOK, RAADS14_RAAD4.NAOK, RAADS14_RAAD9.NAOK, RAADS14_RAA11.NAOK, RAADS14_RAA12.NAOK, RAADS14_RAA13.NAOK, RAADS14_RAA14.NAOK)}

In "scoreSAA":
{sum(RAADS14_RAAD3.NAOK,RAADS14_RAAD5.NAOK,(4-RAADS14_RAAD6.NAOK),RAADS14_RAAD8.NAOK)}

In "scoreSRA":
{sum(RAADS14_RAAD2.NAOK,RAADS14_RAAD7.NAOK,RAADS14_RAA10.NAOK)}

Du siehst im Total wie auch in SAA dass der Wert von  Item 6 von 4 subtrahiert wurde, da dieses ein reverses Item sein soll.

B. Die Lösung mithilfe der "that"-Variablen.
Was macht diese?
Im Grunde genommen ist es eine Kurzschreibweise, um eine Frage über alle Teilfragen zu expandieren.
Um dies sinnvoll zu nutzen, sollten die Teilfragen "geschickt" gecodet werden.
Daher habe ich die drei Gruppen einmal "D", "A" und "S" und jeweils ein "N" (normal) bzw. "R" (reverse) angehängt und die Nummerierung gelassen
Damit verkürzen sich die Funktionen:

In "scoreTotB":
{sum(sum(that.RAAD.sq_N.NAOK),4*count(that.RAAD.sq_R.NAOK),-1*sum(that.RAAD.sq_R.NAOK))}
Was macht diese Funktion?
Im ersten Term sum(that.RAAD.sq_N.NAOK) werden alle Items summiert, deren Code ein "N" enthält (sq_N), die "normalen".
Der zweite und dritte Term sorgen für die Reversierung der entsprechenden Items (es werden alle berücksichtigt, deren Code ein "R" enthält.
Zugegeben: Da es hier nur ein einziges Item dieser Art gibt, hätte man sich diese allgemeine Lösung sparen können (4-that.RAAD.sq_R.NAOK hätte genügt)
Aber dies ist die allgemeine Lösung, egal wie viele reverse Items es gibt; einzig die Konstante (4), von der abgezogen wird, muss angepasst werden.

Weiter geht's
In "scoreMDB":
{sum(that.RAAD.sq_D.NAOK)}

In "scoreSAB":
{sum(sum(that.RAAD.sq_AN.NAOK),4*count(that.RAAD.sq_AR.NAOK),-1*sum(that.RAAD.sq_AR.NAOK))}

In "scoreSRB":
{sum(that.RAAD.sq_S.NAOK)}

C. Noch eine Verkürzung, diesmal die Anzahl der Fragen betreffend.
Um bei vielen dieser Gleichungen nicht für jede eine separate Gleichungsfrage anlegen zu müssen, erstelle ich gerne einen "Container", der die Ergebnisse dann enthält.
Kann eine "mehrfache numerische Frage" sein, oder (wie ich hier) eine Matrix(Zahlen); ich möchte nämlich noch zusätzlich den Prozentwert berechnen und speichern
Also eine solche Matrix (RC, für Resiltatscontainer)
 

Und vorher wird in einer einzigen Gleichungsfrage dieser "Container" gefüllt
{RC_1_1=sum(sum(that.RAAD.sq_N.NAOK),4*count(that.RAAD.sq_R.NAOK),-1*sum(that.RAAD.sq_R.NAOK))}{RC_2_1=sum(that.RAAD.sq_D.NAOK)}{RC_3_1=sum(sum(that.RAAD.sq_AN.NAOK),4*count(that.RAAD.sq_AR.NAOK),-1*sum(that.RAAD.sq_AR.NAOK))}{RC_4_1=sum(that.RAAD.sq_S.NAOK)}
{RC_1_2=100*RC_1_1/(4*count(that.RAAD.NAOK))}
{RC_2_2=100*RC_2_1/(4*count(that.RAAD.sq_D.NAOK))}
{RC_3_2=100*RC_3_1/(4*count(that.RAAD.sq_A.NAOK))}
{RC_4_2=100*RC_4_1/(4*count(that.RAAD.sq_S.NAOK))}


Du siehst, hier wird das einfache Gleichheitszeichen benutzt, da es sich hier um eine Zuweisung an die jeweilige Zelle von RC handelt.
Da ergibt sich dies
 
Kann man noch verschönern mit Funktionen wie "number_format, um die Kommastellen anzupassen. Aber dies sol ja nur exemplarisch sein.

Diese Fragen werden natürlich alle versteckt.
Und in der Antworttabelle ist entweder dies
 
oder dies
 

In der Umfrage sind zusätzlich zwei Textanzeigen, um die Ergebnis sofort zu Testzwecken anzuzeigen; die können dann später weg.
 

File Attachment:

File Name: limesurvey...2322.lss
File Size:104 KB


Viel Erfolg

Joffm

P.S.
Dié Benutzung von "NAOK" ist in Deinem Falle unnötig, da es sich um eine Pflichtfrage handelt.
NAOK ist dann anzuwenden, wenn es Teilfragen geben kann, die nicht beantwortet sind. Da diese Werte dann gar nicht definiert sind, geht die Summierung "in die Hose" und liefert ... nix. Dann nimmt man NAOK (No answer is OK).

Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 2 days 9 minutes ago by Joffm.

Please Log in to join the conversation.

  • Solander
  • Solander's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
2 days 2 minutes ago #269340 by Solander
Replied by Solander on topic Auslesen / Auswerten von Fragebogen
@Joffm, vielen Dank! Ich werde es mir in Ruhe ansehen!
Auf das verstecken der Fragen bin ich bisher nicht gekommen, das ist ne ganz neue Idee für mich.

Please Log in to join the conversation.

  • holch
  • holch's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
1 day 19 hours ago #269350 by holch
Replied by holch on topic Auslesen / Auswerten von Fragebogen

Auf das verstecken der Fragen bin ich bisher nicht gekommen, das ist ne ganz neue Idee für mich.


Ja, muss man erstmal drauf kommen, ist aber eine ganz übliche Praxis beim erstellen von Fragebögen auf vielen verschiedenen Plattformen. Manchmal muss man einfach Sachen berechnen, die man später im Fragebogen braucht, die der Teilnehmer aber nicht sehen soll.

Z.B. du fragst das genaue Alter ab und schreibst das dann in eine verstecke Frage mit den Altersgruppen, um darüber später Quoten zu berarbeiten, oder Fragen ein und auszublenden.

Oder man definiert auf Basis von verschiedenen Antworten ein Profil, auf dessen Basis der Fragebogen später zugreift.

Oder wie du: Man möchte eine Bewertung, die der Teilnehmer aber (noch) nicht sehen soll. Weil die Bewertung eben nur für Intern gedacht ist oder erst am Ende des Fragebogens angezeigt werden soll. Daher verstecken wir sehr häufig Fragen.

Help us to help you!
  • Provide your LS version and where it is installed (own server, uni/employer, SaaS hosting, etc.).
  • Always provide a LSS file (not LSQ or LSG).
Note: I answer at this forum in my spare time, I'm not a LimeSurvey GmbH employee.

Please Log in to join the conversation.

Moderators: holchJoffmtpartner

Lime-years ahead

Online-surveys for every purse and purpose