Have an idea?

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

Add if not shown in previous list

I have a select question with 3 categories in the list. I would like show the respondent a random two of the three categories and have them select one. Then in the next question I would like to show the one they selected along with the other one that wasn't shown previously. There is a reason for not showing all three at once. The list may expand from 3 to 4 or five and I would need to continue this process all the way down.
asked Dec 7, 2020 by segrin (355 points)
Can you clarify on how exactly this process would continue to support 4+ items in the original list?  Every Nth question should display two options: the item selected in the N-1th question and an item that has not been presented yet?
That's it. Each question would show the item selected in the previous question along with another random one of the remaining items.

1 Answer

0 votes
 
Best answer
Fun question.  I think I've got a solution; let's step through the process of implementing it.  Naturally it will involve a series of select questions and constructed lists.

First, let's start by creating a predefined list with all the items you want to be involved in the "tournament."  Then we'll need to create our first constructed list.  I'm guessing we're just choosing two items randomly:

Add(list1)
Randomize()
SetListLength(2)


("list1" being the name of the predefined list.)

Create a select question that uses that constructed list, then we can add our second constructed list.  This constructed list should have these instructions, with an optional additional Randomize at the end if you want the previously-selected item to not always appear first in the next question:

Add(list1)
Remove(list2)
Randomize()
Insert(1, list1, Q1)
SetListLength(2)


("list2" being the name of the first constructed list, and "Q1" being the name of the first select question.)

Now we can start continuing this process as far as we need it.  Each constructed list will have the same instructions as what exists in the second code block, with two modifications:

* Repeat line 2 with each additional constructed list, removing the items of all previous constructed lists.

* Update line 4 to replace "Q1" with the name of the previous select question.
answered Dec 7, 2020 by Zachary Platinum Sawtooth Software, Inc. (171,950 points)
selected Dec 7, 2020 by segrin
BRILLIANT, Zachary! That did it! Thank you so much.
Very nice!
...