Forum Discussion

StuBee's avatar
StuBee
Helper I
3 years ago
Solved

Switch Table Custom Format failing to sort data correctly

Hello,
 
When I use a custom format on my data, the data gets sorted based on the first number as shown below.

 

 

This is the code I am using, I have tried with max instead of values and without stating that it can't be 0.

 

Also have used the "Currency" option, however this put all the negative numbers at the top of the list as they where in ().

 
Sales = if(HASONEVALUE('Table'[Table]),
Switch(
True(),
Values('Table'[Table]) =
"Revenue" && [Rev LW]<>0, FORMAT ([Rev LW], "$#,###"),
Values('Table'[Rev/Units]) =
"Units" && [Units LW]<>0, FORMAT([Units LW], "0")),
[Units LW])
 
Can anyone give me any ideas on how best to tackle this,
 
Thank you
  • Hi StuBee 

     

    It's a bad idea, indeed, to format a numeric measure with FORMAT and return a string (unless you need to incorporate such a value into some kind of text but even then you create a version of the measure). Such "values" will always be sorted as strings, not numbers. That's one thing. A measure should always return the raw value (always of the same type). Mixing floats with integers is a NO-NO. Measures should be consistent. Otherwise you'll be facing issues. And, as we see, you do. Formatting a measure should be done in the UI option in the ribbon. So, if you have a measure that wants to return different types of info, you're most likely doing it wrong. You should rethink the design.

2 Replies

  • daXtreme's avatar
    daXtreme
    Solution Sage

    Hi StuBee 

     

    It's a bad idea, indeed, to format a numeric measure with FORMAT and return a string (unless you need to incorporate such a value into some kind of text but even then you create a version of the measure). Such "values" will always be sorted as strings, not numbers. That's one thing. A measure should always return the raw value (always of the same type). Mixing floats with integers is a NO-NO. Measures should be consistent. Otherwise you'll be facing issues. And, as we see, you do. Formatting a measure should be done in the UI option in the ribbon. So, if you have a measure that wants to return different types of info, you're most likely doing it wrong. You should rethink the design.

    • StuBee's avatar
      StuBee
      Helper I

      Ahh ok, so is there no good way to use a switch function to return a whole number and switch to currency?

       

      That's fine, they can see it is revenue from the box they click can't they.

       

      Thanks, you confirmed what I was hoping wasn't the case.