LimeSurvey: Eine von mehreren Fragen zufällig anzeigen

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.


Grundidee

Wir brauchen dafür zwei Dinge:

  1. Eine versteckte Frage, die eine Zufallszahl erzeugt.
  2. Mehrere normale Fragen, die nur dann angezeigt werden, wenn die Zufallszahl zu ihnen passt.

Man kann sich das so vorstellen:

Zufallszahl Angezeigte Frage
1Frage 1
2Frage 2
3Frage 3
4Frage 4
5Frage 5
6Frage 6

Jede teilnehmende Person bekommt also zufällig eine Zahl. Diese Zahl entscheidet dann, welche Frage angezeigt wird.


Wichtig: Nicht die normale Randomisierung verwenden

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.


Schritt-für-Schritt-Anleitung

Schritt 1: Eine neue Gruppe für die Zufallszahl anlegen

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.

Schritt 2: Eine versteckte Equation-Frage anlegen

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“.

Schritt 3: Die Zufallsformel einfügen

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.

Was bedeutet diese Formel?

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.

Schritt 4: Die Equation-Frage verstecken

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

Schritt 5: Die eigentlichen Fragen anlegen

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.

Schritt 6: Anzeige-Bedingungen eintragen

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

Beispiel mit 6 Fragen

Frage 1

Bei Frage 1 trägst du als Relevanz-Gleichung ein:

RANDQ == 1

Diese Frage wird nur angezeigt, wenn die Zufallszahl 1 ist.

Frage 2

Bei Frage 2 trägst du ein:

RANDQ == 2

Diese Frage wird nur angezeigt, wenn die Zufallszahl 2 ist.

Frage 3

Bei Frage 3 trägst du ein:

RANDQ == 3

Frage 4

Bei Frage 4 trägst du ein:

RANDQ == 4

Frage 5

Bei Frage 5 trägst du ein:

RANDQ == 5

Frage 6

Bei Frage 6 trägst du ein:

RANDQ == 6

Zusammenfassung

Für 6 mögliche Fragen brauchst du also:

Versteckte Equation-Frage

Fragecode:

RANDQ

Formel:

{if(is_empty(RANDQ.NAOK), floor(rand(1,6.9999)), RANDQ.NAOK)}

Relevanz-Gleichungen der eigentlichen Fragen

Frage Relevanz-Gleichung
Frage 1RANDQ == 1
Frage 2RANDQ == 2
Frage 3RANDQ == 3
Frage 4RANDQ == 4
Frage 5RANDQ == 5
Frage 6RANDQ == 6

Wenn du mehr oder weniger Fragen hast

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

Häufige Fehler

Fehler 1: Geschweifte Klammern in der Relevanz-Gleichung

Falsch:

{RANDQ == 1}

Richtig:

RANDQ == 1

Fehler 2: Die Zufallsfrage steht nach den eigentlichen Fragen

Die Equation-Frage mit der Zufallszahl muss vor den Fragen stehen, die zufällig angezeigt werden sollen.

Sonst kennt LimeSurvey die Zufallszahl noch nicht.

Fehler 3: Die Zufallsfrage ist sichtbar

Die Equation-Frage sollte versteckt werden.

Sonst sehen Teilnehmende eine technische Hilfsfrage oder eine Zahl, die für sie keinen Sinn ergibt.

Fehler 4: Randomization group statt Relevanz-Gleichungen verwenden

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.


Mini-Beispiel

Angenommen, du möchtest zufällig eine von drei Fragen anzeigen:

  1. Frage zu Stress
  2. Frage zu Motivation
  3. Frage zu Zufriedenheit

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-FrageRANDQ == 1
Motivations-FrageRANDQ == 2
Zufriedenheits-FrageRANDQ == 3

Damit sieht jede teilnehmende Person zufällig genau eine dieser drei Fragen.


Merksatz

Die versteckte Equation-Frage würfelt eine Zahl. Die Relevanz-Gleichungen entscheiden, welche Frage zu dieser Zahl passt.