Hello !
I have a total sum Qt calculated with five input questions q1 to q5. Note that some of these five questions may not show up, according to their relevance.
I want to constraint Qt to match with a previously entered value V.
But I’ve noticed that it’s not working when all input questions q1 to q5 are not answered.
Could anyone help me out please ?
Hi @Dieudonne, welcome to the community!
Does your Qt sum shows NaN
?
Can you provide a screenshot so community could understand a little better?
1 Like
Yes Qt shows NaN until all input questions (q1 to q5) are answered.
Actually, input value (q1 to q5) derive from a select_multiple question where enumerators will not check all boxes necessarily.
Hi @Dieudonne,
Can you take a screenshot of the calculation
and the choices of select_multiple question
?
1 Like
This is the survey sheet screenshot to better show the issu. Thanks
This is the choices sheet screenshot
Can you also show the calculation of the Qt too?
1 Like
In the ODK Form Logic, unanswered number questions are nil. That is, they have no value. When a variable referencing an empty value is used in a math operator or function, it is treated as Not a Number (NaN
). The empty value will not be converted to zero. The result of a calculation including NaN
will also be NaN
, which may not be the behavior you want or expect.
To convert empty values to zero, you can use either the coalesce()
function or the if()
function.
coalesce(${potentially_empty_value}, 0)
if(${potentially_empty_value}="", 0, ${potentially_empty_value})
In your case, changing the calculation of Qt
to:
coalesce(${q1}, 0) + coalesce(${q2}, 0) + coalesce(${q3}, 0) + coalesce(${q4}, 0) + coalesce(${q5}, 0)
should hopefully work
Please let me know if this works.
Best,
4 Likes
It works very fine.
Thank you very much!
2 Likes