Filterung (Single Choice) basierend auf einer vorherigen Frage (Single Choice)

More
4 years 8 months ago - 4 years 8 months ago #82955 by mars99
Ich habe das Problem das ich bei Frage 1 das Europäische Land (Code ist jeweils das 2-stellige Landeskürzel; ) abfrage und in der folgenden Frage die Region (nach NUTS-1 Region: epp.eurostat.ec.europa.eu/portal/page/po...clature/introduction ) abfragen möchte.
In der zweiten Frage sind alle NUTS-1 Codes und Bezeichnung enthalten, aber je zuvor gewähltem Land (2-stelligen Landeskürzel aus Frage 1) sollen nur noch die in Frage kommenden NUTS-1 Codes angezeigt werden.
Ich brauche also eine Filterung:
  1. Excludiere alle Codes, die nicht einen Teilbegriff aus der Frage 1 enthalten. oder
  2. Inkludiere nur Codes, die den Teilbegriff aus Frage 1 enthalten
Hier etwas konkreter die Frage 1 (Typ: "List (dropdown)"):
In welchem der folgenden europäischen Länder wohnen Sie?
Hier ein Auszug
CodeLand
DEGermany
GRGreece
ESSpain
FRFrance
IEIreland
ITItaly
LULuxembourg
NLNetherlands
PTPortugal
GBUnited Kingdom (Great Britain, Northern Ireland)

Hier dann ein Teil der Optionen von Frage 2 als Auszug (Typ: "List (dropdown)" oder etwas MultipleChoice mit max selection 1, etc.):
In welcher der folgenden Regionen wohnen Sie?
CodeRegion
DE1Baden-Württemberg
DE2Bayern
DE3Berlin
DE4Brandenburg
DE5Bremen
DE6Hamburg
DE7Hessen
DE8Mecklenburg-Vorpommern
DE9Niedersachsen
DEANordrhein-Westfalen
DEBRheinland-Pfalz
DECSaarland
DEDSachsen
DEESachsen-Anhalt
DEFSchleswig-Holstein
DEGThüringen
UKCNorth East, England
UKDNorth West, England
UKEYorkshire and the Humber, England
UKFEast Midlands, England
UKGWest Midlands, England
UKHEast of England
UKILondon, England
UKJSouth East, England
UKKSouth West, England
UKLWales
UKMScotland
UKNNorthern Ireland

Wie man sieht gibt es hier auch noch das Problem das z.B. bei "United Kingdom" (Frage 1), der Regionscode dummerweise nicht auch mit "GB" beginnt sondern leider mit "UK".
Ich brauche also quasi eine "Switch..case" Anweisung.

Es folgt noch eine dritte Frage wo nach der PLZ gefragt wird. Diese ist in den europäischen Ländern natürlich unterschiedlich strukturiert. Hier brauche ich also die Möglichkeit basierend auf der Antwort zur Frage 1, einen regulärem Ausdruck angeben zu können, der die Eingabe zumindest halbwegs verifiziert, damit nicht jeder Mist eingegeben werden kann.
"DE" ==> RegEx (simpelste Variante): \9{6}
"GB" ==> RegEx: ...

Auch das scheint derzeit nicht zu funktionieren, aber ich lasse mir gerne das Gegenteil beweisen. ;)

Ich könnte nach der ersten Landesfrage zwar theoretisch jeweils eine eigene Unterfrage erstellen (also eine Verzweigung nutzen), aber ich brauche die Ergebnisse aus Datenbank-Sicht gesehen in einer Spalte, für die spätere Statistik, sonst breche ich mir dort einen ab. Es ist davon auszugehen, das die Umfrage später europaweit durchgeführt wird.
Last Edit: 4 years 8 months ago by mars99.

Please Log in to join the conversation.

More
4 years 8 months ago #82966 by mars99
Ärgerlich das man nach einer Zeit den eigenen Eintrag nicht mehr editieren kann.

Nun also als extra Posting:
Ich habe noch etwas mit dem Expression Manager herumgespielt, da ich gehofft hatte damit ggf. die Filterung durchführen zu können.
Leider war ich damit nicht erfolgreich, generell könnte es damit aber funktionieren.

Please Log in to join the conversation.

More
4 years 8 months ago #82968 by holch
Ich vermute auch, dass der Expression Manager das schon kann. Allerdings würde ich dein Problem anders angehen: ich würde pro Land eine zusätzliche Frage einfügen, dann kannst du über conditions die jeweilige Frage einblenden.

I'm not a LimeSurvey GmbH member. I answer at the LimeSurvey forum in my spare time. No support via private message.
Some helpful links: Manual (EN) | Question Types | Workarounds

Please Log in to join the conversation.

More
4 years 8 months ago - 4 years 8 months ago #82969 by mars99
Hallo holch,

ja, theoretisch geht das. Allerdings bricht mir das wie am Ende des ersten Postings erwähnt bei den Statistiken das Genick. Ich brauche nämlich alle Antworten in einer Spalte der Datenbank, da eine EU-Statistik am Ende generiert werden soll.
Sobald ich eine neue Frage einbaue, gibt es eine neue Spalte in der Datenbank.

Es muss also über den Expression Manager (EM) laufen, der zumindest theoretisch als Lösung in Frage kommt. Leider ist die Dokumentation noch recht unverständlich. Ein paar Beispiele wären sicher hilfreich. Eine richtige "Filterung" habe ich auch noch nicht gesehen, nur die Variante mit einer Texteingabe, die dann in einer der foldenden Fragen wieder verwendet wird.
Ich kann es ja auch noch mal im englischen Teil des Forums posten.

Update 1:
Ich habe auf meinem privaten Testserver gerade noch mal ein EM-Beispiel importiert. Die normale Filterung setzt scheinbar voraus, dass der Code der Antwort identisch ist. Genau das geht bei mir ja nicht. Es ist in der Regel ein Teilstring, bei United Kindom ist es dann z.B. ein anderer Code "GB" --> "UK*".
Mir wäre schon geholfen, wenn ich die automatisch durchgeführte Filterung (durch Eingabe im Code) manuell eingeben könnte....vielleicht geht das sogar. Mal sehen ob ich im Laufe des Tages noch dazu komme. Ich muss mich heute und in den kommenden Tagen mit einem komplett anderen Thema befassen.

Update 2:
Das was bei der automatischen Filterung ("Array filter" bzw. "Array filter exclusion") automatisch passiert ist zu sehen, wenn man QA bei der zu filternden Frage aufruft (beispiel exclusion)...
Der interessante Teil findet sich in "Relevance [Validation] (Default)":
[VALUE: sq1] (((f_t1_1.NAOK != 'sq1') and (f_t1_2.NAOK != 'sq1') and (f_t1_3.NAOK != 'sq1') and (f_t1_4.NAOK != 'sq1') and (f_t1_5.NAOK != 'sq1')))	1st sub-question
[VALUE: sq2] (((f_t1_1.NAOK != 'sq2') and (f_t1_2.NAOK != 'sq2') and (f_t1_3.NAOK != 'sq2') and (f_t1_4.NAOK != 'sq2') and (f_t1_5.NAOK != 'sq2')))
Wenn ich den geklammerten Ausdruck "(((..) and (..)...))" selber eingeben könnte wäre ich fein raus.
Last Edit: 4 years 8 months ago by mars99.

Please Log in to join the conversation.

More
4 years 8 months ago #82971 by holch
Das was der Array filter da für dich macht ist EM Code erzeugen. Den solltest du durchaus auch per Hand eingeben können. Ich bin aber leider kein Experte was EM angeht.

Im Englischen Forum solltest du da vielleicht mehr Erfolg haben.

I'm not a LimeSurvey GmbH member. I answer at the LimeSurvey forum in my spare time. No support via private message.
Some helpful links: Manual (EN) | Question Types | Workarounds

Please Log in to join the conversation.