Welcome to the LimeSurvey Community Forum

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

Matrix Zahleneingabe beschränken

  • Marion_test
  • Marion_test's Avatar Topic Author
  • Offline
  • Junior Member
  • Junior Member
More
9 months 2 weeks ago #244905 by Marion_test
Matrix Zahleneingabe beschränken was created by Marion_test
Bitte helfen Sie uns, Ihnen zu helfen und füllen Sie folgende Felder aus:
Ihre LimeSurvey-Version: [siehe rechts unten auf Ihrem LimeSurvey-Verwaltungsbildschirm]
Eigener Server oder LimeSurvey-Cloud:  LimeSurvey Cloud
Version 5.6.29
Genutzte Designvorlage: fruity, aber erweitert
==================
Hallo liebes Lime-Survey-Team,

ic hab auf der X-Scale zwei Teilfragen. Bei einer von beiden (Success rate (percentage of positive outcome)) würde ich gerne die Eingabe auf 100 beschränken, da es in % angegeben werden soll. Ich hab es schon mit Validierungen versucht, aber ich bin leider noch nicht auf die richtige Lösung gekommen.
Vielleicht kann mir jemand ja helfen.

Vielen lieben Dank!

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
9 months 2 weeks ago - 9 months 2 weeks ago #244907 by Joffm
Replied by Joffm on topic Matrix Zahleneingabe beschränken
Hallo, Marion,
zunächst der Hinweis:
Wir erbitten immer lss-Exporte, nicht lsq, nicht lsg.
Warum?
lsq- und lsg-Exporte sind sprachsensitiv. D.h. man kann sie nur in Umfragen mit derselben Basissprache importieren (selbst "deutsch" und "deutsch(Du)" geht in die Hose).
Außerdem fehlen die umfrageweiten Einstellungen, die sehr wichtig sein können (z.B. ob Du "Frage für Frage" oder "Gruppe für Gruppe" anzeigen willst)
Und als Letztes: Es erleichtert uns freiwilligen Helfern die Arbeit.

Gut, ich habe Deine Gruppe einmal importiert.
Zunächst:
Ich würde für die Anzeige der Matrix der Matrix-Filter benutzen.

Und jetzt kommt Dein Verständnisfehler
Du hast als Validierungsgleichung genommen (self.sq_SQ002) <=100
Wenn Du diese einmal in den Fragetext schreibst (mit geschweiften Klammern) siehst Du, wie "self" dies expandiert.
Nämlich so
G02Q17_SQ001_SQ002, G02Q17_SQ002_SQ001, G02Q17_SQ002_SQ002, G02Q17_SQ014_SQ002, G02Q17_SQ015_SQ002, G02Q17_SQ016_SQ002, G02Q17_SQ017_SQ002, G02Q17_SQ018_SQ002, G02Q17_SQ019_SQ002, G02Q17_SQ013_SQ002 <= 100

Zunächst ist dies natürlich mathematischer Unsinn.
Aber Deine Gleichung schließt ja auch alle Zellen ein, die irgendwie "SQ002" enthalten; das ist der Sinn von "self" und "that".
Und so kommt dort auch "G02Q17_SQ002_SQ001" hinein, die ja gar nicht angesprochen werden soll

Sie werden hauptsächlich in Aggregierungsfunktionen wie count, sum, list, join, usw.  verwendet.

Du musst in Deinem Fall jede einzelne Zelle validieren: also (ich habe umkodiert, um den Matrixfilter anwenden zu können, und auch die x-Achse mit "X001" und "X002")
self.sq_1_X002.NAOK<101 and self.sq_2_X002.NAOK<101 and self.sq_3_X002.NAOK<101 and self.sq_4_X002.NAOK<101 and self.sq_5_X002.NAOK<101 and self.sq_6_X002.NAOK<101 and self.sq_7_X002.NAOK<101 and self.sq_8_X002.NAOK<101 and self.sq_other_X002.NAOK<101
Ich habe auch "self" benutzt, aber Du siehst, dass jedesmal nur eine wohldefinierte Zelle angesprochen wird.
Es war mir einfach zu lästig, immer "G02Q17" zu schreiben.
Außerdem erlaubt es Dir den Fragecode zu ändern, ohne die Validierung ebenfalls ändern zu müssen.




Bis dann
Joffm
 

Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 9 months 2 weeks ago by Joffm.

Please Log in to join the conversation.

  • Marion_test
  • Marion_test's Avatar Topic Author
  • Offline
  • Junior Member
  • Junior Member
More
9 months 2 weeks ago #244915 by Marion_test
Replied by Marion_test on topic Matrix Zahleneingabe beschränken
Hallo lieber Joffm,

vielen lieben Dank für die schnelle Antwort und entschuldige bitte, dass ich kein lss-Export hochgeladen habe. Für das nächste Mal weiß ich Bescheid.
Ich muss zugeben, dass ich den Matrix-Filter trotz dem Beispiel im Handbuch noch nicht ganz verstanden habe. Trage ich dort den Code, von der vorherigen Frage ein (in meinem Fall Q03), damit dann alle antworten, die in Q03 ausgewählt wurden, in meiner Matrix landen? Und vielen Dank für den Code. Dumme Frage, aber ich trage den Code schon in die Teilfragen-Validierung ein , oder? Und kann es sein, dass an den Stellen, wo jetzt AND steht ein OR gehört? Weil ich komm nur zur nächsten Frage weiter, wenn ich alle Checkboxen von der vorherigen Frage anklicke und überall nicht über 100% in der 2ten Spalte komme. Wenn ich nur eine Antwort auswähle und dort den korrekten Wert in Spalte 2 eingebe lässt mich LimeSurvey trotzdem nicht zur nächsten Frage.

Vielen Dank schon mal im Voraus und mit freundlichen Grüßen

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
9 months 2 weeks ago - 9 months 2 weeks ago #244916 by Joffm
Replied by Joffm on topic Matrix Zahleneingabe beschränken
Hallo, Marion,

zum Matrixfilter:
1. Ja Du trägst im Feld "Logik / Matrixfilter" den Code der Frage ein, auf den er sich beziehen soll, also hier Q03
2. Ganz wichtig: Die Teilfragencodes müssen in beiden Fragen identisch sein.
Beispiel:
Erste Frage:
Welche Automarken kennst Du? (Mehrfachnennung)
1: Alfa Romeo
2: BMW
3: Citroen
4: Daihatsu

Zweite Frage:
Welche Marke würdest Du am ehesten kaufen? (Einfachnennung)
Und auch wieder
1: Alfa Romeo
2: BMW
3: Citroen
4: Daihatsu

Gerade in diesem Fall (LimeSurvey bietet ja standardmäßig diese "bescheuerten" Vorgaben "SQ001", "SQ002" bei Mehrfach, und "AO01", "AO02",... bei Einfachfragen an) musst Du diese Codes anpassen.
Das solltest Du übrigens immer.
Denn sobald Du eine Itembatterie mit Skalen abfragst, willst Du ja später statistische Werte und Tests berechnen. Mach das mal mit diesen Texten.

Jetzt noch eine kleine Ergänzung:
Wenn Du nun in der zweiten Frage einen Code benutzt, der nicht in der ersten vorkommt, wie
9: keine Angabe
wird diese Option immer angezeigt; der Matrixfilter greift nur auf die übereinstimmenden Codes zu.

Für solche "Basics" gibt es auch die sehr guten, kurzen Youtube-Videos unseres LimeSurvey-Partners Paul Borsdorf.
Dummerweise gibt es in seiner neuesten Playlist über LS 5.x. (noch) nichts über den Matrixfilter.
Für Fortgeschrittene, denen es auf zusätzliche besonderen Möglichkeiten beim "Look&Feel" ankommt, gibt es meine Tutorials.
Diese findest Du hier im deutschen Teil auf einer der nächsten Seiten, so 6,7 oder schon 8.

Und kann es sein, dass an den Stellen, wo jetzt AND steht ein OR gehört?

Oh, nein!!!
Denn, wie in der Schule gelernt, eine ODER-Verknüpfung ist WAHR, wenn ein Term WAHR ist.
Damit könntest Du locker in die erste Teilfrage 222% eintragen, in die zweite 17% -> Die Validierung ist WAHR.

Ich vermute einfach, Dein Fehler liegt bei der Anzeige der zweiten Frage.
Hier wäre jetzt ein lss-Export angebracht.

Und etwas, was mir noch eingefallen ist:
Du hast in der zweiten Frage die Teilfragen-Texte mithilfe der Property ".shown" angezeigt.
Das ist im Grunde okay, ABER hast Du Dir schon einmal die Antworttabelle angesehen?
Dort wird nämlich ebenfalls nur {Q03_1.shown} angezeigt
 
Beim Export nach SPSS ebenfalls
 
Das ist alles zu verschmerzen (Du musst dann halt die richtigen Texte wieder einfügen), aber das solltest Du Dir ersparen und gleich in LimeSurvey die Texte eintragen.

Damit komme ich zum Schluss.
Bitte, denke daran, dass sich ein Test nicht darauf beschränkt, die Umfrage in LimeSurvey durchzuklicken.
Aktiviere sie, gib einige wohldefinierte Daten ein (d.h. Du notierst, was Du wo eingegeben hast),  und exportiere die Antworten in das von Dir später benutzte Statistik-Tool.
Erst wenn Du dort zufrieden bist, gut mit den Daten arbeiten kannst, ist der Test beendet.
Dann kannst Du ja wieder stoppen, um evtl. Änderungen vorzunehmen.

Wie oft haben wir hier mit der Frage zu tun "Ich habe,..., jetzt ist aber in SPSS..., was kann ich jetzt tun?"
Und - zum Glück in sehr seltenen Fällen - ist dann die Antwort "Gar nichts, dumm gelaufen"

Bis dann
Joffm
 

Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 9 months 2 weeks ago by Joffm.

Please Log in to join the conversation.

  • Marion_test
  • Marion_test's Avatar Topic Author
  • Offline
  • Junior Member
  • Junior Member
More
9 months 2 weeks ago #244917 by Marion_test
Replied by Marion_test on topic Matrix Zahleneingabe beschränken
Hallo Joffm,

nochmals vielen Dank für deine erneute schnelle und ausführliche Antwort. Das mit dem Matrixfilter habe ich jetzt soweit verstanden, vielen Dank. Die Videos sind ein super Hinweis, die werde ich mir nachher erstmal anschauen.
Stimmt, das mit den ODER-Verknüpfungen macht dann wirklich nicht so viel Sinn. Ich hab dir (dieses mal im lss-Export) meine Umfrage in den Anhang gepackt. Vielleicht findest du den Fehler. :)
Und zu deiner letzten Anmerkung, ja das ist mir bereits aufgefallen, aber ich wusste nicht wie ich das beheben kann. Ich war damals einfach nur happy, dass ich die angeklickte Antwort mithilfe der Property ".shown" in die Matrix bekommen habe.  

Liebe Grüße,
Marion

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
9 months 2 weeks ago - 9 months 2 weeks ago #244918 by Joffm
Replied by Joffm on topic Matrix Zahleneingabe beschränken
Hallo,
Du hast Recht.

Die Validierungsfleichung, die übrigens nicht in "Teilfragenvalidierung" gehört) muss noch etwas aufgebohrt werden.
Zu:
(is_empty(self.sq_1_X002.NAOK) OR self.sq_1_X002.NAOK<101) AND (is_empty(self.sq_2_X002.NAOK) OR self.sq_2_X002.NAOK<101) AND (is_empty(self.sq_3_X002.NAOK) OR self.sq_3_X002.NAOK<101) AND (is_empty(self.sq_4_X002.NAOK) OR self.sq_4_X002.NAOK<101) AND (is_empty(self.sq_5_X002.NAOK) OR self.sq_5_X002.NAOK<101) AND (is_empty(self.sq_6_X002.NAOK) OR self.sq_6_X002.NAOK<101) AND (is_empty(self.sq_7_X002.NAOK) OR self.sq_7_X002.NAOK<101) AND (is_empty(self.sq_8_X002.NAOK) OR self.sq_8_X002.NAOK<101) AND (is_empty(self.sq_other_X002.NAOK) OR self.sq_other_X002.NAOK<101)

Also: Entweder ist die Zelle leer (wenn sie nicht angezeigt wird) oder der Wert is kleiner als 101.
Sie kann am Schluss ja nicht leer bleiben, da es eine Pflichtfrage ist.

Und wenn Du mit dem Matrixfilter arbeitest, sollte die Teilfragenrelevanz nicht noch zusätzlich eine Bedingung enthalten.

Hier die lss zurück.
 

File Attachment:

File Name: limesurvey...3156.lss
File Size:242 KB


Viel Erfolg

Joffm

P.S.
Ich habe gerade noch gesehen, dass in Fragetext von Q04 diese Validierung angezeigt wird.
Das kann natürlich weg, diente nur für mich zum Test.

P.P.S.
Und Deine "wilde" Bedingung für Q07.
Ein kurzer Ersatz dafür wäre: count(that.Q06)>0
Hier kannst Du doch auch den Matrixfilter benutzen.

 

Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 9 months 2 weeks ago by Joffm.

Please Log in to join the conversation.

  • Marion_test
  • Marion_test's Avatar Topic Author
  • Offline
  • Junior Member
  • Junior Member
More
9 months 2 weeks ago #244944 by Marion_test
Replied by Marion_test on topic Matrix Zahleneingabe beschränken
Hallo Joffm,

vielen Dank für deine hilfreichen Tipps! Ich bin schon ein gutes Stück weiter. :)
Ich habe jetzt nur 2 neue Probleme. Einmal wird mir bei den Indications jetzt immer "true" unter der Frage "please specify" angezeigt, wenn success rate <100 ist. Kann man das irgendwie verschwinden lassen?
Und Danke für den Tipp bei Q07, das hat super funktioniert. Allerdings habe ich jetzt, nachdem ich eine Nebenwirkung ausgewählt habe, immer ein leeres Feld in der Matrix. (Wenn ich alle Nebenwirkungen anklicke, dann passt die Anzahl der Felder wieder). Woran liegt das?

Vielen Dank für deine Hilfe!

Liebe Grüße
Marion

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
9 months 2 weeks ago - 9 months 2 weeks ago #244945 by Joffm
Replied by Joffm on topic Matrix Zahleneingabe beschränken
Hallo, Marion

Kann man das irgendwie verschwinden lassen?

Das hatte ich doch geschrieben

P.S.
Ich habe gerade noch gesehen, dass im Fragetext von Q04 diese Validierung angezeigt wird.
Das kann natürlich weg, diente nur für mich zum Test.

Also, lösche diesen Text.
Es ist eben immer sinnvoll, solche Validierungs"versuche" einfach in den Fragetext als Gleichung (mit geschweiften Klammern) zu schreiben.
Da sieht man schnell, ob es klappt, oder wo noch etwas geschraubt werden muss.
Und hier zeigt sie ja auch den Erfolgsfall. Wenn 100, dann WAHR.

Und jetzt schau Dir bitte den Unterschied der Teilfragen-Codierungen von G02Q07 und Q07 an!
Hier liegt nämlich genau dieser Fall vor.

Wenn Du nun in der zweiten Frage einen Code benutzt, der nicht in der ersten vorkommt, wie
9: keine Angabe
wird diese Option immer angezeigt; der Matrixfilter greift nur auf die übereinstimmenden Codes zu.



Und dann noch etwas Mathematik:
Du hast eine Bedingung in Q06 (((!is_empty(Q05.NAOK) && (Q05.NAOK == 1))))
Das stammt aus der Logikdatei, oder?
Nur: Wenn Q05 ==1 ist, dann ist sie ja automatisch "nicht leer"; also reicht Q05==1
Selbst das NAOK ist hier unnötig. NAOK ist nur dann wichtig, wenn Du Berechnungen anstellen willst, z.B. "sum(that.Q1)", wobei Q1 eine Matrix sein soll.
Falls Q1 dann keine Pflichtfrage ist, könnten Teilfragen leer sein und die Summenbildung liefert ein NAN.
Nur als Hinweis:


Und jetzt noch eine Frage:
In Q03 steht dieser Code
Code:
 <script charset="utf-8" type="text/javascript">
  $(document).ready(function() {
    $( '#question{QID} .question-item:eq(0)').addClass('hide-pseudo-elements').find('input.checkbox').remove();
    $( '#question{QID} .question-item:eq(9)').addClass('hide-pseudo-elements').find('input.checkbox').remove();
    $( '#question{QID} .question-item:eq(13)').addClass('hide-pseudo-elements').find('input.checkbox').remove();
  });
</script>


Wozu soll er dienen?
Dieses script dient ja dazu, Übertexte zur Gruppierung anzuzeigen; allerdings fehlt noch das zugehörige css.
Steht in meinem Tutorial 2: Mehrfachnennung,...", Kapitel 1.1.

Joffm

 

Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 9 months 2 weeks ago by Joffm.

Please Log in to join the conversation.

  • Marion_test
  • Marion_test's Avatar Topic Author
  • Offline
  • Junior Member
  • Junior Member
More
9 months 2 weeks ago #244954 by Marion_test
Replied by Marion_test on topic Matrix Zahleneingabe beschränken
Guten Morgen Joffm,

vielen Dank für die Antwort, ich konnte jetzt alle Bugs beheben.
Ja die Bedingung in Q06 (((!is_empty(Q05.NAOK) && (Q05.NAOK == 1)))) stammt aus der Logikdatei. Habe ich jetzt auch geändert, vielen Dank.
Der Code in Q03 ist noch von einer anderen Umfrage, in der ich das Script verwendet habe. Die Umfrage habe ich dann kopiert und als Grundlage für diese Umfrage verwendet und wohl vergessen das Script zu löschen.

Meine Fragen sind (fürs erste) erstmal geklärt vielen Dank nochmal für deine Hilfe! :)

Liebe Grüße
Marion

Please Log in to join the conversation.

Moderators: Joffm

Lime-years ahead

Online-surveys for every purse and purpose