Have an idea?

Visit Sawtooth Software Feedback to share your ideas on how we can improve our products.

Constructed list with multiple response grid

Hello,

I am trying to build a constructed list based on answers from a multiple response grid but get error messages.

I have a question B1 with brand awareness. In B4, which is a multiple response grid, I insert the brands selected in B1 in the rows, this list is called B4RowListC. In the column list, B4ColList , I have a 7 statements.
For B5, which is a grid, I want to include brands in the row where in B4 a respondent selected statement 2 or 3 for that brand. This list is called B5RowListC.

But I don't know how to create this B5RowListC. In a previous study I have the same setup but without a multiple response grid in B4, and then I did like this:
Parent: B1list
Instructions:
AIE(B4,2)
AIE(B4,3)

This does not work now when I have a multiple response grid, I get message "AIE is used with the wrong type or the wrong number of arguments".  Any tips?
asked May 25, 2021 by Timmy

1 Answer

0 votes
 
Best answer
Timmy,

I'm assuming your grid is row-based and that in your list B5RowListC you are using the column list from B4 as your parent list.  As you have this set up as multiple response you can add the selected items 2 and 3 by row this way:

AIC (B4_r1, 2,3)
AIC (B4_r2, 2,3)
...

if you just have a few rows this is probably the easiest, otherwise you could set up a perl for loop.  So, in this example if you had 15 rows you could simplify it this way:

Begin Unverified Perl
    
my $i=1;
    
for($i=1; $i<=15; $i++)
 { AIC ("B4_r".$i,2,3); }
  
End Unverified
answered May 25, 2021 by Jay Rutherford Platinum (50,145 points)
To clarify, the reason you were having an issue is due to the way data is stored.  In a single response the question retains the value of the response (i.e. 2 and 3).  However, in a multiple response each option is defined by a column and the data is stored as 1 or 0 (selected or not selected).  Therefore the equal to logic doesn't work.
Thanks Jay for your input!

It's getting closer, but now I get the columns (the
 statements) from B4  in the row for B5. I want the rows  (brands) from B4. And I can not use row list from B4 as parent list as that is not an option (I guess due to the list from B4 is constructed based on B1).

Any idea?
Ahh, I see what you are looking for now.  Since the B4 row list is based on the parent list from B1 then, yes, that is what your parent list should be.  Again, below change 15 to however many rows you have defined in B4.  I assumed the parent list is B1List, but change that to the parent list name.  This should do what you are looking for.

Begin Unverified Perl
    
my $i=1;
    
for($i=1; $i<=15; $i++)
 {
  if (VALUE("B4_r".$i."_c2")==1 || VALUE("B4_r".$i."_c3")==1)
   {  
    ADD("B1List",$i);
   }
 }
 
End Unverified
Thanks Jay, works perfectly!
Great!  Sorry, I should have been clearer to indicate that this perl logic is just used for the constructed list logic (but it seems you figured that part out).  Looks like you are on your way to becoming more advanced at constructed lists!
...