Actions

QS

Array filter: Difference between revisions

From LimeSurvey Manual

(Created page with "<translate> <!--T:1--> <languages /> <onlyinclude> ===Array filter (array_filter)=== <!--T:22--> <!--T:23--> '''Description''' <!--T:24--> The Array filter advanced settin...")
 
mNo edit summary
(19 intermediate revisions by 5 users not shown)
Line 3: Line 3:
<languages />
<languages />
<onlyinclude>
<onlyinclude>


===Array filter (array_filter)=== <!--T:22-->
===Array filter (array_filter)=== <!--T:22-->
Line 11: Line 10:


<!--T:24-->
<!--T:24-->
The Array filter advanced settings allow you to use any multiple choice question to select or set which responses display in a subsequent list, array or multiple choice question.
The '''Array filter''' setting allows you to use any multiple choice question to select or set which responses are displayed in a subsequent list, array or multiple choice question.


<!--T:25-->
<!--T:25-->
<div class="simplebox">Starting in 1.92, subsequent questions can be filtered on any array question types, including:
<div class="simplebox">The subsequent questions can be filtered on any array question type, including:
*Multiple choice
*Multiple choice
*Multiple choice with comments
*Multiple choice with comments
Line 24: Line 23:


<!--T:26-->
<!--T:26-->
Furthermore, each of these types of questions can filtered.
Furthermore, each of these question types can be filtered.


<!--T:27-->
<!--T:27-->
The only exception is Array (Column), which can filter other questions, but can not itself be filtered.</div>
The only exception is ''Array (Column)'', which can filter other questions, but not itself.</div>


<!--T:28-->
<!--T:28-->
'''To set a filter'''
'''How to set a filter'''


<!--T:29-->
<!--T:29-->
Enter the question code of a multiple options question to use as the source information into the setting for array filter. For example, if your source multiple option question code is "Q1" enter "Q1" into either the 'Array Filter' input or the 'Array Filter Exclusion' input in the '''advanced settings''' of the question you want to filter. Only answer options that are selected in question Q1 will be visible in the array_filter-ed question.
To set a filter, enter the question code of a multiple options question in the array filter box of the question you are currently editing. The respective question will be used as the source of information for the current question, the selected answers from the previous question being retrieved and used as answer options for the current question. '''For example''', if your source multiple option question code is "Q1", enter "Q1" into the 'Array Filter' box to start the filtering process of the answers. Only the answer options that are selected in question Q1 will be visible in the array_filter-ed question.
 
<!--T:30-->
<div class="simplebox">Starting in 1.92, you can enter multiple array_filter options for a single question, separated by semicolons</div>


<!--T:31-->
<!--T:56-->
Array filter question settings ''require'' the questions being used to have exactly matching lists of answers. If the questions do not have exactly the same set of answers and codes, then the filters will break.
<div class="simplebox">If you wish more questions to be filtered via this option, type the question codes in the box separated by semicolons (;). </div>


<!--T:32-->
<!--T:57-->
<div class="simplebox">Starting in 1.92, if Q2 has sub-questions that are not present in Q1, they will always be displayed rather than breaking the filters.</div>
{{Alert|Title=Attention|text=The subquestion codes used in the first question must coincide with the subquestion codes from the second one. Otherwise, the '''array filter''' function will not filter the answers to the first question. Check the below example to better understand how the whole system works.}}


<!--T:33-->
<!--T:33-->
Line 48: Line 44:


<!--T:34-->
<!--T:34-->
The Array filter will cascade &ndash; that is you can select a question which filters another question, which filters another question, and so on.
The selected options can be displayed in cascade. This means that you can select a question which filters another question, which filters another question, and so on.


<!--T:35-->
<!--T:35-->
'''Array filter example'''
'''Array filter example'''


<!--T:36-->
<!--T:58-->
Ticking items &lsquo;One&rsquo;, &lsquo;Three&rsquo; and &lsquo;Four&rsquo; in the first question results in the entries 'One', 'Three' and 'Four' displaying in the subsequent question which uses array filter
Let's take a look at the following example to better understand the power of this setting:
 
<!--T:37-->
Multi option question
 
<!--T:38-->
Code:Q1
 
<!--T:39-->
Question: Which animals do you like?
 
<!--T:40-->
1 Cat
 
<!--T:41-->
2 Dog
 
<!--T:42-->
3 Zebra
 
<!--T:43-->
Array 5 Point Choice Question
 
<!--T:44-->
Code:Q2
 
<!--T:45-->
Question: Rate these animals on a scale of 1 to 5, where 1 is ''I like them a little'' and 5 is ''I like them a lot''
 
<!--T:46-->
'''Array filter example 2 - Using Multiple Short Text'''


<!--T:47-->
<div class="simplebox">Note: This features is available starting in version 1.92</div>


<!--T:48-->
<!--T:48-->
[[File:array_filter_with_multipe_short_text.jpg]]
<center>[[File:array_filter_with_multipe_short_text.jpg]]</center>


<!--T:49-->
Here is the Limesurvey Group file for the above demo


<!--T:50-->
<!--T:59-->
[[Media:limesurvey_group_32.lsg|limesurvey_group_32.lsg]]
In the screenshot from above, we got two questions. The first one is a ''multiple short text'' question type, while the second one is an ''array dual scale'' question type. The answers you provide in the first question will be listed in the second one. Technically, the answers you provide to the subquestions from the first question are filtered and displayed in the second question.


<!--T:51-->
<!--T:60-->
'''Array filter example 3 - Cascading Array Filters'''
This example can be downloaded from the following link: [[Media:limesurvey_group_32.lsg|limesurvey_group_32.lsg]]. [[Question_groups_-_introduction#Import_a_question_group|Import this question group]] into your LimeSurvey installation.
 
</onlyinclude>
<!--T:52-->
This sample survey shows use of array_filter, array_filter_exclude, and exclude_all_others, plus cascading array filters.
 
<!--T:53-->
[[Media:ls2_cascading_array_filter.lss|ls2_cascading_array_filter.lss]]


</onlyinclude>
<!--T:55-->
[[Category:Question Settings]][[Category:Question Logic Options]]


</translate>
</translate>

Revision as of 11:25, 20 April 2018


Array filter (array_filter)

Description

The Array filter setting allows you to use any multiple choice question to select or set which responses are displayed in a subsequent list, array or multiple choice question.

The subsequent questions can be filtered on any array question type, including:
  • Multiple choice
  • Multiple choice with comments
  • Multiple short text
  • Multiple numeric
  • Array (5 point, 10 point, Yes/No/Unknown, Increase/Same/Decrease, Column)
  • Array (Dual Scale, Text, Numbers)
  • Ranking

Furthermore, each of these question types can be filtered.

The only exception is Array (Column), which can filter other questions, but not itself.

How to set a filter

To set a filter, enter the question code of a multiple options question in the array filter box of the question you are currently editing. The respective question will be used as the source of information for the current question, the selected answers from the previous question being retrieved and used as answer options for the current question. For example, if your source multiple option question code is "Q1", enter "Q1" into the 'Array Filter' box to start the filtering process of the answers. Only the answer options that are selected in question Q1 will be visible in the array_filter-ed question.

If you wish more questions to be filtered via this option, type the question codes in the box separated by semicolons (;).
  The subquestion codes used in the first question must coincide with the subquestion codes from the second one. Otherwise, the array filter function will not filter the answers to the first question. Check the below example to better understand how the whole system works.


Cascading

The selected options can be displayed in cascade. This means that you can select a question which filters another question, which filters another question, and so on.

Array filter example

Let's take a look at the following example to better understand the power of this setting:



In the screenshot from above, we got two questions. The first one is a multiple short text question type, while the second one is an array dual scale question type. The answers you provide in the first question will be listed in the second one. Technically, the answers you provide to the subquestions from the first question are filtered and displayed in the second question.

This example can be downloaded from the following link: limesurvey_group_32.lsg. Import this question group into your LimeSurvey installation.