Expression Manager big 'if' list

More
1 week 6 days ago #170864 by redbeard
redbeard created the topic: Expression Manager big 'if' list
Hi,

Thank you for taking the time to take a look at my question.

I have a question which asks users to pick a choice from a drop down list with 21 answers.
Depending on the answer, I want to give a score between 1 and 3. (score to be saved in DB)


I think it's possible to do this with a long 'if' statement, something like this (I have only put in the first 2 of 21 answers here):
{if(Q8 == 'AGRICULTURE, FORESTRY AND FISHING', '1', if(Q8 == 'MINING AND QUARRYING', '2', '3' ))}
  1. Is there a better way of doing this than a long if statement?
  2. The code above doesn't work - I have tried with and without the '
  3. Rather than using the answer text in the Expression, is it possible to use the Answer code?

Many thanks for any help on this

Please Log in or Create an account to join the conversation.

More
1 week 6 days ago #170865 by Joffm
Joffm replied the topic: Expression Manager big 'if' list
Hi,
of course, you have to use the code.
And with only three different scores, it is something like:

{if(Q8==1 or Q8==3 or Q8==13,1,if(Q8==2 or Q8==4 or Q8==12,2,3))}

Best regards
Joffm


Volunteers are not paid.
Not because they are worthless, but because they are priceless
The following user(s) said Thank You: redbeard

Please Log in or Create an account to join the conversation.

More
1 week 4 days ago #170901 by DenisChenu
DenisChenu replied the topic: Expression Manager big 'if' list
Yes , you can manual.limesurvey.org/Expression_Manager#Conditional_Equations (see manual.limesurvey.org/images/1/1f/Tailoring9.jpg )

But with a lot of if, you can do someting like this :
{join(
if(Q8==1 or Q8==3 or Q8==13,1,''),
if(Q8==2 or Q8==4 or Q8==12,2,''),
if(Q8==1 and Q8==3 and Q8==13 and Q8==2 and Q8==4 and Q8==12)
)}

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand (or search sondages pro).
An error happen ? Before make a new topic : remind the Debug mode .
The following user(s) said Thank You: redbeard

Please Log in or Create an account to join the conversation.

Start now!

Just create your account and start using Limesurvey today.

Register now
Join our Newsletter!