Forum Discussion

edhans's avatar
edhans
Community Champion
6 years ago
Solved

Convert boolean to scalar value?

This might be a simple question but it is eluding me, short of a longer measure (which I have already created), is there a single function to convert boolean field to a scalar value?

 

For example, MIN and MAX can be used to convert text and number fields to a scalar value, and FIRSTDATE and LASTDATE will do the same for a date field, but MIN/MAX cannot be use on boolean (TRUE/FALSE) columns.

 

Scanning through the DAX functions isn't revealing anything.

 

I don't need a measure to do this. I've already done that. I just wondered if there was a single function to do this like there is for text, numbers, and dates.

  • Anonymous's avatar
    Anonymous
    6 years ago

    Hi edhans ,

     

    You can use SELECTEDVALUE() function instead of MAX() function.

    Last Date Is Validated = CALCULATE(SELECTEDVALUE('Table'[Validated] ),FILTER('Table',LASTDATE('Table'[Date])=DATE(2018,2,1)))

     

    Best Regards,

    Jay

    Community Support Team _ Jay Wang

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

     

5 Replies

  • FrankAT's avatar
    FrankAT
    Community Champion

    Hi,

    try:

    TRUE() + 0 evaluates to 1
    FALSE() + 0 evaluates to 0.
     
    Regards FrankAT
    • edhans's avatar
      edhans
      Community Champion

      Hi FrankAT 

       

      I have a table that looks like this:

      DateValidated
      1/1/2018True
      2/1/2018False

       

      If [Validated] was a text field, I could convert it to a scalar value by using the following measure:

       

      Last Date Is Validated =
      CALCULATE(
          MAX( TableName[Validated] ),
          LASTDATE( TableName[Date] )
              = DATE( 2018, 2, 1 )
      )

       


      That measure would evaluate to True() so I could do something else with that - an IF statement for example. MAX() converted the single record table for that field to a scalar value - or would if [Validated] was a numeric or alphanumeric field.

       

      But MAX doesn't work on a boolean column, so that doesn't work. Trying to see if there is a single function that does work with boolean fields.

      • Anonymous's avatar
        Anonymous
        Not applicable

        Hi edhans ,

         

        You can use SELECTEDVALUE() function instead of MAX() function.

        Last Date Is Validated = CALCULATE(SELECTEDVALUE('Table'[Validated] ),FILTER('Table',LASTDATE('Table'[Date])=DATE(2018,2,1)))

         

        Best Regards,

        Jay

        Community Support Team _ Jay Wang

        If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.