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

Get Fabric Certified for FREE during Fabric Data Days. Don't miss your chance! Learn more

Reply
Saxon10
Post Prodigy
Post Prodigy

SWITCH TRUE same column contain multiple status

Hi,

 

I have 9 columns are UK, US, INDIA, SA, SRL, PAK,BAN ,AFG and ENG (from column B:J and column K is my final result in Excel), each columns contain multiple status.

 

UK

US

INDIA

SA

SRL

PAK

BAN

AFG

ENG

MATCHED

MATCHED

MATCHED

MATCHED

MATCHED

MATCHED

MATCHED

MATCHED

MATCHED

NOT REQUIRED

NOT MATCHED

NOT MATCHED

NOT MATCHED

NOT MATCHED

NOT MATCHED

NOT MATCHED

NOT MATCHED

NOT REQUIRED

        

NOT MATCHED

 

Matching Rules from column B to J:

 

Rule1

 

Column B = “Matched”

Column C: J = “Matched”

Column J = “Not Required”

 

Then return is “Completed”

 

Rule2

 

Column B = “Not Required”

Column C: J = “Matched”

Column J = “Not Required”

 

Then return is “Completed”

 

Rule3

 

Column B = “Not Required”

Column C: J = “Matched”

Column J = “Matched”

 

Then return is “Completed”

 

Rule5

 

Column B = “Not Required”

Column C: J = “Matched”

Column J = “Not Matched”

 

Then return is “Not Completed”

 

Rule6

 

Column C:I  any one of the columns are contain ”Not matched” then return Not completed when column B contain “Matched”, ”Not Required” and column J contain “Matched”, “Not Matched” and “Not Required”.

 

My Data desired result in column K and Data

UKUSINDIASASRLPAKBANAFGENGSTATUS
MATCHEDMATCHEDMATCHEDMATCHEDMATCHEDMATCHEDMATCHEDMATCHEDNOT REQUIREDCOMPLETED
NOT REQUIREDMATCHEDMATCHEDMATCHEDMATCHEDMATCHEDMATCHEDMATCHEDNOT REQUIREDCOMPLETED
NOT REQUIREDMATCHEDMATCHEDMATCHEDMATCHEDMATCHEDMATCHEDMATCHEDMATCHEDCOMPLETED
NOT REQUIREDMATCHEDMATCHEDMATCHEDMATCHEDNOT MATCHEDNOT MATCHEDMATCHEDNOT REQUIREDNOT COMPLETED
NOT REQUIREDMATCHEDMATCHEDMATCHEDMATCHEDMATCHEDNOT MATCHEDMATCHEDNOT REQUIREDNOT COMPLETED
NOT REQUIREDMATCHEDMATCHEDMATCHEDMATCHEDMATCHEDNOT MATCHEDNOT MATCHEDNOT REQUIREDNOT COMPLETED
NOT REQUIREDMATCHEDNOT MATCHEDMATCHEDMATCHEDNOT MATCHEDNOT MATCHEDNOT MATCHEDNOT REQUIREDNOT COMPLETED
NOT REQUIREDMATCHEDMATCHEDMATCHEDMATCHEDMATCHEDNOT MATCHEDNOT MATCHEDNOT MATCHEDNOT COMPLETED
NOT REQUIREDMATCHEDNOT MATCHEDMATCHEDMATCHEDNOT MATCHEDNOT MATCHEDMATCHEDNOT REQUIREDNOT COMPLETED
NOT REQUIREDNOT MATCHEDNOT MATCHEDMATCHEDMATCHEDNOT MATCHEDNOT MATCHEDNOT MATCHEDNOT REQUIREDNOT COMPLETED
NOT REQUIREDNOT MATCHEDNOT MATCHEDMATCHEDMATCHEDNOT MATCHEDMATCHEDMATCHEDNOT REQUIREDNOT COMPLETED
NOT REQUIREDMATCHEDNOT MATCHEDMATCHEDMATCHEDNOT MATCHEDMATCHEDMATCHEDNOT REQUIREDNOT COMPLETED
NOT REQUIREDMATCHEDMATCHEDMATCHEDMATCHEDMATCHEDNOT MATCHEDMATCHEDNOT MATCHEDNOT COMPLETED
NOT REQUIREDNOT MATCHEDNOT MATCHEDMATCHEDMATCHEDNOT MATCHEDNOT MATCHEDMATCHEDNOT REQUIREDNOT COMPLETED
NOT REQUIREDMATCHEDMATCHEDMATCHEDMATCHEDMATCHEDMATCHEDNOT MATCHEDNOT REQUIREDNOT COMPLETED
NOT REQUIREDMATCHEDMATCHEDNOT MATCHEDNOT MATCHEDNOT MATCHEDMATCHEDMATCHEDNOT REQUIREDNOT COMPLETED
NOT REQUIREDNOT MATCHEDNOT MATCHEDNOT MATCHEDNOT MATCHEDNOT MATCHEDMATCHEDMATCHEDNOT REQUIREDNOT COMPLETED
NOT REQUIREDMATCHEDNOT MATCHEDMATCHEDMATCHEDNOT MATCHEDMATCHEDMATCHEDNOT MATCHEDNOT COMPLETED
NOT REQUIREDMATCHEDMATCHEDMATCHEDMATCHEDNOT MATCHEDMATCHEDMATCHEDMATCHEDNOT COMPLETED
NOT REQUIREDMATCHEDMATCHEDMATCHEDMATCHEDNOT MATCHEDMATCHEDMATCHEDNOT REQUIREDNOT COMPLETED
NOT REQUIREDMATCHEDMATCHEDMATCHEDMATCHEDMATCHEDMATCHEDMATCHEDNOT MATCHEDNOT COMPLETED
NOT REQUIREDMATCHEDMATCHEDMATCHEDMATCHEDNOT MATCHEDNOT MATCHEDNOT MATCHEDNOT REQUIREDNOT COMPLETED
NOT REQUIREDMATCHEDMATCHEDNOT MATCHEDMATCHEDMATCHEDMATCHEDMATCHEDNOT REQUIREDNOT COMPLETED
NOT REQUIREDMATCHEDMATCHEDMATCHEDMATCHEDMATCHEDNOT MATCHEDMATCHEDMATCHEDNOT COMPLETED
NOT REQUIREDMATCHEDMATCHEDNOT MATCHEDMATCHEDNOT MATCHEDNOT MATCHEDMATCHEDNOT REQUIREDNOT COMPLETED
NOT REQUIREDMATCHEDMATCHEDNOT MATCHEDMATCHEDMATCHEDNOT MATCHEDMATCHEDNOT REQUIREDNOT COMPLETED
NOT REQUIREDMATCHEDMATCHEDMATCHEDMATCHEDNOT MATCHEDMATCHEDNOT MATCHEDMATCHEDNOT COMPLETED
NOT REQUIREDMATCHEDMATCHEDMATCHEDMATCHEDMATCHEDMATCHEDNOT MATCHEDMATCHEDNOT COMPLETED
NOT REQUIREDMATCHEDMATCHEDNOT MATCHEDMATCHEDNOT MATCHEDMATCHEDMATCHEDNOT REQUIREDNOT COMPLETED
NOT REQUIREDMATCHEDMATCHEDMATCHEDMATCHEDNOT MATCHEDMATCHEDNOT MATCHEDNOT REQUIREDNOT COMPLETED
NOT REQUIREDMATCHEDMATCHEDMATCHEDMATCHEDNOT MATCHEDNOT MATCHEDMATCHEDMATCHEDNOT COMPLETED
NOT REQUIREDMATCHEDMATCHEDMATCHEDMATCHEDNOT MATCHEDNOT MATCHEDMATCHEDNOT MATCHEDNOT COMPLETED


SWITCH TRUE.PNG

2 ACCEPTED SOLUTIONS
mahoneypat
Microsoft Employee
Microsoft Employee

The data should be unpivoted.  See the attached pbix in the Data2 query.  After that, a measure expression like this one can be used to get your result in a table visual with your Item column.

 

Status =
VAR vCtoI =
    CALCULATE (
        COUNTROWS ( DATA2 ),
        DATA2[Value] = "NOT MATCHED",
        FILTER (
            ALL ( DATA2[Attribute] ),
            NOT ( DATA2[Attribute]
                IN {
                "ENG",
                "UK"
            )
        )
    ) > 0
VAR vEngUK =
    AND (
        CALCULATE (
            COUNTROWS ( DATA2 ),
            DATA2[Value] = "NOT REQUIRED",
            DATA2[Attribute] = "UK"
        ) > 0,
        CALCULATE (
            COUNTROWS ( DATA2 ),
            DATA2[Value] = "NOT MATCHED",
            DATA2[Attribute] = "ENG"
        ) > 0
    )
RETURN
    IF (
        OR (
            vCtoI,
            vEngUK
        ),
        "NOT COMPLETED",
        "COMPLETED"
    )

 

Regards,

Pat





Did I answer your question? Mark my post as a solution! Kudos are also appreciated!

To learn more about Power BI, follow me on Twitter or subscribe on YouTube.


@mahoneypa HoosierBI on YouTube


View solution in original post

v-alq-msft
Community Support
Community Support

Hi, @Saxon10 

 

Based on your description, I created data to reproduce your scenario. The pbix file is attached in the end.

Table:

g1.png

 

You may create a calculated column or a measure as below.

Calculated column:

Status Column = 
var b=[UK]
var ci={[US],[INDIA],[SA],[SRL],[PAK],[BAN],[AFG]}
var j=[ENG]
return
SWITCH(
    TRUE(),
    b="Matched"&&COUNTROWS(ci)=COUNTROWS(FILTER(ci,[Value]="Matched"))&&j="Not Required",
    "Completed",
    b="Not Required"&&COUNTROWS(ci)=COUNTROWS(FILTER(ci,[Value]="Matched"))&&j="Not Required",
    "Completed",
    b="Not Required"&&COUNTROWS(ci)=COUNTROWS(FILTER(ci,[Value]="Matched"))&&j="Matched",
    "Completed",
    b="Not Required"&&COUNTROWS(ci)=COUNTROWS(FILTER(ci,[Value]="Matched"))&&j="Not Matched",
    "Not Completed",
    COUNTROWS(ci)<>COUNTROWS(FILTER(ci,[Value]="Matched")),
    "Not Completed"
)

 

Measure:

Status Measure = 
var b=MAX('Table'[UK])
var ci={MAX('Table'[US]),MAX('Table'[INDIA]),MAX('Table'[SA]),MAX('Table'[SRL]),MAX('Table'[PAK]),MAX('Table'[BAN]),MAX('Table'[AFG])}
var j=MAX('Table'[ENG])
return
SWITCH(
    TRUE(),
    b="Matched"&&COUNTROWS(ci)=COUNTROWS(FILTER(ci,[Value]="Matched"))&&j="Not Required",
    "Completed",
    b="Not Required"&&COUNTROWS(ci)=COUNTROWS(FILTER(ci,[Value]="Matched"))&&j="Not Required",
    "Completed",
    b="Not Required"&&COUNTROWS(ci)=COUNTROWS(FILTER(ci,[Value]="Matched"))&&j="Matched",
    "Completed",
    b="Not Required"&&COUNTROWS(ci)=COUNTROWS(FILTER(ci,[Value]="Matched"))&&j="Not Matched",
    "Not Completed",
    COUNTROWS(ci)<>COUNTROWS(FILTER(ci,[Value]="Matched")),
    "Not Completed"
)

 

Result:

g2.png

 

Best Regards

Allan

 

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

10 REPLIES 10
v-alq-msft
Community Support
Community Support

Hi, @Saxon10 

 

Based on your description, I created data to reproduce your scenario. The pbix file is attached in the end.

Table:

g1.png

 

You may create a calculated column or a measure as below.

Calculated column:

Status Column = 
var b=[UK]
var ci={[US],[INDIA],[SA],[SRL],[PAK],[BAN],[AFG]}
var j=[ENG]
return
SWITCH(
    TRUE(),
    b="Matched"&&COUNTROWS(ci)=COUNTROWS(FILTER(ci,[Value]="Matched"))&&j="Not Required",
    "Completed",
    b="Not Required"&&COUNTROWS(ci)=COUNTROWS(FILTER(ci,[Value]="Matched"))&&j="Not Required",
    "Completed",
    b="Not Required"&&COUNTROWS(ci)=COUNTROWS(FILTER(ci,[Value]="Matched"))&&j="Matched",
    "Completed",
    b="Not Required"&&COUNTROWS(ci)=COUNTROWS(FILTER(ci,[Value]="Matched"))&&j="Not Matched",
    "Not Completed",
    COUNTROWS(ci)<>COUNTROWS(FILTER(ci,[Value]="Matched")),
    "Not Completed"
)

 

Measure:

Status Measure = 
var b=MAX('Table'[UK])
var ci={MAX('Table'[US]),MAX('Table'[INDIA]),MAX('Table'[SA]),MAX('Table'[SRL]),MAX('Table'[PAK]),MAX('Table'[BAN]),MAX('Table'[AFG])}
var j=MAX('Table'[ENG])
return
SWITCH(
    TRUE(),
    b="Matched"&&COUNTROWS(ci)=COUNTROWS(FILTER(ci,[Value]="Matched"))&&j="Not Required",
    "Completed",
    b="Not Required"&&COUNTROWS(ci)=COUNTROWS(FILTER(ci,[Value]="Matched"))&&j="Not Required",
    "Completed",
    b="Not Required"&&COUNTROWS(ci)=COUNTROWS(FILTER(ci,[Value]="Matched"))&&j="Matched",
    "Completed",
    b="Not Required"&&COUNTROWS(ci)=COUNTROWS(FILTER(ci,[Value]="Matched"))&&j="Not Matched",
    "Not Completed",
    COUNTROWS(ci)<>COUNTROWS(FILTER(ci,[Value]="Matched")),
    "Not Completed"
)

 

Result:

g2.png

 

Best Regards

Allan

 

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

Thank you so much for your time and help. This is exactly I am looking for.

mahoneypat
Microsoft Employee
Microsoft Employee

The data should be unpivoted.  See the attached pbix in the Data2 query.  After that, a measure expression like this one can be used to get your result in a table visual with your Item column.

 

Status =
VAR vCtoI =
    CALCULATE (
        COUNTROWS ( DATA2 ),
        DATA2[Value] = "NOT MATCHED",
        FILTER (
            ALL ( DATA2[Attribute] ),
            NOT ( DATA2[Attribute]
                IN {
                "ENG",
                "UK"
            )
        )
    ) > 0
VAR vEngUK =
    AND (
        CALCULATE (
            COUNTROWS ( DATA2 ),
            DATA2[Value] = "NOT REQUIRED",
            DATA2[Attribute] = "UK"
        ) > 0,
        CALCULATE (
            COUNTROWS ( DATA2 ),
            DATA2[Value] = "NOT MATCHED",
            DATA2[Attribute] = "ENG"
        ) > 0
    )
RETURN
    IF (
        OR (
            vCtoI,
            vEngUK
        ),
        "NOT COMPLETED",
        "COMPLETED"
    )

 

Regards,

Pat





Did I answer your question? Mark my post as a solution! Kudos are also appreciated!

To learn more about Power BI, follow me on Twitter or subscribe on YouTube.


@mahoneypa HoosierBI on YouTube


Thank you. Your solution working fine.

thanks for your reply. I will check and update the feedback to you. 

mahoneypat
Microsoft Employee
Microsoft Employee

Here is one way to do it in the query editor.  To see how it works, just create a blank query, go to Advanced Editor, and replace the text there with the M code below.

 

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("1ZVNCoAgEIWvEq29RJhQUFliK+n+1+hnExXCqDOj7WaI+nzPeZNz9dhY2am2FkjVpG1l1LL25mqlHudB2aPehHs//CvxrlBg52u+zivzbJGllkL+dnF0nx44tyQPnh2LBfHyYV/luIi0k+DGIS8dYw0EDCHmCHDKp9wA8DGnDiHvSfAjELUNU8FZoJwTz+wx9Q835EZL2LCJhsMXN5Xs+HRTmQ7zhGDSyaGhykrxmodOFLG0eHnh2w4=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [UK = _t, US = _t, INDIA = _t, SA = _t, SRL = _t, PAK = _t, BAN = _t, AFG = _t, ENG = _t, STATUS = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"UK", type text}, {"US", type text}, {"INDIA", type text}, {"SA", type text}, {"SRL", type text}, {"PAK", type text}, {"BAN", type text}, {"AFG", type text}, {"ENG", type text}, {"STATUS", type text}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type", "CtoI", each List.RemoveLastN(List.RemoveFirstN(Record.ToList(_),1),1)),
    #"Added Custom1" = Table.AddColumn(#"Added Custom", "StatusNew", each if List.Count(List.Select([CtoI], each _ = "NOT MATCHED"))>0 or ([UK]="NOT REQUIRED" and [ENG] = "NOT MATCHED") then "NOT COMPLETED" else "COMPLETED")
in
    #"Added Custom1"

 

Regards,

Pat





Did I answer your question? Mark my post as a solution! Kudos are also appreciated!

To learn more about Power BI, follow me on Twitter or subscribe on YouTube.


@mahoneypa HoosierBI on YouTube


thanks for your quick reply. The 9 column came from DAX measure. It's not part of the raw data. Can I able to apply the query editor? Still it will work? Can you please alternative solutions power bi visualisation if not achieved by DAX measure. 

It can be done with DAX or with M (as shown).  Please share your actual raw data (or representative data in the same format), preferably as a link to a pbix file on Google Drive or OneDrive.

Regards,

Pat





Did I answer your question? Mark my post as a solution! Kudos are also appreciated!

To learn more about Power BI, follow me on Twitter or subscribe on YouTube.


@mahoneypa HoosierBI on YouTube


thanks for your reply. Herewith attached the Excel and Power BI file for your refernece with same format.

Could you please advise both solution (DAX measure and MCode)

https://www.dropbox.com/scl/fi/3vc7cq6wjw69ij8jcwfws/SWITCH-MULTIPLE-COLUMN.xlsx?dl=0&rlkey=cysma0j3...

https://www.dropbox.com/s/10k7d15euk1z7ov/SWITCH%20MULTIPLE%20COLUMN.pbix?dl=0

Could you please let me know if you need more details.

Saxon10
Post Prodigy
Post Prodigy

can you please advise and help me anyone.

Helpful resources

Announcements
Fabric Data Days Carousel

Fabric Data Days

Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!

October Power BI Update Carousel

Power BI Monthly Update - October 2025

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

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.

Top Solution Authors