0 votes
in SoSci Survey (dt.) by s150779 (305 points)

Hallo,
es ist ein bisschen kompliziert, ich hoffe ich kann mein Problem verständlich machen.

Ich habe 2 Skalenfragen, die selber je nach mehreren spezifischen Filterbedingungen angezeigt werden. Vereinfacht gesagt:
Skalenfrage A053 (0-10) bekommen nur jene, die ein elektrisches Auto fahren
Skalenfrage A054 (0-10) bekommen nur jene, die ein Wasserstoffauto fahren
Weder noch bekommen jene, die weder elektrisch noch mit Wasserstoff fahren

Bewertet man die Frage A053 ODER A054, je nach Auto, schlecht (0-6), folgt die offene Frage A055.
Bewertet man die Frage A053 ODER A054, je nach Auto, gut (7-8), folgt die offene Frage A056.
Bewertet man gar nicht, weil man weder noch fährt, sollen auch die Fragen A055 bzw. A056 nicht kommen.

Dementsprechend habe ich folgende Filter geschrieben:
Für den Fall einer schlechten Bewertung

if
( 
(
		 ((value('A053_01') >= 0 AND (value('A053_01') < 7)))
	        OR
	     ((value('A054_01') >= 0 AND (value('A054_01') < 7)))
	    )
)
{
  question('A055');
}	

Für den Fall einer guten Bewertung

if( 
		((value('A053_01') == 8 ) OR (value('A053_01') == 9 ))
	OR
	((value('A054_01') == 8 )  OR (value('A054_01') == 9 ))
	)	
{
  question('A056');
}

Ich bekomme aber nun folgende Fehlermeldung, wenn ich ein elektrisches Auto fahre (und dementsprechend Frage A053, nicht aber A054 sehe):

Die Variable A054_01 wurde im Laufe dieses Interviews auf keiner vorhergehenden Seite abgefragt. Daher kann die Funktion value() keinen Antwort-Wert ermitteln.

(Aus Debug: value("A054_01") = ??? )

Bzw.

Wenn ich ein Wasserstoffauto fahre (und Frage A054, nicht A053 sehe):

Die Variable A053_01 wurde im Laufe dieses Interviews auf keiner vorhergehenden Seite abgefragt. Daher kann die Funktion value() keinen Antwort-Wert ermitteln.

(Aus Debug: value("A053_01") = ??? )

Ich glaube zu verstehen, was mir die Fehlermeldung mitteilen will: der Filter kann nicht greifen, wenn die Frage nicht gestellt wurde und die Variable keinen Wert gespeichert hat. Ich komme aber nicht drauf, wie ich die Filterführung zum Laufen bekomme.

1 Answer

+1 vote
by SoSci Survey (305k points)

>Die Variable A054_01 wurde im Laufe dieses Interviews auf keiner vorhergehenden Seite abgefragt. Daher kann die Funktion value() keinen Antwort-Wert ermitteln.

Inhaltlich ist die Aussage (da stimmen Sie dem Fragebogen vermutlich zu) korrekt. Und die gute Nachricht ist, dass es auch keine Fehlermeldung ist, sondern nur ein freundlicher Hinweis.

PHP interpretiert "kein Wert" in Ihrem Filter wie eine 0, also müssten Sie nur das >= 0 in ein >0 ändern, damit der Filter tut, was er soll.

Der Hinweis bleibt, aber den sehen nur Sie - die Befragten bekommen davon nichts mit.

Wenn Sie sich aber als Perfektionist:in betrachten, könnten Sie die Antwort, ob man elektrisch oder Wasserstoff fährt noch in Ihren Filter mit-integrieren, sodass die Bedingung überhaupt nur geprüft wird, wenn das der Fall ist. Das könnte dann so aussehen:

if ( 
  (
    ((Bedingung für elektrisch) && (value('A053_01') < 7))  ||
    ((Bedingung für Wasserstoff) && (value('A054_01') < 7))
  )
) {
  question('A055');
}	
by s150779 (305 points)
Vielen Dank!

Willkommen im Online-Support von SoSci Survey.

Hier bekommen Sie schnelle und fundierte Antworten von anderen Projektleitern und direkt von SoSci Survey.

→ Eine Frage stellen


Welcome to the SoSci Survey online support.

Simply ask a question to quickly get answers from other professionals, and directly from SoSci Survey.

→ Ask a Question

...