Actions

Expression Manager sample surveys/ja: Difference between revisions

From LimeSurvey Manual

(Created page with "これは、array_filterと検証基準がどのように相互作用するかを示しています。合計に適用される検証では、出現条件を満たす(可視...")
No edit summary
 
(84 intermediate revisions by 4 users not shown)
Line 7: Line 7:




式マネージャーの使い方を学ぶ最も良い方法は、実際の例を試して、必要に応じて修正することです。
式マネージャーの使い方を学ぶベストな方法は、実際の例を試して、必要に合わせて変更することです。


EMを使用してアンケートを強化する方法を実証(およびテスト)するための一連のサンプルアンケートがあります。これらのアンケートは、ディストリビューションの/docs/demosurveysフォルダーにあります。
以下のサンプルアンケートで、式マネージャーを使ってアンケートを強化する方法を確認し、テストすることができます。これらのアンケートは、配布されている LimeSurvey の /docs/demosurveys フォルダー内にあります。




Line 18: Line 18:




この例で示されている機能を以下に示します。
次の例では、各回答者の BMI(体格指数)を計算します。 この例で使用している機能は以下のとおりです。


 
==式マネージャー機能のデモ==
==EM機能のデモ==
   
   


#'''出現条件''' - 強力な条件付きロジックのサポート。
#'''条件''' - 強力な条件付きロジックのサポート。
#'''パイピング / 文言調整''' - 回答と質問メタデータのパイピングまたは文言調整が可能です。
#'''パイピング・文言調整''' - 回答と質問メタデータのパイピングまたは文言調整が可能です。
#'''動的文言調整''' - 質問に答えると、ページ上でレポートが変更されます。
#'''動的文言調整''' - 質問に答えると、ページ上でレポートが変更されます。
#'''細かい文言調整''' - if()文を使用した文およびレポートの条件付き文言調整
#'''細かい文言調整''' - if()文を使用した文およびレポートの条件付き文言調整
#'''式''' - 計算を非表示にしても計算を実行し、結果をデータベースに保存できる新しい[[Question type - Equation/ja|質問タイプ]] #'''条件付き検証''' - 最小許容値などの検証基準を条件式に基づいて設定できます。
#'''式''' - 計算を非表示にしても計算を実行し、結果をデータベースに保存できる新しい[[Question type - Equation/ja|質問タイプ]] #'''条件付き検証''' - 最小許容値などの検証基準を条件式に基づいて設定できます。
#'''条件検証''' - 許容する最小値などの検証基準を、式にもとづくなど条件で処理できます。




Line 76: Line 76:


サンプルアンケートにアクセスするには、[[Media:LS3_em_tailoring.zip|LS3_em_tailoring.zip]]リンクをクリックしてください。
サンプルアンケートにアクセスするには、[[Media:LS3_em_tailoring.zip|LS3_em_tailoring.zip]]リンクをクリックしてください。


=サンプル調査=
=サンプル調査=
Line 96: Line 95:




#'''グループレベルの出現条件''' - あとに続くグループ(Person 1-5)は、入力された同居者の人数だけ表示されます。
#'''Group-level relevance''' - The follow-up groups (Person 1-5) only show for up to the number of cohabitants specified;
#'''文言調整''' - 最終レポートでは、同居者ごとのデータが要約されます。
#'''Tailoring''' - The final report summarizes the demographic data for each cohabitant;
#'''段階的な質問表示''' - グループごとに表示するモードでも同一ページに一括表示するモードでも、後続の質問は先行する質問に回答するとすぐに表示されます。
#'''Progressive question display''' - Whether in group or all-in-one mode, subsequent questions only show as soon as the preceding ones are answered.




Line 104: Line 103:




アンケートでは、入力された同居人数のデータを示すレポートが生成されます。
The survey generates a tailored report showing the demographics of the specified number of cohabitants:




Line 110: Line 109:




一括質問モードに切り替えると、質問文が調整されていることがわかります。ユーザーはその人が女性だと回答したので、「彼女の名前は何ですか?」と尋ねます。さらに、「メアリー」と答えたので、次の質問は「メアリーは何歳ですか?」となります。
If you switch to question-at-a-time mode, you see that the index tailors the questions. Since the user said that the person is a woman, it asks "What is her name".  And since we answered "Mary", the next question says "How old is Mary"?




Line 119: Line 118:




サンプルアンケートをダウンロードするには、ここをクリックしてください。
To download the survey sample, click here: [[Media:LS3_group_relevance.zip|LS3_group_relevance.zip]].
[[Media:LS3_group_relevance.zip|LS3_group_relevance.zip]]




Line 183: Line 181:




==Download==
==ダウンロード==




Line 271: Line 269:
この質問では、検証式を適用して、子供の年齢を降順で入力するようにしています。
この質問では、検証式を適用して、子供の年齢を降順で入力するようにしています。


<syntaxhighlight lang="php" enclose="div">q1_sq1 >= q1_sq2 && q1_sq2 >= q1_sq3 && q1_sq3 >= q1_sq4</syntaxhighlight>
<syntaxhighlight lang="php">q1_sq1 >= q1_sq2 && q1_sq2 >= q1_sq3 && q1_sq3 >= q1_sq4</syntaxhighlight>




Line 282: Line 280:
以下の例では、検証式を適用することによって、指定された行について、回答された質問の数が3つ以下になるようになります。
以下の例では、検証式を適用することによって、指定された行について、回答された質問の数が3つ以下になるようになります。


<syntaxhighlight lang="php" enclose="div">(sum(Test_A_1, Test_A_2, Test_A_3, Test_A_4, Test_A_5) <= 3) && (sum(Test_B_1, Test_B_2, Test_B_3, Test_B_4, Test_B_5) <= 3) && (sum(Test_C_1, Test_C_2, Test_C_3, Test_C_4, Test_C_5) <= 3)</syntaxhighlight>
<syntaxhighlight lang="php">(sum(Test_A_1, Test_A_2, Test_A_3, Test_A_4, Test_A_5) <= 3) && (sum(Test_B_1, Test_B_2, Test_B_3, Test_B_4, Test_B_5) <= 3) && (sum(Test_C_1, Test_C_2, Test_C_3, Test_C_4, Test_C_5) <= 3)</syntaxhighlight>


これを以下のように書くこともできます。LimeSurveyは実行時に自動的に上記の式に変換します。
これを以下のように書くこともできます。LimeSurveyは実行時に自動的に上記の式に変換します。


<syntaxhighlight lang="php" enclose="div">(sum(self.sq_A) <= 3) && (sum(self.sq_B) <= 3) && (sum(self.sq_C) <= 3)</syntaxhighlight>
<syntaxhighlight lang="php">(sum(self.sq_A) <= 3) && (sum(self.sq_B) <= 3) && (sum(self.sq_C) <= 3)</syntaxhighlight>




Line 307: Line 305:




==EM Features Demonstrated==
==EM機能のデモ==




#[[QS:Array_filter|array_filter]]
#[[QS:Array_filter/ja|array_filter]]
#[[QS:Array filter exclude|array_filter_exclude]]
#[[QS:Array filter exclude/ja|array_filter_exclude]]
#[[QS:Min_num_value|min_num_value]]
#[[QS:Min_num_value/ja|min_num_value]]
#[[QS:Max num value|max_num_value]]
#[[QS:Max num value/ja|max_num_value]]
#[[QS:equals_num_value|equals_num_value]]
#[[QS:equals_num_value/ja|equals_num_value]]


It also shows dynamic reporting of the numbers of questions answered in the core questions.
また、コアの質問で回答された質問の数を動的にレポートします。




Line 322: Line 320:




Changing the number of visible rows dynamically changes the sum. Marking a subquestion as being irrelevant doesn't clear its value. Rather, if it is irrelevant, its values don't contribute to any equation.
可視行の数を変更すると、合計が動的に変更されます。サブ質問を出現条件を満たさないとマークしても、値はクリアされませんが、いかなる式にも影響しません。




Line 328: Line 326:




Note what happens when we check the "Fifth subquestion" for the first question '''"Which rows should appear below"'''. Note that the sum for the second "Enter some numbers" question is now 5. Even though subquestion 5 for that question still has the value 14 (e.g., if you un-check the fifth subquestion, you will see the value of 14 again), that value does not contribute to the sum since it is currently irrelevant. All irrelevant data is cleared (NULLed in the database) on submit, but it stays available on the page in case users want or need to change their minds about answers.
最初の質問'''"どの行が下に表示されるべきか"'''について、"5番目のサブ質問"をチェックするとどうなるか確認してください。 2番目の"Enter some numbers(何か数字を入力してください)"という質問の合計が5になっていることに注意してください。その質問のサブ質問5の値はまだ14です(ここで、サブ質問5のチェックを外すと、14の値が再び表示されます)。その値は現在のところ出現条件を満たさないので合計に寄与しません。送信時に出現していないとき項目のデータはすべてクリアされますが(データベースではNULLに設定されます)、ユーザーが回答を変更する必要がある場合に備えて、ページ内で保持されています。




Line 337: Line 335:




To download our example, click here: [[Media:ls2_subquestion_relevance.lss|ls2_subquestion_relevance.lss]].
この例をダウンロードするにはここをクリックしてください。 [[Media:ls2_subquestion_relevance.lss|ls2_subquestion_relevance.lss]]




=Using Comma as Radix Separator (Decimal Point)=
=カンマを小数点として使用する=




Line 346: Line 344:




The Expression Manager ensures that only valid numbers can be entered into numeric fields. If you enter an invalid number, you will be warned that something is wrong (e.g., in the case of the fruity theme, the whole question is "red-ed").
式マネージャーは、有効な数値のみを数値フィールドに入力できるようにします。無効な数値を入力すると、何かが間違っていることが警告されます(fruityテーマの場合、質問全体が「赤色」になります)。


Note that the numeric values are always converted to using a period as the radix separator within the database. In this way, the statistical analyses will work appropriately.
数値は常に、データベース内の小数点記号としてピリオドを使用したものに変換されることに注意してください。これにより、統計分析が適切に機能します。


To change the radix separator, access the [[Text elements]] options located under the [[Survey_settings|Settings]] tab, and look for the [[Text_elements#Survey_text_elements_panel|decimal mark]] functionality.  
小数点記号を変更するには、[[Survey_settings/ja|設定]]タブにある[[Text elements/ja|テキストエレメント]]オプションにアクセスし、[[Text_elements/ja#Survey_text_elements_panel|小数点]]で設定してください。  




{{Note|For more information on what a radix separator is, click [https://en.wikipedia.org/wiki/Radix_point|here].}}
{{Note|小数点について、詳細は[https://en.wikipedia.org/wiki/Radix_point こちら]をクリックしてください。}}




==Question Types Using Radix Separator==
==小数点記号を使用する質問の種類==




#[[Question type - Numerical input|Numerical input]] <nowiki>[</nowiki>N]
#[[Question type - Numerical input/ja|数値入力]] <nowiki>[</nowiki>N]
#[[Question type - Multiple numerical input|Multiple numerical input]] <nowiki>[</nowiki>K]
#[[Question type - Multiple numerical input/ja|複数数値入力]] <nowiki>[</nowiki>K]
#[[Question type - Array (Numbers)|Array (Numbers)]] <nowiki>[</nowiki>:]
#[[Question type - Array (Numbers)/ja|配列(数値)]] <nowiki>[</nowiki>:]
#[[Question type - Array (Texts)|Array (Texts)]] <nowiki>[</nowiki>;], when using the [[QS:Numbers_only|numbers_only]] attribute
#[[Question type - Array (Texts)/ja|配列(テキスト)]] <nowiki>[</nowiki>;][[QS:Numbers_only|numbers_only]]属性を使用する場合
#[[Question type - List (Radio)|List (radio)]] <nowiki>[</nowiki>L], when using the [[QS:Other_numbers_only|other_numbers_only]] attribute
#[[Question type - List (Radio)/ja|リスト(ラジオ)]] <nowiki>[</nowiki>L][[QS:Other_numbers_only|other_numbers_only]]属性を使用する場合
#[[Question type - Short free text|Short free text]] <nowiki>[</nowiki>S], when using the [[QS:Numbers_only|numbers_only]] attribute
#[[Question type - Short free text/ja|短いフリーテキスト]] <nowiki>[</nowiki>S][[QS:Numbers_only|numbers_only]]属性を使用する場合
#[[Question type - Multiple short text|Multiple short text]] <nowiki>[</nowiki>Q], when using the [[QS:Numbers_only|numbers_only]] attribute
#[[Question type - Multiple short text/ja|複数の短いテキスト]] <nowiki>[</nowiki>Q][[QS:Numbers_only/ja|numbers_only]]属性を使用する場合
#[[Question type - Multiple choice|Multiple choice]] <nowiki>[</nowiki>M], when using the [[QS:Other_numbers_only|other_numbers_only]] attribute
#[[Question type - Multiple choice/ja|複数選択]] <nowiki>[</nowiki>M][[QS:Other_numbers_only/ja|other_numbers_only]]属性を使用する場合
#[[Question type - Multiple choice with comments|Multiple choice with comments]] <nowiki>[</nowiki>P], when using the [[QS:Other_numbers_only|other_numbers_only]] attribute
#[[Question type - Multiple choice with comments/ja|コメント付きの複数選択]] <nowiki>[</nowiki>P][[QS:Other_numbers_only/ja|other_numbers_only]]属性を使用する場合




Line 373: Line 371:




You may note in the below screenshots that comma can be used as a radix separator.
以下のスクリーンショットではカンマを小数点記号として使用する例を確認できます。




Line 382: Line 380:




To download the above example, click on the following link: [[Media:ls2_comma_as_radix_separator.lss|ls2_comma_as_radix_separator.lss]].
上記の例をダウンロードするには、次のリンクをクリックします。
[[Media:ls2_comma_as_radix_separator.lss|ls2_comma_as_radix_separator.lss]]




=Randomization Groups=
=グループのランダム化=




Line 391: Line 390:




This survey demonstrates how to make use of the '''random_group''' attribute.
このアンケートでは、'''random_group'''属性を使用する方法を示します。


If this attribute is used, each time you start the survey, the question order is randomized. However, once the survey is started, the randomization order remains fixed, even if you change languages.
この属性を使用すると、アンケートを開始するたびに質問の順序がランダム化されます。ただし、ひとたびアンケートが開始されれば、言語を変更してもランダム化の順序は固定されたままになります。




Line 399: Line 398:




Let's check together the below example. The first random question on the page will either be Q1 , Q4, or Q7. The second randomized question on the page will either be Q2, Q5, or Q8.
以下の例を一緒にチェックしてみましょう。最初のページのランダム化された質問は、Q1、Q4、Q7になります。2番目のページのランダム化された質問は、Q2、Q5、Q8になります。




Line 406: Line 405:




Here is the randomization generated the first time I tested this survey.
このアンケートを初めてテストしたときにランダム化が行われました。




Line 412: Line 411:




A different randomization was generated the second time I tested the survey.
2回目にアンケートをテストしたときは、ランダム化の結果が異なります。




Line 418: Line 417:




But, when I switched to French (without re-starting the survey), the randomization order remained intact.
しかし、(アンケートを再開せずに)フランス語に切り替えても、ランダム化された順序はそのまま残りました。




Line 427: Line 426:




To download the above example, click on the following link: [[Media:Randomization_Group_Test.lss|Randomization_Group_Test.lss]]
上記の例をダウンロードするには、次のリンクをクリックしてください。 [[Media:Randomization_Group_Test.lss|Randomization_Group_Test.lss]]




=Randomly Ask One Question Per Group=
=グループごとにランダムに質問する=




Line 436: Line 435:




This survey shows how you can configure a survey to randomly display one question per group. In it, there are 5 groups of 6 questions each. At the outset, in Group 0, five hidden Equation questions, called ask1-ask5, are populated. Each one has the value of {floor(rand(1,6.9999))} in the question text field, which means that the variables ask1-ask5 will each have a value between 1 and 6. Then, each question in the group has a relevance equation like "ask1==N" where N is the Nth question in the group (so the third question in group 1 has the relevance equation  "ask1==3").
このアンケートでは、グループごとに質問をランダムに表示するようにアンケートを設定する方法を示します。アンケートの中にはそれぞれ6つの質問からなる5つのグループがあります。当初、グループ0には、ask1-ask5と呼ばれる隠された式タイプの質問が5つ設定されています。それぞれの質問テキストフィールドには{floor(rand(1,6.9999))}という値が設定されています。つまり、ask1-ask5変数の値はそれぞれ1〜6になります。次に、グループ内の各質問には"ask1==N"(Nはグループ内のN番目の質問を指す)のような出現条件の式があります(グループ1の3番目の質問は出現条件の式"ask1==3"を持つ)。


This survey works equally well in survey-at-a-time, group-by-group, and question-by-question modes. Since the randomization is set in the first group, and that group is effectively hidden (since all of the ask1-ask5 questions are hidden), the randomization stays the same for the subject; but each different subject will have a distinct randomization.
このアンケートは、1ページにすべての質問を配置するモード、グループごとにページを変えるモード、質問ごとにページを変えるモードそれぞれで同じように機能します。ランダム化は最初のグループに設定され、そのグループは実際は隠されており(ask1-ask5の質問のすべてが隠されているため)、ランダム化は回答者ごとに同じままです。別の回答者は、これとは異なるランダム化が実行されます。




==Features Demonstrated==
==機能のデモ==




#[[Question type - Equation|Equation question type]]
#[[Question type - Equation/ja|式質問タイプ]]
#Randomization functions
#ランダム化関数
#Conditional (if) function
#条件(if)関数




Line 452: Line 451:




This is Group0, which uses the [[Question type - Equation|Equation question type]] to select random values from 1 to 6 for each group (except the last group, which has only 4 questions).  Note that the "if()" function first checks whether ask1 has already been set, and if so, uses that value. If the value hasn't been set, then it uses a random value to set the value of ask1.
これはGroup0で、[[Question type - Equation/ja|式質問タイプ]]を使用して、各グループ(4つの質問のみを持つ最後のグループを除く)ごとに1から6までのランダム値を選択します。"if()"関数は、まずask1がすでに設定されているかどうかをチェックし、そうであれば、その値を使用することに注意してください。値が設定されていない場合は、ランダム値を使用してask1の値を設定します。




Line 458: Line 457:




This Group shows how the variable (ask4) from Group0 is used to control which question is visible within the fourth group.
このグループは、Group0の変数(ask4)を使用して、4つめのグループ内でどの質問が表示されるかを制御する方法を示しています。




Line 467: Line 466:




To download the above survey example, click here: [[Media:limesurvey_survey_55164.lss|Random questions within a group survey example]].
このアンケートの例をダウンロードするには、こちらをクリックしてください。 [[Media:limesurvey_survey_55164.lss|Random questions within a group survey example]]




=Randomly Ask A Specific Number Of Questions In A Group (a subset of the questions)=
=グループ(質問のサブセット)内の特定の数の質問をランダムに質問する=




{{Alert|This applies only to all random questions from one group and only if the [[General_settings#General_settings_panel|Group by group or All in one]] format is used.}}
{{Alert|これは、1つのグループのすべてのランダム化された質問で、[[General_settings/ja#General_settings_panel|グループごと改ページまたは全質問1ページ]]のフォーマットが使用されている場合にのみ適用されます。}}




Line 479: Line 478:




This survey shows how to ask a random subset of questions in a group. For example, show 5 random questions out of 10 questions located within a group.
このアンケートでは、グループ内の質問のサブセットからランダムに尋ねる方法を示します。たとえば、グループ内にある10の質問のうち5つをランダムに質問します。


The survey has one group containing 10 questions. All questions are assigned the same [[QS:Random_group|randomization group name]]. As a result, they will be displayed in a random order on page load. Each question is given a relevance equation that the sum of the "[[Expression Manager#Access to Variables|relevanceStatus]]" of all other questions in the group is less than the number of questions you want to show. Since [[Expression Manager#Access to Variables|relevanceStatus]] is assigned as questions are rendered, this effectively totals the number of preceding questions.
アンケートには10の質問を含む1つのグループがあります。すべての質問には同じ[[QS:Random_group/ja|ランダム化グループ名]]が割り当てられます。これにより、ページの読み込み時にランダムな順序で表示されます。各質問には、グループ内の他のすべての質問の"[[Expression Manager/ja#Access to Variables|relevanceStatus]]"の合計が、表示する質問の数よりも少なくなるような出現条件の式が与えられます。質問がレンダリングされるときに、[[Expression Manager/ja#Access to Variables|relevanceStatus]]が割り当てられているので、先行する質問の数を適切に合計します。


So, in our 5 out of 10 example, the equation for Q1 would be:
したがって、10のうち5つ質問する例では、Q1の方程式は次のようになります。


<syntaxhighlight lang="php" enclose="div">sum(Q2.relevanceStatus, Q3.relevanceStatus, Q4.relevanceStatus, Q5.relevanceStatus, Q6.relevanceStatus, Q7.relevanceStatus, Q8.relevanceStatus, Q9.relevanceStatus, Q10.relevanceStatus) LT 5</syntaxhighlight>
<syntaxhighlight lang="php">sum(Q2.relevanceStatus, Q3.relevanceStatus, Q4.relevanceStatus, Q5.relevanceStatus, Q6.relevanceStatus, Q7.relevanceStatus, Q8.relevanceStatus, Q9.relevanceStatus, Q10.relevanceStatus) LT 5</syntaxhighlight>


For Q2, it would be:
Q2の場合は、次のようになります。


<syntaxhighlight lang="php" enclose="div">sum(Q1.relevanceStatus, Q3.relevanceStatus, Q4.relevanceStatus, Q5.relevanceStatus, Q6.relevanceStatus, Q7.relevanceStatus, Q8.relevanceStatus, Q9.relevanceStatus, Q10.relevanceStatus) LT 5</syntaxhighlight>
<syntaxhighlight lang="php">sum(Q1.relevanceStatus, Q3.relevanceStatus, Q4.relevanceStatus, Q5.relevanceStatus, Q6.relevanceStatus, Q7.relevanceStatus, Q8.relevanceStatus, Q9.relevanceStatus, Q10.relevanceStatus) LT 5</syntaxhighlight>


And so on...
以下同様。




==Features Demonstrated==
==機能のデモ==




#[[Expression_Manager#Access_to_Variables|relevanceStatus variable]]
#[[Expression_Manager/ja#Access_to_Variables|relevanceStatus変数]]
#[[QS:Random group|Randomizing]]
#[[QS:Random group/ja|ランダム化]]




Line 504: Line 503:




To download the above example, click on the following link: [[Media:Random_5_out_of_10.lss|Random 5 out of 10 survey example]].
この例をダウンロードするには、次のリンクをクリックしてください。 [[Media:Random_5_out_of_10.lss|Random 5 out of 10 survey example]]


=Rating User-Entered List of Products=
=ユーザが入力した商品リストの順位付け=




Line 512: Line 511:




The below example shows how you can ask users to list a set of products that interest them, and then have them rate those products.
以下の例は、ユーザーが関心を持つであろう一連の製品をリストとして提示し、それらの製品を評価(順位付け)させる方法を示しています。




==EM Features Demonstrated==
==EM機能のデモ==




#'''Tailoring answers''' - when rating products, the labels come from the comment field of the preceding multiple choice question
#'''回答の文言調整''' - 商品を評価するとき、ラベルは前の複数選択質問のコメントフィールドから引用します
#'''Tailoring scales''' - many advanced questions options, like scale headings, can also be tailored.
#'''尺度の調整''' - 尺度の見出しのような高度な質問オプションの文言の調整できます。




Line 525: Line 524:




This image shows that even though only products 1,3, and 5 were selected, only those 3 are displayed (using the [[QS:Array_filter|array_filter]] attribute). Moreover, the row labels in the second question are either the product numbers (if nothing is entered into the comment field) or the contents of the comment fields.
この画像は、前の質問で製品1、3、5が選択されているとき、[[QS:Array_filter/ja|array_filter]]属性を使用してその3つしか表示されないことを示しています。さらに、2番目の質問の行ラベルは、製品番号(コメントフィールドに何も入力されていない場合)またはコメントフィールドの内容になっています。




Line 531: Line 530:




This image shows how the tailored answers are specified:
この画像は、質問文がどのように調整されるかを示しています。




Line 537: Line 536:




Here is the Show Logic File for that question, which lets us verify that the conditional logic works as desired (e.g., to see whether there are any syntax errors):
これは、その質問に対するロジックファイルの表示です。これにより、条件付きロジックが必要に応じて動作することを確認できます(構文エラーがないかどうかなど)。




Line 543: Line 542:




The next image shows a group in which you specify a 5 point rating scale (Options 1-5), the title of the scale, and the products you want to rate. The final question shows that each of the parts of the array question can be tailored:
次の画像には、5点の評価尺度(オプション1-5)、尺度のタイトル、および評価したい製品を指定したグループが表示されています。最後の質問は、配列の質問の各々を調整できることを示しています。




Line 549: Line 548:




The next image shows the logic file view of the last question. As you can observe, the subquestions, answers, and scale headers can be tailored.
次の画像は、最後の質問の論理ファイルビューを示しています。ご覧のように、サブ質問、回答、尺度のヘッダーを調整することができます。




Line 558: Line 557:




To download the survey example from above, click on the following link: [[Media:Rating_User-Entered_List_of_Products_Survey.zip|Rating user-entered list of products survey example]].
この例をダウンロードするには、次のリンクをクリックしてください。[[Media:Rating_User-Entered_List_of_Products_Survey.zip|Rating user-entered list of products survey example]]

Latest revision as of 07:06, 2 March 2024


はじめに

式マネージャーの使い方を学ぶベストな方法は、実際の例を試して、必要に合わせて変更することです。

以下のサンプルアンケートで、式マネージャーを使ってアンケートを強化する方法を確認し、テストすることができます。これらのアンケートは、配布されている LimeSurvey の /docs/demosurveys フォルダー内にあります。


出現条件、文言調整、式

概要

次の例では、各回答者の BMI(体格指数)を計算します。 この例で使用している機能は以下のとおりです。

式マネージャー機能のデモ

  1. 条件 - 強力な条件付きロジックのサポート。
  2. パイピング・文言調整 - 回答と質問メタデータのパイピングまたは文言調整が可能です。
  3. 動的文言調整 - 質問に答えると、ページ上でレポートが変更されます。
  4. 細かい文言調整 - if()文を使用した文およびレポートの条件付き文言調整
  5. - 計算を非表示にしても計算を実行し、結果をデータベースに保存できる新しい質問タイプ #条件付き検証 - 最小許容値などの検証基準を条件式に基づいて設定できます。
  6. 条件検証 - 許容する最小値などの検証基準を、式にもとづくなど条件で処理できます。


スクリーンショット

この例では、体重と身長から太りすぎかどうかを判断する体格指数を計算します。最初は、次の4つの必須質問が表示されます。



情報を入力すると(メートル法またはそれ以外の単位を使用するかどうかも選択)、入力した内容の要約と体重の状態を示すレポートが表示されます。



ここでは、メートル法以外の単位を使用して、結果がどのように動的に変化するかを示す例を紹介します。



カスタムJavaScriptを使わずに、内部でデータをメートル法(必要な場合)に変換し、メートル法で身長、体重、BMI、および体重の状態をデータベースに格納する式タイプの質問があります。

次の例では、個別のレポート内で数学およびその他の関数を使用する方法を確認できます。これは、データを入力する前のページの様子です。未入力または数値以外が入力されている場合に"NaN"または"ゼロ除算"を表示するのではなく、空白のセルを表示するための条件付きロジックがあります。



数字が入力されると、ページ上のレポートが変化して、実行した計算とその結果が表示されます。



このサンプルアンケートには他にも多くの例があります。例えば、以下のスクリーンショットは、動的出現条件を使用したページの例を示しています。ヘルプテキストでは、さまざまな年齢層、特に矛盾する回答の組み合わせを試みることによって生成される面白いメッセージを見てください。また、複数の子供がいると回答した場合、"あなたの子供と一緒に楽しんでください"ではなく、"あなたのX人の子供たちと楽しんでください"というメッセージが表示されます。これは、文章を性別や数に合わせて簡単に微調整する方法を示しています。性別や数に基づいて、動詞や名詞を変化させることもできます。



ダウンロード

サンプルアンケートにアクセスするには、LS3_em_tailoring.zipリンクをクリックしてください。

サンプル調査

概要

これは、世帯に何人の人がいるかを尋ねる調査の例です。

グループレベルの出現条件を使って質問の"ループ"を簡単に実装する例を示しています。Person 1のグループを作成した後、そのグループをエクスポートします。SGQAコードの代わりにp1_nameのようなqcode変数名を使用していたので、テキストエディタを使ってグループを何度も素早く編集して再インポートできます(例えば、すべての変数に一意の変数名があり、グループレベルのロジックが正しくなるよう、繰り返しグループを編集して再インポートするのに約10秒かかります)。

質問のコピー機能もありますが、上記のオプションとほど速くはできません。

これは、アンケートが本当に終了するまで(たとえば、必要なすべてのグループが完了するまで)、終了メッセージが表示されないようにする方法も示しています。


EM機能のデモ

  1. Group-level relevance - The follow-up groups (Person 1-5) only show for up to the number of cohabitants specified;
  2. Tailoring - The final report summarizes the demographic data for each cohabitant;
  3. Progressive question display - Whether in group or all-in-one mode, subsequent questions only show as soon as the preceding ones are answered.


スクリーンショット

The survey generates a tailored report showing the demographics of the specified number of cohabitants:



If you switch to question-at-a-time mode, you see that the index tailors the questions. Since the user said that the person is a woman, it asks "What is her name".  And since we answered "Mary", the next question says "How old is Mary"?



ダウンロード

To download the survey sample, click here: LS3_group_relevance.zip.


配列フィルターの入れ子

概要

このアンケートは、Joy Lane Research, LLCのアンケートデザインに基づいています。


スクリーンショット

次の点に着目してください。

  • Q02は、Q01でチェックされた製品のセットのみを(array_filterを使用して)表示します
  • Q02には、Q01の"その他の電子"フィールドに入力されたテキスト("Another product")も表示されます
  • Q04は、Q02でチェックされた製品のみを表示します(配列フィルタの入れ子)
  • Q05はQ02でチェックされていない製品を表示します(入れ子のarray_filter_excludeを使用)




ダウンロード

上の例をダウンロードするには、次のリンクをクリックしてください。 LS2_cascading_array_filterのアンケート例


すべての質問タイプと属性を使用したパイピング/文言調整

概要

変数の命名方法(SGQAやQcode)がわからなくても心配いりません。主なドキュメンテーションでは、Qcode変数名の作成方法について説明していますが、実際のデモを見るのが一番です。このアンケートでは、式マネージャーを使用して質問の属性と回答にアクセスする方法を示します。


この例では、このアンケートを編集する際、組み込みのHTMLエディターをオフにする(またはポップアップモードに変換する)ことをお勧めします。HTMLエディターが大きなHTMLレポートを編集モードで表示するには、1分以上かかることがあります。


コンテンツ

  • すべての質問タイプの例
  • "その他"を使用できるすべての質問タイプが含まれているので、変数命名にどのように影響するかを見ることができます
  • 既定値を受け入れるすべての質問タイプの既定値
  • 文言調整 - ページ内、および別ページのレポートには、16種類のEMドット表記の接尾辞がすべて表示されています
  • これらのレポートには、現在入力されているすべてのデータが表示されます(回答画面印刷の代わりに印刷用レポートを生成する方法がわかります)
  • すべての変数に対するQcodeとSGQAによる適切な命名


スクリーンショット

これは巨大なアンケートであるため、スクリーンショットを表示しないことにしました。ダウンロードして確かめてください。


ダウンロード

アンケートをダウンロードするには、次のリンクをクリックしてください。 LS3_EM_question_attributes.lss


従来型の検証

概要

これは、式を使用するすべての検証タイプと、検証をサポートする質問タイプにどのように影響するかを示すものです。多くの場合、検証ヒントは非表示であり、検証基準に適合しなかった場合にのみ表示されます(したがって、検証基準に適合すると消えます)。


デモで使われている検証タイプ

  1. min_num_value_n - 回答の最小値
  2. max_num_value_n - 回答の最大値
  3. min_answers - 回答数の下限
  4. max_answers 回答数の上限
  5. multiflexible_min - 回答の最小値(マルチフレックスナンバー質問タイプの場合)
  6. multiflexible_max - 回答の最大値(ドロップダウン質問タイプの場合)
  7. min_num_value - 質問に対する全回答の合計の最小値
  8. max_num_value - 質問に対する全回答の合計の最大値
  9. equals_num_value - 質問に対する全回答の合計と一致すべき数値
  10. validation - 質問の正規表現検証で、個々のセルに適用可能


スクリーンショット

新しいCSSスタイルを使用すると、それぞれの検証タイプに別々のヒントが表示されます。表示されている場合は、hide_tipオプションで非表示にすることができます。既定では、質問が検証基準に適合しなかった場合は赤いフォントで表示し、検証基準に適合した場合は緑で表示します。



ユーザーは検証エラーのあるページを送信できません。間違った情報を入力した場合、すぐに警告されます。



この例のように、配列内の個々のセルで検証することができます。この例では、正規表現検証により、各エントリーが適切にフォーマットされた米国の電話番号(市外局番を含む)であることが保証されています。



ダウンロード

上の例をダウンロードするには、LS3_Validation_tests.zipをクリックしてください。


検証式

概要

場合によっては、従来の最小/最大基準を使用しても達成できないカスタム検証が必要な場合もあります。このためには、質問レベルあるいはサブ質問レベルで複雑な検証式を構築できるem_validation_qやem_validation_sqオプションを使用する必要があります。


サブ質問レベルでは、変数名を知らなくても配列内の各セルを簡単に検証できるよう、"this"変数も導入されています。詳細については、こちらをクリックしてください。


EM機能のデモ

  1. em_validation_q - 質問全体が有効かを決定する式です。
  2. em_validation_q_tip - 質問がem_validation_qの条件に適合しない場合に表示するメッセージです。
  3. em_validation_sq - 各サブ質問(配列のセル)が有効かを決定する式です。
  4. em_validation_sq_tip - サブ質問のいずれかが有効でない場合に表示されるメッセージです。

一般に、em_validation_sqを使用すると、無効なセルがあればそのセルの背景色が赤色に変わり、エラーがあることを示します。


スクリーンショット


この質問では、検証式を適用して、子供の年齢を降順で入力するようにしています。

q1_sq1 >= q1_sq2 && q1_sq2 >= q1_sq3 && q1_sq3 >= q1_sq4





以下の例では、検証式を適用することによって、指定された行について、回答された質問の数が3つ以下になるようになります。

(sum(Test_A_1, Test_A_2, Test_A_3, Test_A_4, Test_A_5) <= 3) && (sum(Test_B_1, Test_B_2, Test_B_3, Test_B_4, Test_B_5) <= 3) && (sum(Test_C_1, Test_C_2, Test_C_3, Test_C_4, Test_C_5) <= 3)

これを以下のように書くこともできます。LimeSurveyは実行時に自動的に上記の式に変換します。

(sum(self.sq_A) <= 3) && (sum(self.sq_B) <= 3) && (sum(self.sq_C) <= 3)



ダウンロード

上記の例で使用したアンケートサンプルをダウンロードするには、ls2_test_em_sq_validation.lssリンクをクリックしてください。


サブ質問の出現条件

概要

これは、array_filterと検証基準がどのように相互作用するかを示しています。合計に適用される検証では、出現条件を満たす(可視の)値のみが考慮されます。


EM機能のデモ

  1. array_filter
  2. array_filter_exclude
  3. min_num_value
  4. max_num_value
  5. equals_num_value

また、コアの質問で回答された質問の数を動的にレポートします。


スクリーンショット

可視行の数を変更すると、合計が動的に変更されます。サブ質問を出現条件を満たさないとマークしても、値はクリアされませんが、いかなる式にも影響しません。



最初の質問"どの行が下に表示されるべきか"について、"5番目のサブ質問"をチェックするとどうなるか確認してください。 2番目の"Enter some numbers(何か数字を入力してください)"という質問の合計が5になっていることに注意してください。その質問のサブ質問5の値はまだ14です(ここで、サブ質問5のチェックを外すと、14の値が再び表示されます)。その値は現在のところ出現条件を満たさないので合計に寄与しません。送信時に出現していないとき項目のデータはすべてクリアされますが(データベースではNULLに設定されます)、ユーザーが回答を変更する必要がある場合に備えて、ページ内で保持されています。



ダウンロード

この例をダウンロードするにはここをクリックしてください。 ls2_subquestion_relevance.lss


カンマを小数点として使用する

概要

式マネージャーは、有効な数値のみを数値フィールドに入力できるようにします。無効な数値を入力すると、何かが間違っていることが警告されます(fruityテーマの場合、質問全体が「赤色」になります)。

数値は常に、データベース内の小数点記号としてピリオドを使用したものに変換されることに注意してください。これにより、統計分析が適切に機能します。

小数点記号を変更するには、設定タブにあるテキストエレメントオプションにアクセスし、小数点で設定してください。


小数点について、詳細はこちらをクリックしてください。


小数点記号を使用する質問の種類

  1. 数値入力 [N]
  2. 複数数値入力 [K]
  3. 配列(数値) [:]
  4. 配列(テキスト) [;]でnumbers_only属性を使用する場合
  5. リスト(ラジオ) [L]でother_numbers_only属性を使用する場合
  6. 短いフリーテキスト [S]でnumbers_only属性を使用する場合
  7. 複数の短いテキスト [Q]で numbers_only属性を使用する場合
  8. 複数選択 [M]で other_numbers_only属性を使用する場合
  9. コメント付きの複数選択 [P]でother_numbers_only属性を使用する場合


スクリーンショット

以下のスクリーンショットではカンマを小数点記号として使用する例を確認できます。



ダウンロード

上記の例をダウンロードするには、次のリンクをクリックします。 ls2_comma_as_radix_separator.lss


グループのランダム化

概要

このアンケートでは、random_group属性を使用する方法を示します。

この属性を使用すると、アンケートを開始するたびに質問の順序がランダム化されます。ただし、ひとたびアンケートが開始されれば、言語を変更してもランダム化の順序は固定されたままになります。


スクリーンショット

以下の例を一緒にチェックしてみましょう。最初のページのランダム化された質問は、Q1、Q4、Q7になります。2番目のページのランダム化された質問は、Q2、Q5、Q8になります。



このアンケートを初めてテストしたときにランダム化が行われました。



2回目にアンケートをテストしたときは、ランダム化の結果が異なります。



しかし、(アンケートを再開せずに)フランス語に切り替えても、ランダム化された順序はそのまま残りました。



ダウンロード

上記の例をダウンロードするには、次のリンクをクリックしてください。 Randomization_Group_Test.lss


グループごとにランダムに質問する

概要

このアンケートでは、グループごとに質問をランダムに表示するようにアンケートを設定する方法を示します。アンケートの中にはそれぞれ6つの質問からなる5つのグループがあります。当初、グループ0には、ask1-ask5と呼ばれる隠された式タイプの質問が5つ設定されています。それぞれの質問テキストフィールドには{floor(rand(1,6.9999))}という値が設定されています。つまり、ask1-ask5変数の値はそれぞれ1〜6になります。次に、グループ内の各質問には"ask1==N"(Nはグループ内のN番目の質問を指す)のような出現条件の式があります(グループ1の3番目の質問は出現条件の式"ask1==3"を持つ)。

このアンケートは、1ページにすべての質問を配置するモード、グループごとにページを変えるモード、質問ごとにページを変えるモードそれぞれで同じように機能します。ランダム化は最初のグループに設定され、そのグループは実際は隠されており(ask1-ask5の質問のすべてが隠されているため)、ランダム化は回答者ごとに同じままです。別の回答者は、これとは異なるランダム化が実行されます。


機能のデモ

  1. 式質問タイプ
  2. ランダム化関数
  3. 条件(if)関数


スクリーンショット

これはGroup0で、式質問タイプを使用して、各グループ(4つの質問のみを持つ最後のグループを除く)ごとに1から6までのランダム値を選択します。"if()"関数は、まずask1がすでに設定されているかどうかをチェックし、そうであれば、その値を使用することに注意してください。値が設定されていない場合は、ランダム値を使用してask1の値を設定します。



このグループは、Group0の変数(ask4)を使用して、4つめのグループ内でどの質問が表示されるかを制御する方法を示しています。



ダウンロード

このアンケートの例をダウンロードするには、こちらをクリックしてください。 Random questions within a group survey example


グループ(質問のサブセット)内の特定の数の質問をランダムに質問する

  これは、1つのグループのすべてのランダム化された質問で、グループごと改ページまたは全質問1ページのフォーマットが使用されている場合にのみ適用されます。



概要

このアンケートでは、グループ内の質問のサブセットからランダムに尋ねる方法を示します。たとえば、グループ内にある10の質問のうち5つをランダムに質問します。

アンケートには10の質問を含む1つのグループがあります。すべての質問には同じランダム化グループ名が割り当てられます。これにより、ページの読み込み時にランダムな順序で表示されます。各質問には、グループ内の他のすべての質問の"relevanceStatus"の合計が、表示する質問の数よりも少なくなるような出現条件の式が与えられます。質問がレンダリングされるときに、relevanceStatusが割り当てられているので、先行する質問の数を適切に合計します。

したがって、10のうち5つ質問する例では、Q1の方程式は次のようになります。

sum(Q2.relevanceStatus, Q3.relevanceStatus, Q4.relevanceStatus, Q5.relevanceStatus, Q6.relevanceStatus, Q7.relevanceStatus, Q8.relevanceStatus, Q9.relevanceStatus, Q10.relevanceStatus) LT 5

Q2の場合は、次のようになります。

sum(Q1.relevanceStatus, Q3.relevanceStatus, Q4.relevanceStatus, Q5.relevanceStatus, Q6.relevanceStatus, Q7.relevanceStatus, Q8.relevanceStatus, Q9.relevanceStatus, Q10.relevanceStatus) LT 5

以下同様。


機能のデモ

  1. relevanceStatus変数
  2. ランダム化


ダウンロード

この例をダウンロードするには、次のリンクをクリックしてください。 Random 5 out of 10 survey example

ユーザが入力した商品リストの順位付け

概要

以下の例は、ユーザーが関心を持つであろう一連の製品をリストとして提示し、それらの製品を評価(順位付け)させる方法を示しています。


EM機能のデモ

  1. 回答の文言調整 - 商品を評価するとき、ラベルは前の複数選択質問のコメントフィールドから引用します
  2. 尺度の調整 - 尺度の見出しのような高度な質問オプションの文言の調整できます。


スクリーンショット

この画像は、前の質問で製品1、3、5が選択されているとき、array_filter属性を使用してその3つしか表示されないことを示しています。さらに、2番目の質問の行ラベルは、製品番号(コメントフィールドに何も入力されていない場合)またはコメントフィールドの内容になっています。



この画像は、質問文がどのように調整されるかを示しています。



これは、その質問に対するロジックファイルの表示です。これにより、条件付きロジックが必要に応じて動作することを確認できます(構文エラーがないかどうかなど)。



次の画像には、5点の評価尺度(オプション1-5)、尺度のタイトル、および評価したい製品を指定したグループが表示されています。最後の質問は、配列の質問の各々を調整できることを示しています。



次の画像は、最後の質問の論理ファイルビューを示しています。ご覧のように、サブ質問、回答、尺度のヘッダーを調整することができます。



ダウンロード

この例をダウンロードするには、次のリンクをクリックしてください。Rating user-entered list of products survey example