Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Join us for an expert-led overview of the tools and concepts you'll need to become a Certified Power BI Data Analyst and pass exam PL-300. Register now.

Reply
prj102
Helper I
Helper I

Calculated column based on multiple rows and checking results.

I'm looking for a calculated column function that will help me determine an overall status based on multiple rows of data.  

My data looks something like this and I am looking to create the "Calculated Overall Status" column:

 

NameTypeStatusCalculated Overall Status
PT001gFailedFailed
PT001sPassedFailed
PT002gPassedPassed
PT002sPassedPassed
PT003gPassedWarning
PT003sWarningWarning

 

If a "Name" shows up more than once in the data, I want to look at all the statuses and mark them as "Passed" if they all passed, "Falied" if any of the statuses failed and Warning if there is a warning in any status.

 

If I'm not thinking of this correctly please send me in the right direction

 

1 ACCEPTED SOLUTION

@prj102 

 

You may try the DAX below.

Column =
SWITCH (
    TRUE (),
    ISEMPTY (
        FILTER (
            'Table',
            'Table'[Name] = EARLIER ( 'Table'[Name] )
                && 'Table'[Status] <> "Passed"
        )
    ), "Passed",
    NOT (
        ISEMPTY (
            FILTER (
                'Table',
                'Table'[Name] = EARLIER ( 'Table'[Name] )
                    && 'Table'[Status] = "Failed"
            )
        )
    ), "Failed",
    NOT (
        ISEMPTY (
            FILTER (
                'Table',
                'Table'[Name] = EARLIER ( 'Table'[Name] )
                    && 'Table'[Status] = "Warning"
            )
        )
    ), "Warning"
)

 

Community Support Team _ Sam Zha
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

View solution in original post

3 REPLIES 3
TomMartens
Super User
Super User

Hey,

 

try this DAX statement:

Column = 
var _name = 'Table'[Name]
var theString = CONCATENATEX(FILTER(ALL('Table') , 'Table'[Name] = _name) , 'Table'[Status] , "|" , 'Table'[Status] , ASC)
return
SWITCH(
    TRUE()
    , PATHCONTAINS(theString , "Failed") , "Failed"
    , PATHCONTAINS(theString , "Warning") , "Warning"
    , "Passed"
)

This calculated column looks like your expected result:

image.png

What the DAX does is this:

  1. it stores the current value of the column Name to the variable _name
  2. it creates a string of all the status values for one Name separated by "|", this allows interpreting the string as path
  3. using SWITCH to check the occurence of Failed or Warning inside the "Path"

Just switch the order of the rows

PATHCONTAINS( ... , "Failed") , "Failed"

PATHCONTAINS( ... , "WArning") , "Warning"

if "Warning" tops "Failed".

Hopefully this is what you are looking for.

 

Regards,

Tom



Did I answer your question? Mark my post as a solution, this will help others!

Proud to be a Super User!
I accept Kudos 😉
Hamburg, Germany

I see that your solution is working on the sample data and I even recreated it working myself but its not working on our production data.  Can't explain why at this point...  In the real data, every row is reporting Passed so I can only assume its defaulting to that.  More to come 

@prj102 

 

You may try the DAX below.

Column =
SWITCH (
    TRUE (),
    ISEMPTY (
        FILTER (
            'Table',
            'Table'[Name] = EARLIER ( 'Table'[Name] )
                && 'Table'[Status] <> "Passed"
        )
    ), "Passed",
    NOT (
        ISEMPTY (
            FILTER (
                'Table',
                'Table'[Name] = EARLIER ( 'Table'[Name] )
                    && 'Table'[Status] = "Failed"
            )
        )
    ), "Failed",
    NOT (
        ISEMPTY (
            FILTER (
                'Table',
                'Table'[Name] = EARLIER ( 'Table'[Name] )
                    && 'Table'[Status] = "Warning"
            )
        )
    ), "Warning"
)

 

Community Support Team _ Sam Zha
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Helpful resources

Announcements
Join our Fabric User Panel

Join our Fabric User Panel

This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.

June 2025 Power BI Update Carousel

Power BI Monthly Update - June 2025

Check out the June 2025 Power BI update to learn about new features.

June 2025 community update carousel

Fabric Community Update - June 2025

Find out what's new and trending in the Fabric community.