In manchen Umfragen möchte man nicht, dass alle Teilnehmenden dieselben Fragen sehen. Stattdessen soll LimeSurvey aus mehreren möglichen Fragen zufällig genau eine Frage auswählen.
Beispiel: Es gibt 6 mögliche Fragen. Jede teilnehmende Person soll aber nur eine dieser 6 Fragen sehen.
Das kann man in LimeSurvey mit einer kleinen Zufallslogik lösen.
Wir brauchen dafür zwei Dinge:
Man kann sich das so vorstellen:
| Zufallszahl | Angezeigte Frage |
|---|---|
| 1 | Frage 1 |
| 2 | Frage 2 |
| 3 | Frage 3 |
| 4 | Frage 4 |
| 5 | Frage 5 |
| 6 | Frage 6 |
Jede teilnehmende Person bekommt also zufällig eine Zahl. Diese Zahl entscheidet dann, welche Frage angezeigt wird.
In LimeSurvey gibt es auch eine Funktion namens Randomization group.
Diese Funktion mischt normalerweise nur die Reihenfolge von Fragen. Sie sorgt nicht automatisch dafür, dass nur eine einzige Frage angezeigt wird.
Für unser Ziel brauchen wir deshalb eine andere Lösung.
Lege am Anfang der Umfrage eine neue Fragengruppe an.
Zum Beispiel:
Randomisierung
Diese Gruppe sollte vor den eigentlichen Fragen stehen, die zufällig ausgewählt werden sollen.
Erstelle in dieser Gruppe eine neue Frage.
Wähle als Fragetyp:
Equation
Gib dieser Frage den Fragecode:
RANDQ
Der Name RANDQ ist nur ein Beispiel. Er steht hier für „random question“, also „zufällige Frage“.
In den Fragetext beziehungsweise in das Gleichungsfeld dieser Equation-Frage schreibst du:
{if(is_empty(RANDQ.NAOK), floor(rand(1,6.9999)), RANDQ.NAOK)}
Diese Formel erzeugt zufällig eine Zahl von 1 bis 6.
Du musst die Formel nicht vollständig programmieren können. Wichtig ist nur die Grundidee.
Dieser Teil erzeugt eine Zufallszahl zwischen 1 und knapp 7:
rand(1,6.9999)
Dieser Teil rundet die Zahl nach unten ab:
floor(...)
Dadurch entstehen nur ganze Zahlen:
1, 2, 3, 4, 5 oder 6
Dieser Teil sorgt dafür, dass die Zufallszahl nicht ständig neu erzeugt wird:
if(is_empty(RANDQ.NAOK), ..., RANDQ.NAOK)
Das ist wichtig, falls jemand in der Umfrage zurück- und wieder weiterklickt. Die Person soll dann dieselbe zufällige Frage behalten.
Die Zufallszahl soll nicht für die Teilnehmenden sichtbar sein.
Stelle deshalb bei der Equation-Frage ein:
Always hide this question = On
Je nach Spracheinstellung kann diese Option auch ungefähr so heißen:
Diese Frage immer verstecken
oder:
Frage immer ausblenden
Jetzt legst du die Fragen an, von denen später nur eine angezeigt werden soll.
Zum Beispiel:
Q1
Q2
Q3
Q4
Q5
Q6
Du kannst natürlich auch andere Fragecodes verwenden.
Wichtig ist nur: Jede dieser Fragen bekommt eine Bedingung, wann sie angezeigt werden soll.
Bei jeder Frage gibt es ein Feld für die sogenannte Relevance equation oder Relevanz-Gleichung.
Dort trägst du ein, wann die jeweilige Frage angezeigt werden soll.
Wichtig: In diesem Feld werden normalerweise keine geschweiften Klammern geschrieben.
Also nicht:
{RANDQ == 1}
sondern:
RANDQ == 1
Bei Frage 1 trägst du als Relevanz-Gleichung ein:
RANDQ == 1
Diese Frage wird nur angezeigt, wenn die Zufallszahl 1 ist.
Bei Frage 2 trägst du ein:
RANDQ == 2
Diese Frage wird nur angezeigt, wenn die Zufallszahl 2 ist.
Bei Frage 3 trägst du ein:
RANDQ == 3
Bei Frage 4 trägst du ein:
RANDQ == 4
Bei Frage 5 trägst du ein:
RANDQ == 5
Bei Frage 6 trägst du ein:
RANDQ == 6
Für 6 mögliche Fragen brauchst du also:
Fragecode:
RANDQ
Formel:
{if(is_empty(RANDQ.NAOK), floor(rand(1,6.9999)), RANDQ.NAOK)}
| Frage | Relevanz-Gleichung |
|---|---|
| Frage 1 | RANDQ == 1 |
| Frage 2 | RANDQ == 2 |
| Frage 3 | RANDQ == 3 |
| Frage 4 | RANDQ == 4 |
| Frage 5 | RANDQ == 5 |
| Frage 6 | RANDQ == 6 |
Wenn du nicht 6, sondern zum Beispiel 10 mögliche Fragen hast, musst du die Formel anpassen.
Für 10 Fragen wäre die Formel:
{if(is_empty(RANDQ.NAOK), floor(rand(1,10.9999)), RANDQ.NAOK)}
Dann brauchst du Relevanz-Gleichungen von:
RANDQ == 1
bis:
RANDQ == 10
Falsch:
{RANDQ == 1}
Richtig:
RANDQ == 1
Die Equation-Frage mit der Zufallszahl muss vor den Fragen stehen, die zufällig angezeigt werden sollen.
Sonst kennt LimeSurvey die Zufallszahl noch nicht.
Die Equation-Frage sollte versteckt werden.
Sonst sehen Teilnehmende eine technische Hilfsfrage oder eine Zahl, die für sie keinen Sinn ergibt.
Die Randomization group ist sinnvoll, wenn Fragen in zufälliger Reihenfolge erscheinen sollen.
Sie ist aber nicht ausreichend, wenn nur eine von mehreren Fragen angezeigt werden soll.
Angenommen, du möchtest zufällig eine von drei Fragen anzeigen:
Dann legst du zuerst eine versteckte Equation-Frage mit dem Code RANDQ an:
{if(is_empty(RANDQ.NAOK), floor(rand(1,3.9999)), RANDQ.NAOK)}
Danach bekommen die drei Fragen diese Relevanz-Gleichungen:
| Frage | Relevanz-Gleichung |
|---|---|
| Stress-Frage | RANDQ == 1 |
| Motivations-Frage | RANDQ == 2 |
| Zufriedenheits-Frage | RANDQ == 3 |
Damit sieht jede teilnehmende Person zufällig genau eine dieser drei Fragen.
Die versteckte Equation-Frage würfelt eine Zahl. Die Relevanz-Gleichungen entscheiden, welche Frage zu dieser Zahl passt.