Welcome to the LimeSurvey Community Forum

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

Freitextfrage bei niedrigestem Matrix Umfragewert anzeigen

  • Nosedive
  • Nosedive's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
3 months 1 week ago - 2 months 1 week ago #266589 by Nosedive
Ihre LimeSurvey-Version: LimeSurvey Community Edition Version 6.1.2+230606 
Eigener Server oder LimeSurvey-Cloud: on-prem
Genutzte Designvorlage: Extended_fruity (Monochrome template)
==================
Hallo.
Ich möchte eine Umfrage mit 15x Matrix 5 Punkt Fragen erstellen. Zusätzlich möchte ich eine Freitextfrage erstellen, die nach Beantwortung aller Fragen unter der Frage mit dem niedrigsten Matrix-Antwortwert auftauchen soll. Die Absicht ist, den Benutzer nur nach weiteren Details zu seiner kritischsten Bewertung zu fragen. Ich habe bereits mit dem Bedingungsdesigner herumgespielt, aber ich habe keine Lösung gefunden. Ich habe auch einen Artikel zu dem Ausdrucks Manager gefunden, aber "Programmieren" ist wirklich nicht meine Stärke und ich war ehrlich gesagt ein wenig überfordert. Ich wäre für jede konstruktive Hilfe dankbar wie man das oben genannte bauen kann.

Viele Grüße
Nosedive aka Nic
Last edit: 2 months 1 week ago by c_schmitz.

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
3 months 1 week ago - 3 months 1 week ago #266594 by Joffm
Hallo,

Zusätzlich möchte ich eine Freitextfrage erstellen, die nach Beantwortung aller Fragen unter der Frage mit dem niedrigsten Matrix-Antwortwert auftauchen soll.

Wirklich? Unter der Teilfrage mit dem niedrigsten Wert?
a. kannst Du nicht einfach in einer Frage so mir nichts dir nichts eine andere dazwischenschieben.
Man könnte dies natürlich hinbekommen, indem man 15 Matrixfragen  - mit nur einer Teilfrage - erstellt, hinter jeder die zugehörige Textfrage, und alles mit den css-Klassen "no-question" und "no-bottom" ineinanderschiebt, dass es wie eine einzige Frage aussieht.
KO-Argument: Es würden immer die Texte angezeigt werden, die dem aktuellen Minimum entsprechen. Kommt dann ein neues Minimum, ...
b. würde dies bedeuten, dass der Teilnehmer wieder nach oben scrollen müsste, um diese Frage zu beantworten.

Also wirst Du diese Begründungsfragen erst im Anschluss an die Matrix stellen.
Und es ist auch nicht "das Gelbe vom Ei", eine 5-Punkt-Matrix zu verwenden. Hier musst Du die Skala ja noch erklären.
Nimm eine normale Matrix und beschrifte die Skalenpunkte!

Was passiert, wenn es diesen "niedrigsten Wert" mehrfach / häufig  gibt?
Wann dies erlaubt sein soll, musst Du eben wirklich auch 15 Textfragen (QT1 - QT15) anlegen.
Dann ist auch die Bedingung für deren Anzeige trivial, nämlich
QT1: QCodeMatrix_SQ001==min(that.QCodeMatrix.NAOK)
QT2: QCodeMatrix_SQ002==min(that.QCodeMatrix.NAOK)
usw.

Du könntest natürlich auch im Falle von mehrfachem Minimum eine Frage zufällig auswählen.
Dann genügt wieder nur eine Textfrage, in welche Du den entsprechenden Text dynamisch "einpipst".
Das kann man mit ExpressionScript mithilfe einiger Gleichungen (genau gesagt, drei) lösen.
Lies einmal mein "Tutorial 4: Gleichungen, Zufall,..." Dort ist so etwas in Kapitel 3.3.1. beschrieben.
Tutorial ist hier im deutschen Forum, Seite 13, oder irgendwo dort.

So, jetzt ist der Ball wieder bei Dir.
Erläutere, wie es genau aussehen soll und schicke den lss-Export eines Prototypen.

Joffm


 

Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 3 months 1 week ago by Joffm.

Please Log in to join the conversation.

  • Nosedive
  • Nosedive's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
3 months 5 days ago #266699 by Nosedive
Hallo Joffm.
"Und es ist auch nicht "das Gelbe vom Ei", eine 5-Punkt-Matrix zu verwenden. Hier musst Du die Skala ja noch erklären.
Nimm eine normale Matrix und beschrifte die Skalenpunkte!"

Perfekt. Das ist viel erkennbarer. Guter Tipp.

"Was passiert, wenn es diesen "niedrigsten Wert" mehrfach / häufig  gibt?
Wann dies erlaubt sein soll, musst Du eben wirklich auch 15 Textfragen (QT1 - QT15) anlegen.
Dann ist auch die Bedingung für deren Anzeige trivial, nämlich
QT1: QCodeMatrix_SQ001==min(that.QCodeMatrix.NAOK)
QT2: QCodeMatrix_SQ002==min(that.QCodeMatrix.NAOK)
usw."

Nicht trivial genug für mich :D Habe versucht das umzusetzen. Also Textfrage(n) am Ende für die Antwort(en) mit dem kleinsten Wert. Gibt es zwei gleiche niedrigste Werte soll für beide die Textfrage angezeigt werden. Meine Matrix Fragen lauten G01Q01 und G01Q02. Die Textfragen lauten G01QT01 und G01QT02. 
Basierend auf deinem Vorschlag habe ich folgende Bedingungen getestet:G01QT01: QCodeMatrix_G01Q01==min(that.QCodeMatrix.NAOK) 
ging nicht. Das rot markierte wurde als Fehler deklariert -> "undefinierte Variable"

Nach etwas Chat GPT befragen und rumprobieren habe ich dann folgende funktionierende Lösung gefunden. Ist leider nicht sehr elegant / skalierbar da ich so jede Frage einzeln aufführen muss. Vermutlich geht das besser.
G01Q01_SQ001 == min(G01Q01_SQ001.NAOK, G01Q02_SQ001.NAOK)

Die LSS Datei habe ich zusätzlich mal angehangen. Danke für deine Vorschläge.

Gruß 
Nosedive aka Nic

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
3 months 5 days ago - 3 months 5 days ago #266702 by Joffm
Hallo,
also jetzt verstehe ich nichts mehr.
Zuerst sprichst Du von einer 15x Matrix, von einer.
In Deinem Text kann man erkennen, dass es anscheinend zwei Matrizen sind.
Und in der Umfrage benutzt Du im Grunde gar keine Matrizen (bzw. Matrizen mit jeweils nur einer Teilfrage); d.h. dies könntest Du auch mit einer single-Frage mit bootstrap-buttons erstellen.

Also, was ist es nun?
Eine Matrix mit 15 Teilfragen?
Oder willst Du die 15 Teilfragen als eigenständige Fragen stellen?

So
 
oder so
 
oder so
 

Und wie ich schon schrieb (KO-Kriterium) geht es so natürlich nicht:
Wenn noch gar nichts gewählt ist, werden alle Begründungsfragen angezeigt
 
Ist eine beantwortet, wird die Begründung der anderen Frage angezeigt (da ja der leere Wert kleiner ist)
 
Wird dann die zweite Frage auch beantwortet, kann die Begründungsfrage einfach switchen
 
Das ist alles nicht besonders schön.

Da Du ja warten musst, bis alle Fragen - ob es nun eine Matrix ist, oder eine andere Darstellung - beantwortet sind, muss in die Bedingung noch ein bisschen mehr.
Zum Beispiel könntest Du die Antworten zählen. Nur wenn alle beantwortet sind, kommen die Begründungsfragen

Also entscheide Dich zunächst, wie Deine Fragen überhaupt dargestellt werden sollen. Dann reden wir weiter.

Und hierzu:

QCodeMatrix_G01Q01==min(that.QCodeMatrix.NAOK) 
ging nicht. Das rot markierte wurde als Fehler deklariert -> "undefinierte Variable"

Na, komm.
Du schreibst jetzt
Meine Matrix Fragen lauten G01Q01 und G01Q02
Das kann ich doch vorher nicht wissen. Also habe ich als Code eben stellvertretend geschrieben "QCodeMatrix".
Muss bei Dir natürllich dann durch den wirklichen Code erstetzt werden, also G01Q01.
Das hättest Du aber wissen können. Denn das Handbuch hast Du doch sicherlich zumindest quergelesen.
[url] www.limesurvey.org/manual/ExpressionScri...code_variable_naming [/url]

Verlasse Dich bitte nicht auf ChatGPT.
ChatGPT wird hier im Forum grundsätzlich nur als Quell der Heiterkeit angesehen. Man muss einfach sagen, dass diese Labertante (sie schreibt einfach unheimlich viel, unheimlich plausibel klingend und oft unheimlich viel Müll) einfach keine Ahnung von LimeSurvey hat.

Joffm

Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 3 months 5 days ago by Joffm.

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
3 months 3 days ago - 3 months 3 days ago #266711 by Joffm
Noch eine kleine Zusatzüberlegung:
Persönlich halte ich den Ansatz mit dem Minimum für nicht optimal.
Was ist, wenn der Teilnehmer das Gros der Items mit "OK" und "gut" beantwortet, einige mit "super"?
Dann kannst Du sicher nicht fragen "Warum ist 'OK' kritisch?"
Noch schlimmer wäre ein Right-Justifier, der nur "gut" und "super" ankreuzt.

Ich fände es besser, einfach die Antworten zu "schwach" und "geht so" abzufragen, oder auch eine Schwelle zu bestimmen in der Art "Wenn weniger als x% der Antworten unterhalb 'ok' liegen, dann sind dies wirklich einzelne kritisch bewertete Items; diese frage ich dann".

Nur noch so nebenbei.

Joffm

Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 3 months 3 days ago by Joffm.

Please Log in to join the conversation.

  • Nosedive
  • Nosedive's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
2 months 4 weeks ago - 2 months 4 weeks ago #266797 by Nosedive
Hallo Joffm.
Sorry für die späte Reaktion aber ich habe leider nur wenig Zeit für die Umfrage.

"Ich möchte eine Umfrage mit 15x Matrix 5 Punkt Fragen erstellen"
Ich meinte hiermit dass ich 15 Fragen erstellen möchte, bei denen der Teilnehmer einen von 5 Werten (schlecht bis super) anklicken kann.

"Oder willst Du die 15 Teilfragen als eigenständige Fragen stellen?"
Genau

Von den Varianten die du gezeigt hast würde mich Variante 2 am ehesten ansprechen. So siehts bei mir jetzt im Moment auch aus.
  „Wenn noch gar nichts gewählt ist, werden alle Begründungsfragen angezeigt“
Wäre tatsächlich nicht sehr schön aber zur Not ok.

„Zum Beispiel könntest Du die Antworten zählen. Nur wenn alle beantwortet sind, kommen die Begründungsfragen“
Hm. Das würde ja die Gefahr bergen dass der Text nicht angezeigt wird falls der Teilnehmer nicht alle 15 Fragen beantwortet. Aber könnte ich wohl kontern indem ich Pflichtfragen daraus mache. Schöne Idee. Wie macht man das mit dem Zählen?

„Das kann ich doch vorher nicht wissen. Also habe ich als Code eben stellvertretend geschrieben "QCodeMatrix".“
Ok sorry. Ne dachte tatsächlich das ist ne Funktion die automatisch in alle Matrix Antworten reinschaut 

„Verlasse Dich bitte nicht auf ChatGPT.“
Nein mach ich nie. Weiß dass die LLMs halluzinieren was sie nicht wissen. Aber manchmal haben sie doch ganz gute Ideen/Ansätze mit den man anfangen kann zu testen.

„Ich fände es besser, einfach die Antworten zu "schwach" und "geht so" abzufragen,… 
Das war eigentlich meine Ursprungsidee. Ich hatte aber die Befürchtung dass ich dann zu viele Freitextfelder auswerten muss (ich befrage knapp 400 User), falls jemand z.B. 4x „geht so“ und 2x „schwach “anklickt hätte ich so 6 Felder auszuwerten. Mit der Prüfung der schwächsten Bewertung wären es aber nur zwei. Eine Kombination von beidem (also Schwellwert und Kleinstwert) wäre aber aus meiner Sicht das Optimum.

Falls umsetzbar wäre folgendes ideal:
  • Freischaltung eines Freitextfelds erst nachdem alle 15 Fragen beantwortet wurden
  • Begrenzung des Freitextfelds auf 200 Zeichen
  • Freischaltung nur für die Werte „geht so“ und „schwach“. Wird alles mit OK oder besser angeklickt taucht kein Feld auf.
  • Freischaltung nur für die schlechtesten Bewertungen. Bei oben genanntem Bsp. also nur für die beiden „schwach“ Bewertungen
Gruß 
Nosedive
Last edit: 2 months 4 weeks ago by Nosedive.

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
2 months 4 weeks ago #266799 by Joffm
Hallo,
Na, dann wird es ja ziemlich simpel.

„Zum Beispiel könntest Du die Antworten zählen. Nur wenn alle beantwortet sind, kommen die Begründungsfragen“
Hm. Das würde ja die Gefahr bergen dass der Text nicht angezeigt wird falls der Teilnehmer nicht alle 15 Fragen beantwortet. Aber könnte ich wohl kontern indem ich Pflichtfragen daraus mache. Schöne Idee. Wie macht man das mit dem Zählen?

Solche Fragen - also Bewertungen - sind ja immer zu beantworten, sind also immer Pflicht. Im Ernstfall machst Du eine Antwortoption "Sag ich nicht" hinzu.
Man zählt mit der Funktion "count", bzw, "countif" oder "countifop", je nachdem, was du zählen willst.
[url] www.limesurvey.org/manual/ExpressionScri...mentierte_Funktionen [/url]

Begrenzung des Freitextfelds auf 200 Zeichen

Ist ja eine Einstellung bei Textfragen.

  • Freischaltung nur für die Werte „geht so“ und „schwach“. Wird alles mit OK oder besser angeklickt taucht kein Feld auf.
  • Freischaltung nur für die schlechtesten Bewertungen. Bei oben genanntem Bsp. also nur für die beiden „schwach“ Bewertungen

Hier würde ich in einer Gleichungsfrage (eqKriterium) das Minimum bestimmen, bzw. eine anderen Wert, falls alles nur ganz gut beurteilt wurde.
Z.B. ein verschachteltes IF
{if(countif("1", Q1.NAOK.Q2.NAOK,...)>0,1,if(countif("2", Q1.NAOK.Q2.NAOK,...)>0,2,0))}

Dann kann die Bedingung bei den Begründungsfragen lauten:
Q1==eqKriterium
Q2==eqKriterium
...

So, jetzt leg einmal los.
Bei weiteren Fragen, schicke den lss Export Deinen Versuches.

Joffm

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

Please Log in to join the conversation.

  • Nosedive
  • Nosedive's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
2 months 3 weeks ago #266907 by Nosedive
Hallo Joffm.

Danke dir. Ich habe die Test Umfrage jetzt nach etwas Knobeln mit deiner Hilfe plus etwas Youtube und Chat GPG hinbekommen. Anbei der Entwurf.
Wenn du noch Optmimierungsptentiale siehst immer raus damit.

Gruß 
Nosedive
 

File Attachment:

File Name: limesurvey...9-20.lss
File Size:64 KB

 

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
2 months 3 weeks ago #266919 by Joffm
Das ist aber nicht so toll.
 
Zeige sie erst an, wenn alle Fragen beantwortet wurden, einfach mit count() zählen, bei 3 anzeigen.
Aber besser die Begründungen auf eine zweite Seite. Was glaubst Du, wie viele Antworten noch schnell zu "OK" geändert werden ("Dann muss ich nichts schreiben")

Joffm

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

Please Log in to join the conversation.

  • Nosedive
  • Nosedive's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
2 months 1 week ago #267109 by Nosedive
Hey Joffm.

Habe die Count Funktion jetzt eingebaut und die Zusatzfragen wie von dir vorgeschlagen auf eine zweite Seite gestellt und die "Zurück" Funktion entfernt, so dass die Leute nicht zurückspringen können um den Wert nochmal zu manipulieren. Durch deine Hinweise habe ich jetzt eine für mich zufriedenstellende Version erreicht. Kann die LSS leider nicht anhängen da bestimmte Angaben Internas Preis geben würden. Danke erstmal für deine ganzen Hilfestellungen.

Gruß Nosedive

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
2 months 1 week ago #267111 by Joffm
Hallo,
gut, dass Du erfolgreich warst.

Aber:

Kann die LSS leider nicht anhängen da bestimmte Angaben Internas Preis geben würden.

Wir wollen ja auch nie die Original-Umfrage. Die ist meistens viel zu lang und enthält vieles, was völlig irrelevant für das eigentliche Problem ist.
Nein, Du sollst einen kleinen Prototyp erstellen, der nur das Problem darstellt, dieses aber möglichst genau.
Und die Texte?
In meinen Tutorials siehst Du ja, dass es in diesen oft um die Tätigkeit von "Adalbert Ameise" im Ameisenzüchterverein geht, oder die sportliche Betätigung von "Adalbert Ameise", "Berta Biber", "Carlo Chinchilla" und Konsorten.

Das nur für zukünftige Anfragen.

Bis dann
Joffm
 

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

Please Log in to join the conversation.

  • Nosedive
  • Nosedive's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
2 months 7 hours ago #267299 by Nosedive
Hallo Joffm.

Alles klar. Werde ich für das nächste mal berücksichtigen. Ich hatte nur schon direkt an der finalen Version mit allen tatsächlichen Texten gearbeitet und wollte das nicht nochmal nachbauen / anpassen. Nächstes mal baue ich erst eine Musterversion und überführe sie dann erst nach Fertigstellung in die finale Version.

Grüße
Nosedive

Please Log in to join the conversation.

Moderators: holchJoffmtpartner

Lime-years ahead

Online-surveys for every purse and purpose