Welcome to the LimeSurvey Community Forum

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

Filterführung (Bedingungsdesigner)

  • BaRoHL
  • BaRoHL's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
4 months 5 days ago #266155 by BaRoHL
Filterführung (Bedingungsdesigner) was created by BaRoHL
Bitte helfen Sie uns, Ihnen zu helfen und füllen Sie folgende Felder aus:
Ihre LimeSurvey-Version: 6.5.17+240715
Eigener Server oder LimeSurvey-Cloud:
Genutzte Designvorlage:
==================
Hallo in die Runde,

ich verzweifle gerade an der Filterführung.
Ich habe eine Umfrage mit 96 Fragen, wobei aber nicht alle alles beantworten müssen, sondern je nach gewählter Antwortoption weitergeführt werden.
Ziemlich am Anfang (7. Frage, 12. und 13. Frage) zum Beispiel sollen die Teilnehmer bei Antwort "Nein" auf die letzte Frage geführt werden, weil er für die anderen Fragen nicht zur Zielgruppe gehört. Jetzt habe ich bei der letzten Frage über den Bedingungsdesigner eingegeben, bei welchen Antworten der vorherigen Filterfragen (7, 12, 13) die Teilnehmer dort landen sollen. Tun sie aber nicht.

Beispiel Frage 7: Antwort "nein", trotzdem landet man bei Frage 8 statt bei Frage 96.
Also habe ich bei Frage 8 über den Bedingungsdesigner die Regel erstellt, dass sie nur beantwortet wird, wenn Frage 7 mit "ja" beantwortet wird.
Dann landete man von Frage 7 "nein" bei Frage 9. Also habe ich bei Frage 9 die Regel erstellt, dass Frage 8 beantwortet werden muss. Reichte nicht, also ergänzt durch die Regel, dass man Frage 7 mit "ja" beantworten muss.
So landet man von Frage 7 "nein" bei Frage 10......

Muss ich das Spielchen jetzt tatsächlich 90x wiederholen, damit der Teilnehmer von Frage 7 bei Antwort "nein" tatsächlich da landet, wo er soll, nämlich bei Frage 96? Kann man nicht einfach bei der Frage selbst eingeben, wo sie hinführen soll, je nach gewählter Antwort?

Es tut mir leid, wenn es durchklingt, aber ich bin gerade echt genervt. Und hoffe auf eine Antwort, aus der hervorgeht, dass ich Blödsinn mache und das Ganze viel einfacher ist... Ich stehe in diesem Projekt leider ziemlich unter Zeitdruck, daher stresst sowas dann ungemein.
Danke im Voraus!!

 

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
4 months 4 days ago #266156 by Joffm
Replied by Joffm on topic Filterführung (Bedingungsdesigner)
Hallo,
in LimeSurvey gibt es keine "Sprünge" (wenn Q1 mit "ja" beantwortet wurde, springe zu Q64)
LimeSurvey arbeitet mit "Bedingungen" (unter welcher Bedingung wird Q2 gezeigt/nicht gezeigt)
Dieses System ist im höchsten Grad flexibel.

Gut, zu Deinem Problem.
Zunächst: Wir arbeiten nicht mehr mit dem total antiquierten "Bedingungsdesigner". Seit es ExpressionScript gibt (seit ca. Version 2), ist dies ein weitaus mächtigere, flexiblere und auch schnellere Option.
Hier eine Gegenüberstellung
[url] www.limesurvey.org/manual/ExpressionScri...Relevanz_w%C3%A4hlen ?[/url]
Nicht verwirren lassen.
"Bedingungen" = "Bedingungsdesigner"
"Relevanz" = Bedingung mittels ExpressionScript (dies wurde früher Relevanzgleichung genannt)

Muss ich das Spielchen jetzt tatsächlich 90x wiederholen

Mit dem Bedingungsdesigner: Ja. Und damit ist es wirklich eine Heidenarbeit.

Mit ExpressionScript kannst Du die Bedingung ja auch auf Gruppenebene eintragen; dann bezieht sie sich auf die gesamte Gruppe. Und da die Bedingung ja immer gleich ist (Q7==1, wenn 1 der Code fpür "Ja" ist), ist es ein einfaches copy/paste.

ABER:

weil er für die anderen Fragen nicht zur Zielgruppe gehört.

Dass heißt doch, er fliegt aus der Umfrage raus. Und dafür solltest Du eine Quote mit Limit 0 benutzen. Du möchtest 0 Personen in der Umfrage haben, die die Frage 7 mit "Nein" beantworten.
Dann bekommen sie noch eine nett formulierte Meldung "Leider gehören Sie nicht zu unserer Stichprobe" und "Danke, tschüss"

Was ist denn überhaupt die letzte Frage?
Ist es nur eine "Danke"-Meldung"?
Oder ist es eine spezielle Frage für diese "Nicht-in-der-Stichprobe-Leute"?
Z.B. "In dieser Umfrage gehören Sie nicht zu unserer Stichprobe. Sind Sie aber bereit, bei zukünftigen Umfragen teilzunehmen? Dann tragen Sie bitte Ihre E-Mail hier ein."
Dann sollte diese Frage direkt nach den Fragen 7 und 13 eingefüt werden und danach wird in zwei Fragen vom Typ "Gleichung" noch einmal das Ergebnis von 7 bzw.  12 / 13 gespiegelt, und darauf dann die Quote gesetzt.

Du merkst, es ist vieles "ins Blaue" gesprochen; schließlich wissen wir gar nicht, wie Deine Umfrage wirklich aussieht.
Daher sollte immer ein lss Export mitgeliefert werden.

Bis dann
Joffm
 

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

Please Log in to join the conversation.

  • BaRoHL
  • BaRoHL's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
4 months 4 days ago - 4 months 4 days ago #266158 by BaRoHL
Replied by BaRoHL on topic Filterführung (Bedingungsdesigner)
Vielen Dank für deine schnelle Rückmeldung, Joffm.

Okay, ich habe zumindest verstanden, dass es irgendwie einfacher geht und habe mir auch den Link angeschaut. Momentan habe ich noch den Eindruck, dass ich erst noch eine Ausbildung zum Fachinformatiker machen muss, bevor ich die Fragebögen in LimeSurvey programmiert kriege. Ich bin kein Programmierer.
Offenbar geht das nur über Syntax, nicht über GUI?
Woher weiß ich, wie die Syntax aussehen muss?
Und die kommt dann auch in das Feld "Bedingungen", wo bisher die über den Bedingungsdesigner zusammengeklickten Boolschen Operatoren drinstehen? (Mit denen konnte ich zumindest was anfangen.)
Und das Ganze geht ohne JavaScript? Denn wie ich jetzt von unserer IT-Abteilung erfahren habe, habe ich dazu tatsächlich keine Berechtigung.

Es macht schon Sinn, dass die Personen, die ausgefiltert werden sollen, die ersten Fragen beantworten. Sie gehören zu der Berufsgruppe, die wir befragen, arbeiten aber derzeit nicht in diesem Beruf. Die letzte Frage ist ein Dankes-Text verbunden mit einem Freitext-Feld, in dem die Teilnehmenden noch für sie relevante Dinge anmerken können, die ihnen im Fragebogen selbst gefehlt haben. Dort sollen quasi wieder alle zusammengeführt werden. Aber es stimmt, es ist sinnvoll, diese Gruppen gar nicht auf die letzte Frage zu führen, sondern direkt den Fragebogen zu beenden, denn die Freitexteingabe ist für sie nicht wichtig.
Damit habe ich jetzt das nächste Problem mit den Quoten... Aber das ist ein anderes Thema, ich eröffne dafür mal einen neuen Thread.

Da ich allerdings noch an anderer Stelle filtern muss, wer welche Fragen beantworten soll, bin ich trotzdem für weitere Hilfestellung hier dankbar!

Tausend Kreuze, wenn die Umfragen endlich stehen...

Danke für die Geduld und viele Grüße!


 
Last edit: 4 months 4 days ago by BaRoHL.

Please Log in to join the conversation.

  • holch
  • holch's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
4 months 4 days ago #266176 by holch
Replied by holch on topic Filterführung (Bedingungsdesigner)
Funktioniert alles ohne Javascript und man muss auch kein Fachinformatiker sein. Wer es an eine Uni geschafft hat, sollte auch das hinkriegen. Es ist ja den Formeln bei Excel z.B. sehr ähnlich.

Wie so eine Bedingung aussehen muss, hat ja Joffm schon gesagt. Wenn eine Frage/Fragengruppe nur angezeig werden soll, wenn die Frage Q7 mit ja Beantwortet wurde (Code 1), dann musst du halt Q7==1 eintragen.

Probier es doch mal aus, ist wirklich einfach. Wenn du einmal den Trick raus hast mit dem Expression Manager/script, willst du sicher nicht wieder zurück zum Bedingungsdesigner, der langsamer und wesentlich unflexibler ist (wenn du erstmal zu komplizierteren Bedingungen kommst).

I answer at the LimeSurvey forum in my spare time, I'm not a LimeSurvey GmbH employee.
No support via private message.

Please Log in to join the conversation.

  • BaRoHL
  • BaRoHL's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
4 months 3 days ago - 4 months 3 days ago #266191 by BaRoHL
Replied by BaRoHL on topic Filterführung (Bedingungsdesigner)
Okay, ich versuche mein Glück.
Also erst nochmal danke für die Anregung mit den Quoten. Das hilft schon mal immens weiter.

Zu den Relevanzgleichungen:
Ich habe jetzt damit angefangen, ganze Fragegruppen auszublenden, wenn in der Frage zuvor (Einfachauswahl mit Code M006) die Teilfrage mit Code AO16 angeklickt wurde.

Dafür habe ich unter "Gruppe bearbeiten" in das Feld "Bedingung" folgendes eingegeben:
M006_AO16=="Y"
Alternativ auch versucht mit
!is_empty(M006_AO16)
und mit
M006==AO16
und mit
M006=="AO16"

In allen Fällen wird die folgende Fragengruppe ausgeblendet, wenn ich die Teilfrage mit Code AO16 anklicke - hurra.
Nur: leider wird die folgende Fragengruppe auch ausgeblendet, wenn ich eine andere Teilfrage anklicke und die mit Code AO16 nicht.
Sie wird nun also gar nicht mehr angezeigt.
Wenn ich "isdochquatsch" dort eintrage: das Gleiche. Offenbar ist es egal, was ich rein schreibe, die Fragegruppe wird dann unabhängig von den Antworten, die ich vorher gegeben habe, ausgeblendet.
Falsches Feld?


Auf Ebene der Fragen selbst funktioniert es schon besser, zumindest kann ich einzelne Fragen ausblenden. Das habe ich mit dem Bedingungsdesigner allerdings auch geschafft.
Gibt es eine Relevanzgleichung, die besagt: Wer Frage xyz beantwortet hat (egal wie), bekommt diese Frage nicht angezeigt?
Oder auch: Wer Frage abc beantwortet hat (egal wie), bekommt diese Frage angezeigt?
Das funktioniert bei mir nämlich bislang noch nicht. Wenn ich auch hier bei einer Frage in der Syntax genau alle Möglichkeiten reinschreiben muss, wie jemand dort hingelangen kann, inklusive aller Antwortmöglichkeiten aller Fragen davor, erschließt sich mir nicht, was der Unterschied zum Bedingungsdesigner ist.


Danke nochmals!
 
Last edit: 4 months 3 days ago by BaRoHL.

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
4 months 3 days ago - 4 months 3 days ago #266194 by Joffm
Replied by Joffm on topic Filterführung (Bedingungsdesigner)
Hallo,

wenn in der Frage zuvor (Einfachauswahl mit Code M006) die Teilfrage mit Code AO16 angeklickt wurde.

Hierin steckt schon der erste Fehler.
Eine Einfachauswahlfrage hat keine Teilfragen, sondern nur eine Frage und Antwortoptionen.
Teilfragen gibt es in Mehrfachnennungen und Matrizen. Man kann sich ja eine Mehrfachennungsfrage vorstellen wie eine Menge einzelner Fragen, die mit "Ja" oder "Nein" beantwortet werden.

Zu Deinen Variationen
M006_AO16=="Y", falsch, da es keine Teilfragen gibt
!is_empty(M006_AO16) , falsch, da es keine Teilfragen gibt
M006==AO16 , falsch, da "AO16" ein Text ist, daher muss er in Anführungszeichen stehen
M006=="AO16", eigentlich richtig. Wenn die Gruppe dann nicht angezeigt wird, ist noch irgendwo ein anderer Hänger.

(Wobei ich mich immer frage, warum diese Codeungetüme (AO16) benutzt werden und nicht einfach numerische Werte (1,2,3,...)

Wenn man mit dieser Sache noch nicht "auf Du und Du" ist, empfehle ich immer:
  • Aktiviere die Umfrage
  • Gib einige wohldefinierte Daten ein (notiere, was wo eingegeben wurde)
  • Schau die Antworttabelle an
Dann siehst Du sofort wie die Variablen anzusprechen sind und wie die Bedingungen zu lauten haben.
Beispiel: Zwei Fragen
 


Und in der Antworttabelle siehst Du
 
Wenn ich etwas anzeigen will, wenn die Frage E1 mit "Ja" beantwortet wurde, ist die Bedingung E1==1. (1 ist ja der Code)
 



Theoretisch könntest Du auch auf den Text der Antwortoption testen, also auf "Ja"; dann musst Du aber die Eigenschaft ".shown" benutzen. E1.shown=="Ja"

Diese Eigenschaften findest Du hier
[url] www.limesurvey.org/manual/ExpressionScri...#Access_to_variables [/url]

Genauso geschieht es bei Mehrfachnennungen.
Hier gibt es ja Teilfragen, die entweder angewählt sein können oder nicht. Du siehst, eine angewählte Teilfrage wird mit "Y" gespeichert, eine nicht angewählte mit "" (nix)
Damit würde eine Bedingung zum Beispiel lauten M1_SQ001=="Y".
Da es Teilfragen gibt, muss hier der Fragencode und der Teilfragencode benutzt werden, mit Unterstrich verbunden.
Im Vorgriff: In zweidimensionalen Matrizen (Zahl / Text) werden entsprechend beide Teilfragencodes benutzt (Q1_Y001_X003)

Sie wird nun also gar nicht mehr angezeigt.
Wenn ich "isdochquatsch" dort eintrage: das Gleiche.

Du weißt, diese Bedingung ist ein logischer Term, der entweder WAHR oder FALSCH ist.
Wenn WAHR, wird die Frage eingeblendet, wenn FALSCH eben nicht.
Du könntest auch einmal einen Blick in mein Tutorial 4: Gleichungen, Zu- und andere Fälle,..." werfen.
Dort ist es noch einmal in Kap. 1.2. kurz erklärt.

So, jetzt mache Dich noch einmal an die Sache. Wenn dann noch Probleme sind, schicke den lss Export.

Joffm

Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 4 months 3 days ago by Joffm.
The following user(s) said Thank You: BaRoHL

Please Log in to join the conversation.

  • BaRoHL
  • BaRoHL's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
3 months 4 weeks ago - 3 months 4 weeks ago #266280 by BaRoHL
Replied by BaRoHL on topic Filterführung (Bedingungsdesigner)
Es funktioniert! Magic... :)
Vielen Dank @Joffm, das war wirklich hilfreich und die Info, die mir zum Verständnis gefehlt hat.

Einen schönen Tag noch!
Last edit: 3 months 4 weeks ago by Joffm. Reason: link entfernt

Please Log in to join the conversation.

Moderators: holchJoffmtpartner

Lime-years ahead

Online-surveys for every purse and purpose