Welcome to the LimeSurvey Community Forum

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

Matrix filter aus Fragentyp Matrix

  • Wrankmore_A
  • Wrankmore_A's Avatar Topic Author
  • Offline
  • Junior Member
  • Junior Member
More
7 years 5 months ago #144033 by Wrankmore_A
Matrix filter aus Fragentyp Matrix was created by Wrankmore_A
Hallo,
Ich habe eine ganze Reihe aufeinander aufbauender Fragen erstellt. Soweit so gut, nun stehe ich vor folgendem Problem

Frage B11: Sind Ihre Kulturen Saat- oder Pflanzkulturen?
Typ: Matrix
Matrix_Filter: B2
Teilfragen: 1-41 die gleichen wie bei B2
Antwortmöglichkeiten: A1 (Saatkultur) A2 (Pflanzkultur)

Frage B12a: Welche Drilltechnik verwenden Sie? --> Frage soll nur für die Saatkulturen gestellt werden
Relevanz-Gleichung:
((B11_1.NAOK == "A1") or (B11_10.NAOK == "A1") or (B11_11.NAOK == "A1") or (B11_12.NAOK == "A1") or (B11_13.NAOK == "A1") or (B11_14.NAOK == "A1") or (B11_15.NAOK == "A1") or (B11_16.NAOK == "A1") or (B11_17.NAOK == "A1") or (B11_18.NAOK == "A1") or (B11_19.NAOK == "A1") or (B11_20.NAOK == "A1") or (B11_2.NAOK == "A1") or (B11_21.NAOK == "A1") or (B11_22.NAOK == "A1") or (B11_23.NAOK == "A1") or (B11_24.NAOK == "A1") or (B11_25.NAOK == "A1") or (B11_26.NAOK == "A1") or (B11_27.NAOK == "A1") or (B11_28.NAOK == "A1") or (B11_29.NAOK == "A1") or (B11_3.NAOK == "A1") or (B11_30.NAOK == "A1") or (B11_31.NAOK == "A1") or (B11_32.NAOK == "A1") or (B11_33.NAOK == "A1") or (B11_34.NAOK == "A1") or (B11_35.NAOK == "A1") or (B11_36.NAOK == "A1") or (B11_37.NAOK == "A1") or (B11_38.NAOK == "A1") or (B11_39.NAOK == "A1") or (B11_4.NAOK == "A1") or (B11_40.NAOK == "A1") or (B11_41.NAOK == "A1") or (B11_5.NAOK == "A1") or (B11_6.NAOK == "A1") or (B11_7.NAOK == "A1") or (B11_8.NAOK == "A1") or (B11_9.NAOK == "A1")) -->funktioniert!!!
Teilfragen: 1-41 die gleichen wie bei B2
Antwortmöglichkeiten: A1, A2, A3, A4

Wie setze ich den Matrix Filter richtig? Es sollen ja nur die Kulturen angezeigt werden, die in der B11 als Saatkulturen angeklickt wurden. Habs auch über die Teilfragenrelevanz (!is_empty(B11_1_A1) ect.) versucht aber dann werden mir immer alle Möglichkeiten angezeigt.

Vielen Dank für die Hilfe schon im Vorraus.
The topic has been locked.
  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
7 years 5 months ago - 7 years 5 months ago #144035 by Joffm
Replied by Joffm on topic Matrix filter aus Fragentyp Matrix
Hallo, Wrankmore_A,

nee, komm, mach doch die Fragen in ein kleines Beispiel, (müssen ja nicht 41 Kulturen sein), dass Du uns schickst.
Sonst muss ich hier versuchen, Deine Studie nachzubauen.

Was ich erkenne, ist, dass in B11 natürlich nur die Kulturen gefragt werden, die er überhaupt hat (in B2).
Aber mehr will ich jetzt nicht denken.

Nichts für ungut, Du weißt, ich helfe gern.

Eines fällt mir aber bei dieser langen Relevanzgleichung ein:
Du willst doch nur wissen, ob wenigstens einmal "A1" genannt wurde.

Schau Dir dazu mal die Funktion "countifop" und "that" an. (Manual: Expression Manager / Implemented Funktions)
Etwas aus einer anderen Antwort von mir:

3. Use of the function countifop (Count the number of answered questions in the list which pass the criteria (arg op value))
{countifop('==',5,A1Q1_SQ001,A1Q1_SQ002,A1Q1_SQ003,A1Q1_SQ004,A1Q1_SQ005)}
You see the first two parameters, which say "equal" and "5".
Then the five subquestions.

4. Use of countifop and "that"
{countifop('==',5,that.A1Q1.NAOK)}
You count the appearance of "=5" in the whole question A1Q1.
(The 'that' variable is like the 'self' variable, but lets you refer to other questions.)
Beause I set the relevance in the next question I refer to the "other" question A1Q1


Bei Dir wäre es dann: countifop(...)>0

Bis dann
Joffm

Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 7 years 5 months ago by Joffm. Reason: Typo
The topic has been locked.
  • Wrankmore_A
  • Wrankmore_A's Avatar Topic Author
  • Offline
  • Junior Member
  • Junior Member
More
7 years 5 months ago #144059 by Wrankmore_A
Replied by Wrankmore_A on topic Matrix filter aus Fragentyp Matrix
Hallo joffm,
Ja ich weiß du hilfst gerne und gut :)
Das letzte Mal hatt ich bei der Beschreibung etwas wesentliches vergessen, weswegen ich deine Antwort nicht verstanden habe und es erst nach etlichen Rumprobieren und fluchen geklappt hat. Dieses Problem wollt ich nicht nocheinmal aber gut ich versuchs :)

Ich versuchs erst einmal mit deiner Formel, das würde einiges vereinfachen aber löst nicht mein Problem, denn dieser Teil funktioniert gut. Die Fragen nach B11 werden nur angezeigt, wenn das entsprechende in B11 angeklickt wurde.

In B11 wird gefragt welche der angebauten Kulturen(Frage B2) Saatkulturen (A1) und welche Pflanzkulturen (A2) sind. Die nächsten Fragen unterscheiden sich dann zwischen den beiden Optionen. Der Matrix Filter B2 reicht somit nicht, da ja dann nur alle angebauten Kulturen (eben die aus B2) angezeigt werden. Ich brauche einen Filter, der mir alle Saatkulturen anzeigt. Also alle aus B11, die mit A1 beantwortet wurden.
Dabei ist B11 eine Matrix mit Radiobutton und die drauffolgenden Fragen, welche gefiltert werden sollen ebenso.

Hoffe so ist es verständlicher
The topic has been locked.
  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
7 years 5 months ago #144071 by Joffm
Replied by Joffm on topic Matrix filter aus Fragentyp Matrix
Hallo, Wrankmore_A,
soweit war es mir schon klar.
Ich wollte eigentlich wissen, welche Fragen nach der Aufteilung in die zwei Gruppen kommen.
Gut, wir haben die Frage B11.
Manche Kulturen sind Saat, manche das andere.
Also gibt es danach eine Gruppe mit den Fragen zu "Saat" und eine Gruppe mit den Fragen zu "Pflanz".
Es geht ja darum, dass die "richtigen" Kulturen in die jeweilige Gruppe fallen.

Ich werde mir mal so etwas anlegen, und schauen.
Dauert aber bis heute nachmittag, weil ich jetzt zu einem Gespräch muss.

Bis dann
Joffm

P.S.
Die Erwähnung von countifop war auch nur gedacht, um Deine lange - natürlich völlig richtige - Gleichung abzukürzen.

Volunteers are not paid.
Not because they are worthless, but because they are priceless
The topic has been locked.
  • Wrankmore_A
  • Wrankmore_A's Avatar Topic Author
  • Offline
  • Junior Member
  • Junior Member
More
7 years 5 months ago #144072 by Wrankmore_A
Replied by Wrankmore_A on topic Matrix filter aus Fragentyp Matrix
Dankeschön,

Noch eine Frage zum countifop
nach
The topic has been locked.
  • Wrankmore_A
  • Wrankmore_A's Avatar Topic Author
  • Offline
  • Junior Member
  • Junior Member
More
7 years 5 months ago #144075 by Wrankmore_A
Replied by Wrankmore_A on topic Matrix filter aus Fragentyp Matrix
... den beiden Einträgen habe ich die countifop Funktion als Relevanzgleichung für die Frage angegeben. Bekomme aber immer folgende Fehlermeldung





Woran liegt es?
System der Frage ist übrigens das Gleiche wie bei den Fragen B11 und folgende nur, dass hier eine Matrix (text)
The topic has been locked.
  • holch
  • holch's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
7 years 5 months ago #144082 by holch
Replied by holch on topic Matrix filter aus Fragentyp Matrix
Wenn du mit der Maus drübergehst sollte es dir sagen, was das Problem ist.

Aber meiner Meinung nach liegt es dran, dass es die Subquestion B16.SQ001 überhaupt nicht gibt.

Du solltest dir ansehen, wie deine Fragen aufgebaut sind. Vermutlich kannst du auf die Subquestion SQ001 der Frage B16 mit B16_SQ001 zugreifen.

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

The topic has been locked.
  • Wrankmore_A
  • Wrankmore_A's Avatar Topic Author
  • Offline
  • Junior Member
  • Junior Member
More
7 years 5 months ago #144087 by Wrankmore_A
Replied by Wrankmore_A on topic Matrix filter aus Fragentyp Matrix
SQ001 ist eine Antwortoption der Frage B16. Also beschreibt doch SQ001 die gesamte Spalte



Es funktioniert auch nicht mit (countifop(">",0,that.B16_SQ001.NAOK))
The topic has been locked.
  • Wrankmore_A
  • Wrankmore_A's Avatar Topic Author
  • Offline
  • Junior Member
  • Junior Member
More
7 years 5 months ago #144089 by Wrankmore_A
Replied by Wrankmore_A on topic Matrix filter aus Fragentyp Matrix
ich habs auh mit der Endung .value probiert, da es sich ja um eine Zahleneingabe handelt.
The topic has been locked.
  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
7 years 5 months ago - 7 years 5 months ago #144093 by Joffm
Replied by Joffm on topic Matrix filter aus Fragentyp Matrix
Hallo, Wrankmore,

hier ein kleines Beispiel.

Da ich ja nicht weiß, welche Fragen du nach B11 in den beiden Gruppen stellen willst, habe ich mal nach den Vorteilen als Txtfrage gefragt.
Wichtig ist ja nur, dass die richtigen Pflanzen kommen.

Überigens bei countifop wird die gesamte Frage genommen, keine Teilfragen,
also nicht countifop("==",1,Q1_SQ001.NAOK), sondern countifop("==",1,Q1.NAOK)
Ist im Beispiel auch drin.

Viel Glück
Joffm

Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 7 years 5 months ago by Joffm.
The topic has been locked.
  • Wrankmore_A
  • Wrankmore_A's Avatar Topic Author
  • Offline
  • Junior Member
  • Junior Member
More
7 years 5 months ago - 7 years 5 months ago #144178 by Wrankmore_A
Replied by Wrankmore_A on topic Matrix filter aus Fragentyp Matrix
Vielen lieben Dank!!! Hat perfekt geklappt! :laugh:

noch eine Frage zum "that" hätte ich:
in welchen Kombinationen oder unter welchen Bedingungen kann ich es verwenden?
Ich würde gerne
!is_empty(that.D2.A1.NAOK) als Teilfragenrelevanzgleichung einer Matrix benutzen, wobei D2 die Fragecodierung und A1 die Antwortmöglichkeit einer vorherigen Matrix (Text) ist. Die Teilfrage soll nur angezeigt werden, wenn in der Spalte A1 ein Eintrag gemacht wurde.






Es scheint, als hätte ich mal wieder einen Denkfehler, denn in der Überprüfung zeigt er mit immer Fehler an.
Oder geht es nicht anders als bei Teilfrage 5 und ich muss wirklich alles einzeln eingeben?
Attachments:
Last edit: 7 years 5 months ago by Wrankmore_A.
The topic has been locked.
  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
7 years 5 months ago #144187 by Joffm
Replied by Joffm on topic Matrix filter aus Fragentyp Matrix
Bedenke "self" und "that" beziehen sich auf die gesamte Frage.
Du kannst es gut in dem Beispiel sehen, welches ich geschickt habe.
In die Relevanz der Gruppe habe ich geschrieben "countifop("==","A1",that.S2.NAOK)>1"
Wenn man sich die Gruppe aber anschaut in der Gruppenübersicht, steht dort die Auflösung dieser Kurzform, nämlich:
"countifop("==", "A1", S2_SQ001.NAOK, S2_SQ002.NAOK, S2_SQ003.NAOK, S2_SQ004.NAOK, S2_SQ005.NAOK, S2_SQ006.NAOK, S2_SQ007.NAOK, S2_SQ008.NAOK, S2_SQ009.NAOK) > 1"
Du siehst, hier werden alle subquestions miteinbezogen.

Du willst aber D2_1 anzeigen, wenn in der Spalte D1_A1 irgendetwas beantwortet ist.

Ich habe das alte Beispiel erweitert; die beiden Fragen sind in der Gruppe "Matrix_Text" (jedenfalls, wie ich sie mir vorstelle)
Also die Items von D2 werden gezeigt, wenn in der entsprechenden Spalte von D1 etwas steht.
Darstellung ist "Gruppe für Gruppe"; dann sieht man den Effekt besser.

Außerdem kann ich Dir die Demo "array_filter_tests" ans Herz legen. Neben den anderen Demos.
Du findest diese alle im Verzeichnis "docs/demosurveys" der Installationsdatei.

Bis dann
Joffm

Volunteers are not paid.
Not because they are worthless, but because they are priceless
The topic has been locked.
Moderators: Joffm

Lime-years ahead

Online-surveys for every purse and purpose