Forum Discussion

PBInewuser's avatar
PBInewuser
Microsoft Employee
6 years ago
Solved

Conditional Column on Hierarchy

Hi there,

Please see the sample table below

When Status is "Failed" for any Contract No or Contract the outcome on New Column Should be "Failed"

Please advise a measure

 

 

Thanks,

 

  • Hi PBInewuser , 

     

    You are using a few terms interchangably that are not the same thing.

     

    A conditional column is a column in Power Query. I would generally recommend this is the way to go as you are changing the model with a new column, but if I am undersanding your question, you want it for any single contract number that has any status as failed, so Power Query isn't the way to go.

     

    You are then asking for a new column, but then ask for a measure. I think you want a new column in a visual, not the model, and a measure is the way to go.

     

    Final Status = 
    VAR varFailedStatusCount =
        CALCULATE(
            COUNTROWS('Table'),
            REMOVEFILTERS('Table'[Date],'Table'[Status]),
            'Table'[Status] = "Failed"
        )
    var Result = 
        IF(
            varFailedStatusCount > 0,
            "Failed",
            "Success"
        )
    RETURN
        Result

     

    That returns this:

    Contract 1 is failed, but contract 2 has no falures, so the final status is Success.

     

    My PBIX is here if you want to look at it.

     

     

1 Reply

  • edhans's avatar
    edhans
    Community Champion

    Hi PBInewuser , 

     

    You are using a few terms interchangably that are not the same thing.

     

    A conditional column is a column in Power Query. I would generally recommend this is the way to go as you are changing the model with a new column, but if I am undersanding your question, you want it for any single contract number that has any status as failed, so Power Query isn't the way to go.

     

    You are then asking for a new column, but then ask for a measure. I think you want a new column in a visual, not the model, and a measure is the way to go.

     

    Final Status = 
    VAR varFailedStatusCount =
        CALCULATE(
            COUNTROWS('Table'),
            REMOVEFILTERS('Table'[Date],'Table'[Status]),
            'Table'[Status] = "Failed"
        )
    var Result = 
        IF(
            varFailedStatusCount > 0,
            "Failed",
            "Success"
        )
    RETURN
        Result

     

    That returns this:

    Contract 1 is failed, but contract 2 has no falures, so the final status is Success.

     

    My PBIX is here if you want to look at it.