Hallo, Alina,
(mit 2 Antwortoptionen; "keine Auswahl" ist deaktiviert, keine Pflichtfrage).
Was machst Du denn, wenn ein Teilnehmer dann nichts auswählt?
Soll heißen: Mach eine Pflichtfr5age daraus mit der exklusiven Teilfrage "keine davon".
Gut, zur Frage:
Es ist ja alles richtig, was Du machst; nur hast Du nicht bis zum Ende gedacht.
Wann wird die erste der beiden Gruppen gezeigt?
Wenn
- entweder die Anzahl der gewählten Optionen gleich "1" ist und Q1_1 =="Y" ist
- oder die Anzahl der gewählten Optionen ungleich "1" ist und die Zufallszahl gleich "1"
Und genau das schreibst Du als Bedingung (ich habe hier die "that"-Variable benutzt, um es kürzer zu machen., siehe Handbuch)
1. Fragegruppe: (Q1_1=="Y" and count(that.Q1.NAOK)==1) OR (eqRandom==1 and count(that.Q1.NAOK)!=1)
2. Fragegruppe: (Q1_2=="Y" and count(that.Q1.NAOK)==1) OR (eqRandom==2 and count(that.Q1.NAOK)!=1)
Also erzeugst Du die Zufallszahl direkt am Anfang, ob sie nun benötigt wird oder nicht.
Hier zwei Texctanzeige-Fragen mit der Anzeige, was passiert ist.
Einfach mit dem Fragetext
In Frage Q1 wurde gewählt: {list(that.Q1.shown)}<br>
Die Zufallszahl ist {eqRandom}. {if(count(that.Q1)==1,"Diese ist in diesem Falle irrelevant","Da beide Optionen gewählt wurden, wird die Zufallszahl berücksichtigt")}
Natürlich kannst Du auch andersherum arbeiten, nämlich alles in die Erzeugung der Zufallszahl ziehen.
Zum Beispiel
{if(count(that.Q1.NAOK)==2,rand(1,2),if(Q1_1=="Y",1,if(Q1_2=="Y",2,3)))}
Logik ist klar:
Wenn die Anzahl gleich "2" ist, gibt zufällig "1" oder "2" zurück, ansonsten Wenn Option 1 gewählt wurde, gib "1" zurück, ansonsten wenn Option 2 gewählt wurd, gib "2" zurück, und wenn alles noch nicht zutraf, gib "3" zurück.
Ein einfaches verschachteltes IF.
Hier wird angenommen, dass es die exklusive Option "3" (keines davon") gibt, welche dann als Ergebnis 3 liefert, und also keine der beiden Gruppen anzeigt.
Dann reduziert sich die Bedingung der Gruppen auf
1. Fragegruppe: eqRandom==1
2. Fragegruppe: eqRandom==2
Zum Schluss:
Du siehst, ich habe die Variable "eqRandom" genannt.
1. Aus alter Programmiergewohnheit beginne ich mit dem Typ der Variablen (hier "eq" für Equation)
2. Halte ich diese Benennung "Gleichung" für ungünstig; es ist eben keine Gleichung, sondern eine Zufallszahl.
(Obwohl die Tutorials von Paul Borsdorf - daher stammt dies wohl - ansonsten super gut sind)
Bis dann
Joffm