Hi Alicia,
This is somewhat difficult because select_multiple values store the choices in the order they were input. For example you could have a situation of:
Q1: A,B,C
Q2: B,C,A
This would be regarded as different with your criteria, even though the same choices have been selected. What you instead need to do is check, choice by choice, whether a choice is selected in both questions. This can be done by using the selected() function. selected() returns True if a choice is selected; combining the selected() function for the 2 questions together:
selected(${q1},'choice1') and selected(${q2},'choice1')
We will get a True value only if both q1 & q2 have 'choice1' selected. We get flip that to False (which we need for a constraint to work properly) by using the not() function:
not(selected(${q1},'choice1') and selected(${q2},'choice1'))
When used as a constraint calculation, this will now throw an error if choice1 has been selected in both questions. To check all choices, we need to join copies of this for each choice together with 'and' statements, so that one of them being False means the entire statement is False:
not(selected(${q1},'choice1') and selected(${q2},'choice1')) and not(selected(${q1},'choice2') and selected(${q2},'choice2')) and not(selected(${q1},'choice3') and selected(${q2},'choice3')) ...
See the attached sample