Forum Discussion

UNICODE's avatar
UNICODE
Helper I
4 years ago
Solved

SWITCH function for changing UNICODE values not working correctly.

Hello Everyone, I have one that has stumped me.  

I have written a switch statement that will change the UNICODE values of in a calculated column.  I would like it to display the LAST value in a card visual to indicate the last state.   What I am finding is that it is showing the UNICODE value with the highest value.  

 

I have attached a screen shot 

I was hoping for it to select the face at the 0.75 value (128531 unicode value)  instead it picks the 0.5 value (128532) as the Last Value.  If I pick a higher UNICODE value (128533 for example) then the card will display this value.  

 

Here is the source code for the switch statement.   I will attatch the BI file if I can figure out how. 

Face Changer Column = 
VAR WUCL=UNICHAR(128531)
VAR UCL=UNICHAR(128530)
VAR sigma=UNICHAR(128532)
VAR good=UNICHAR(128513)
VAR UCLV=0.875
VAR WUCLV=0.625
VAR sigmaV=0.5
Var goodV=0.3
VAR SWITCHER=
Switch(TRUE(),
'Example Data'[Value]>=UCLV,UCL,
'Example Data'[Value]>=WUCLV,WUCL,
'Example Data'[Value]>=sigmaV,sigma,good)

Return SWITCHER

 

  • UNICODE's avatar
    UNICODE
    4 years ago

    This appears to be working now.  I did two things. 

    1. I moved it to a measure. 
    2. I changed the code, adding the MAX function. 

    FCMES = 
    VAR WUCL=UNICHAR(128531)
    VAR UCL=UNICHAR(128530)
    VAR sigma=UNICHAR(128532)
    VAR good=UNICHAR(128513)
    VAR UCLV=0.875
    VAR WUCLV=0.625
    VAR sigmaV=0.5
    Var goodV=0.3
    VAR SWITCHER=
    Switch(TRUE(),
    Max('Example Data'[Value])>=UCLV,UCL,
    MAX('Example Data'[Value])>=WUCLV,WUCL,
    Max('Example Data'[Value])>=sigmaV,sigma,good)
    
    Return SWITCHER

     

4 Replies

  • UNICODE , You need to create this face change measure on the measure, I doubt you are creating a column based on column

     

    example

     

    Switch(TRUE(),
    sum('Example Data'[Value]) >=UCLV,UCL,
    sum('Example Data'[Value])>=WUCLV,WUCL,
    sum('Example Data'[Value])>=sigmaV,sigma,good)

    • UNICODE's avatar
      UNICODE
      Helper I

      This appears to be working now.  I did two things. 

      1. I moved it to a measure. 
      2. I changed the code, adding the MAX function. 

      FCMES = 
      VAR WUCL=UNICHAR(128531)
      VAR UCL=UNICHAR(128530)
      VAR sigma=UNICHAR(128532)
      VAR good=UNICHAR(128513)
      VAR UCLV=0.875
      VAR WUCLV=0.625
      VAR sigmaV=0.5
      Var goodV=0.3
      VAR SWITCHER=
      Switch(TRUE(),
      Max('Example Data'[Value])>=UCLV,UCL,
      MAX('Example Data'[Value])>=WUCLV,WUCL,
      Max('Example Data'[Value])>=sigmaV,sigma,good)
      
      Return SWITCHER

       

    • UNICODE's avatar
      UNICODE
      Helper I

      Initially I had did this as a calculated column. 

       


      Using the Sum makes sense to conver it over to a measure, ie it needing a single value to compute.   The problem with using SUM is it starts adding the 
      Example Data'[Value] together and gives the incorrect results.  

      MIN returns the UNICODE with the smallest code value.  
      MAX always returns the one with the largest code value