I wrote an if/then statement with many conditions. it is telling me I have a parse error at the last character of the code but it does not turn black. I have tried to remove the enter and then I get a squiggly line under "endif" shwoing that is an error. I put the return back in and it gives me the parse error again. I am not sure what I could be doing wrong, but I feel it is something simple. Would someone take a look and see if you can identify the cause?
Here is the code...
If [Measure Code] = "CAUTI_RATE_ICU_P" or if [Measure Code] = "CLABSI_RATE_ICU_P" or if [Measure Code] = "MRSA_RATE" or if [Measure Code] = "ADE_ANTICOAG" or if [Measure Code] = "PU_STAGE3" then ([Performance Numerator]/[Performance Denominator]) * 1000 else if [Measure Code] = "CDIFF_RATE" then ([Performance Numerator]/[Performance Denominator]) *10000 else if [Measure Code] = "SSI_COLO_RATE" or if [Measure Code] = "SSI_HYST_RATE" or if [Measure Code] = "SSI_KPRO_RATE" or if [Measure Code] = "COVID_VAC_COMP" or if [Measure Code] = "COVID_ED_NON_VENT" or if [Measure Code] = "COVID_ED_VENT" or if [Measure Code] = "COVID_HOSP_ONSET" or if [Measure Code] = "ADE_HYPOGLYCEMIA" or if [measure code] = "ADE_OPIOID_RATE" or if [Measure Code] = "READM_30D_HW" or if [Measure Code] = "SEPSIS_MORT" or if [Measure Code] = "SEPSIS_SHOCK" then ([Performance Numerator]/[Performance Denominator]) * 100 else ([Performance Numerator]/[Performance Denominator]) endif
Solved! Go to Solution.
Does this work:
If [Measure Code] IN ("CAUTI_RATE_ICU_P", "CLABSI_RATE_ICU_P","MRSA_RATE","ADE_ANTICOAG","PU_STAGE3") then ([Performance Numerator]/[Performance Denominator]) * 1000 elseif [Measure Code] = "CDIFF_RATE" then ([Performance Numerator]/[Performance Denominator]) *10000 elseif [Measure Code] IN("SSI_COLO_RATE", "SSI_HYST_RATE","SSI_KPRO_RATE","COVID_VAC_COMP" ,"COVID_ED_NON_VENT","COVID_ED_VENT","COVID_HOSP_ONSET", "ADE_HYPOGLYCEMIA","ADE_OPIOID_RATE","READM_30D_HW", "SEPSIS_MORT","SEPSIS_SHOCK") then ([Performance Numerator]/[Performance Denominator]) * 100 else ([Performance Numerator]/[Performance Denominator]) endif
I'm surpised alteryx didnt' flag "or if" from the get-go. Or implies a second IF statement so that's wrong. It's just OR.
Hi @aberthiaume
"else if" should be "elseif" and you do not need the "if" after each "or"
This should work:
If [Measure Code] = "CAUTI_RATE_ICU_P" or [Measure Code] = "CLABSI_RATE_ICU_P" or [Measure Code] = "MRSA_RATE" or [Measure Code] = "ADE_ANTICOAG" or [Measure Code] = "PU_STAGE3"
then ([Performance Numerator]/[Performance Denominator]) * 1000
elseif [Measure Code] = "CDIFF_RATE"
then ([Performance Numerator]/[Performance Denominator]) *10000
elseif [Measure Code] = "SSI_COLO_RATE" or [Measure Code] = "SSI_HYST_RATE" or [Measure Code] = "SSI_KPRO_RATE" or [Measure Code] = "COVID_VAC_COMP" or [Measure Code] = "COVID_ED_NON_VENT" or [Measure Code] = "COVID_ED_VENT" or [Measure Code] = "COVID_HOSP_ONSET" or [Measure Code] = "ADE_HYPOGLYCEMIA" or [Measure code] = "ADE_OPIOID_RATE" or [Measure Code] = "READM_30D_HW" or [Measure Code] = "SEPSIS_MORT" or [Measure Code] = "SEPSIS_SHOCK"
then ([Performance Numerator]/[Performance Denominator]) * 100
else ([Performance Numerator]/[Performance Denominator])
endif
@aberthiaume you don’t need to keep restarting your ifs so every time you have ‘or if’ you just need ‘or’. I can also see that you use ‘else if’ which should be one word ‘elseif’.
Because you’re restarting the if statement (or nesting), Alteryx will be looking for an else/then/endif for every single instance of this.
Also (sorry, on mobile so can’t edit)… instead of typing out loads of ‘or’ statements to check the same variable, you can just use IN, so:
if [Measure Code] IN (‘A’,’B’,’C’) then…
Where ABC (and more if needed) are the values you’re checking for such as CAUTI_RATE_ICU.
can you try this
If [Measure Code] IN ("CAUTI_RATE_ICU_P","CLABSI_RATE_ICU_P","MRSA_RATE",
"ADE_ANTICOAG","PU_STAGE3") then
([Performance Numerator]/[Performance Denominator]) * 1000
elseif
[Measure Code] = "CDIFF_RATE" then
([Performance Numerator]/[Performance Denominator]) * 10000
elseif
[Measure Code] IN ("SSI_COLO_RATE","SSI_HYST_RATE","SSI_KPRO_RATE","COVID_VAC_COMP","COVID_ED_NON_VENT","COVID_ED_VENT","COVID_HOSP_ONSET","ADE_HYPOGLYCEMIA",
"ADE_OPIOID_RATE","READM_30D_HW","SEPSIS_MORT","SEPSIS_SHOCK") then ([Performance Numerator]/[Performance Denominator]) * 100
else
([Performance Numerator]/[Performance Denominator])
endif