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

Score big with last-minute savings on the final tickets to FabCon Vienna. Secure your discount

Reply
Brendan42
Regular Visitor

Identify first instance across multiple columns

I've got a dataset where, for each row, i have to determine the first instance across a group of 5 columns where "Yes" has been entered and have that in a new column called "First Option". I've mocked it up to illustrate in Excel (pictured below).

1) Column G ("First Option") should be calculated to identify the first column, moving from left-to-right, where "Yes" has been entered.

2) The data is pulled from another system, so i cannot change that, have to do this in Power BI

3) I can't count total "Yes" answers and allocate accordingly (eg. 4 x "Yes" = Option 2, 3 x "Yes" = Option 3) because a "No" is still possible after a "Yes" as you move along the columns.

Brendan42_0-1678964615094.png

 

Any idea please.

1 ACCEPTED SOLUTION
Greg_Deckler
Community Champion
Community Champion

@andhiii079845 Try this, PBIX is attached below signature.

First Option = 
    VAR __Path = [Option 1] & "|" & [Option 2] & "|" & [Option 3] & "|" & [Option 4] & "|" & [Option 5]
    VAR __Table = 
        ADDCOLUMNS(
            GENERATESERIES(1,5,1),
            "Option", PATHITEM(__Path,[Value])
        )
    VAR __First = MINX(FILTER(__Table,[Option] = "Yes"),[Value])
    VAR __Result = IF(__First <> BLANK(), "Option " & __First, BLANK())
RETURN
    __Result


Follow on LinkedIn
@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
DAX For Humans

DAX is easy, CALCULATE makes DAX hard...

View solution in original post

3 REPLIES 3
Greg_Deckler
Community Champion
Community Champion

@andhiii079845 Try this, PBIX is attached below signature.

First Option = 
    VAR __Path = [Option 1] & "|" & [Option 2] & "|" & [Option 3] & "|" & [Option 4] & "|" & [Option 5]
    VAR __Table = 
        ADDCOLUMNS(
            GENERATESERIES(1,5,1),
            "Option", PATHITEM(__Path,[Value])
        )
    VAR __First = MINX(FILTER(__Table,[Option] = "Yes"),[Value])
    VAR __Result = IF(__First <> BLANK(), "Option " & __First, BLANK())
RETURN
    __Result


Follow on LinkedIn
@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
DAX For Humans

DAX is easy, CALCULATE makes DAX hard...

Thank you @Greg_Deckler , works perfectly

andhiii079845
Solution Sage
Solution Sage

Can you show please a data example of the underlaying table(s)? 





Did I answer your question? Mark my post as a solution!

Proud to be a Super User!




Helpful resources

Announcements
August Power BI Update Carousel

Power BI Monthly Update - August 2025

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

August 2025 community update carousel

Fabric Community Update - August 2025

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