Hello! I am creating a conditional calculation for an integer field based on selection/input in a different field. To me, this seemed like a simple nested if statement, so please help me fix where I am going wrong with the logic or formatting.
I've attached a word doc with all of the different attempts, but below is the last one I tried, selection options '2'-'6' are domain values for the field name ObstructionImpacted.
(if(selected(${ObstructionImpacted},’2’),5div10), if(selected(${ObstructionImpacted},’3’),2div10), if(selected(${ObstructionImpacted},’4’),4div10), if(selected(${ObstructionImpacted},’5’),1div10), if(selected(${ObstructionImpacted},’6’),1),0)
So basically the logic I am trying to calculate is:
IF {ObstructionImpacted} = '2' then calculate 5/10
IF {ObstructionImpacted} = '3' then calculate 2/10
IF {ObstructionImpacted} = '4' then calculate 4/10
IF {ObstructionImpacted} = '5' then calculate 1/10
IF {ObstructionImpacted} = '3' then the result is 1
OR the result is 0
Any help would be greatly appreciated! @JamesTedrick
Solved! Go to Solution.
Each has it own errors. Try this one with some spaces missing. Also all the parens all go at the end.
(if(selected(${ObstructionImpacted}, ’2’), 5 div 10, if(selected(${ObstructionImpacted}, ’3’), 2 div 10, if(selected(${ObstructionImpacted}, ’4’), 4 div 10, if(selected(${ObstructionImpacted}, ’5’), 1 div 10, if(selected(${ObstructionImpacted}, ’6’), 1 , 0)))))
Hope that does it
Each has it own errors. Try this one with some spaces missing. Also all the parens all go at the end.
(if(selected(${ObstructionImpacted}, ’2’), 5 div 10, if(selected(${ObstructionImpacted}, ’3’), 2 div 10, if(selected(${ObstructionImpacted}, ’4’), 4 div 10, if(selected(${ObstructionImpacted}, ’5’), 1 div 10, if(selected(${ObstructionImpacted}, ’6’), 1 , 0)))))
Hope that does it
That did it! Thank you SO MUCH! This helps me write several more codes in my form as well; I really appreciate it.
I'm having a similar issue with this kind of nested if statement. I'm not sure if I am able to do a calculation like this with text instead of numbers. What I am trying to do is add a hidden field of "category." I want some utilities labeled as Water, or Sanitary, or Storm all in one field.
Would someone look to see what I'm doing wrong, because I keep getting this automatic entry on the actual survey: ReferenceError: Water is not defined in expression.
(if(selected(${utility}, 'Hydrant'), Water Distribution, if(selected(${utility}, 'Gate Valve'), Water Distribution, if(selected(${utility}, 'Curb Stop'), Water Distribution, if(selected(${utility}, 'Sanitary Manhole'), Sanitary Sewer, if(selected(${utility}, 'Clean Out'), Sanitary Sewer, if(selected(${utility}, 'Storm Manhole'), Storm Drain, if(selected(${utility}, 'Inlets/Catch Basin'), Storm Drain, Other))))))))
Thank you!
Hi Kaitlyn
You just needed to put single quotes around the true parts of your if statement:
(if(selected(${utility}, 'Hydrant'), 'Water Distribution', if(selected(${utility}, 'Gate Valve'), 'Water Distribution', if(selected(${utility}, 'Curb Stop'), 'Water Distribution', if(selected(${utility}, 'Sanitary Manhole'), 'Sanitary Sewer', if(selected(${utility}, 'Clean Out'), 'Sanitary Sewer', if(selected(${utility}, 'Storm Manhole'), 'Storm Drain', if(selected(${utility}, 'Inlets/Catch Basin'), 'Storm Drain', 'Other'))))))))
It was complaining about 'water' not being a defined expression because it was the first string that wasnt quoted in single quotations.
Hope that helps. If there's still issues then please post your survey, it would make it easier to assist
Thanks so much! Worked like a charm!
If it gets any bigger than this use pulldata to go get the category it will be easier.