Skip to main content
September 21, 2022
Question

value by ranges

  • September 21, 2022
  • 5 replies
  • 0 views

I need an expression which finds corresponding value based on ranges:

Input:
x
{v1,v2,...,vn+1}
{r1,r2,...,rn}

Result:
if (x<=r1) then v1
else if (x<=r2) then v2
....
else if (x<=rn) then vn
else vn+1

Thanks

    5 replies

    harshitb6843
    September 21, 2022

    displayValue() is the function you need. 
    docs.appian.com/.../fnc_conversion_displayvalue.html

    humil914Author
    September 21, 2022

    To my best understanding displayValue is checks for equality not for less or equal 

    September 21, 2022

    can you use match function for this?

    stefanhelzle0001
    September 21, 2022

    Assuming that the list of ranges is sorted, the following code should do this. I use the list comprehension feature of operators to compare x to all ranges, the use where() to get the indexes of matches, pick the first match and the pick the value for that matching index.

    a!localVariables(
      local!x: 4,
      local!values: {23, 5, 468, 123, 42, 500},
      local!ranges: {1, 2, 3, 4, 5},
      index(
        local!values,
        index(where(local!x <= local!ranges), 1, count(local!values)),
        0
      )
    )