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

Enhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.

Reply
AGaribay7
Frequent Visitor

Use Case and Switch instead of IFs

Hi! 

I would like to know, how can I change this DAX Code ... to use Switch Case instead of IFs

SEASON TOTAL = IF(VALUES(Rankings[Attribute]) = "AERIAL DUELS WON %", format(SUM(Rankings[Value]),"##%"),
IF(VALUES(Rankings[Attribute]) = "CROSSES",FORMAT(SUM(Rankings[Value]),"##"),
IF(VALUES(Rankings[Attribute]) = "Crossing%",FORMAT(SUM(Rankings[Value]),"##%"),
IF(VALUES(Rankings[Attribute]) = "FORWARD PASSES %",FORMAT(SUM(Rankings[Value]),"##%"),
IF(VALUES(Rankings[Attribute]) = "FOULS COMMITTED",FORMAT(SUM(Rankings[Value]),"##"),
IF(VALUES(Rankings[Attribute]) = "GOALS",FORMAT(SUM(Rankings[Value]),"##"),
IF(VALUES(Rankings[Attribute]) = "GOALS CONCEDED",FORMAT(SUM(Rankings[Value]),"##"),
IF(VALUES(Rankings[Attribute]) = "GROUND DUELS WON %",FORMAT(SUM(Rankings[Value]),"##%"),
IF(VALUES(Rankings[Attribute]) = "NON-PENALTY SHOT CONVERSION RATE %",FORMAT(SUM(Rankings[Value]),"##%"),
IF(VALUES(Rankings[Attribute]) = "NON-PENALTY SHOTS",FORMAT(SUM(Rankings[Value]),"##"),
IF(VALUES(Rankings[Attribute]) = "OWN HALF BALL LOSS",FORMAT(SUM(Rankings[Value]),"##"),
IF(VALUES(Rankings[Attribute]) = "PASS FORWARD IN FINAL 3RD %",FORMAT(SUM(Rankings[Value]),"##%"),
IF(VALUES(Rankings[Attribute]) = "PASSES",FORMAT(SUM(Rankings[Value]),"##"),
IF(VALUES(Rankings[Attribute]) = "POSSESSION REGAINS IN OPPO HALF TOTAL",FORMAT(SUM(Rankings[Value]),"##"),
IF(VALUES(Rankings[Attribute]) = "Possession%",FORMAT(SUM(Rankings[Value]),"##%"),
IF(VALUES(Rankings[Attribute]) = "RED CARDS",IF(SUM(Rankings[Value]) >0, FORMAT(SUM(Rankings[Value]),"##"),0),
IF(VALUES(Rankings[Attribute]) = "SHOTS INSIDE BOX",FORMAT(SUM(Rankings[Value]),"##"),
IF(VALUES(Rankings[Attribute]) = "SHOTS ON TARGET %",FORMAT(SUM(Rankings[Value]),"##%"),
IF(VALUES(Rankings[Attribute]) = "SHOTS OUTSIDE BOX",FORMAT(SUM(Rankings[Value]),"##"),
IF(VALUES(Rankings[Attribute]) = "Successful Box Cross",FORMAT(SUM(Rankings[Value]),"##"),
IF(VALUES(Rankings[Attribute]) = "YELLOW CARDS",FORMAT(SUM(Rankings[Value]),"##")
)))))))))))))))))))))
1 ACCEPTED SOLUTION
Kedar_Pande
Super User
Super User

@AGaribay7  Try

SEASON TOTAL = 
SWITCH(
TRUE(),
VALUES(Rankings[Attribute]) = "AERIAL DUELS WON %", FORMAT(SUM(Rankings[Value]),"##%"),
VALUES(Rankings[Attribute]) = "CROSSES", FORMAT(SUM(Rankings[Value]),"##"),
VALUES(Rankings[Attribute]) = "Crossing%", FORMAT(SUM(Rankings[Value]),"##%"),
VALUES(Rankings[Attribute]) = "FORWARD PASSES %", FORMAT(SUM(Rankings[Value]),"##%"),
VALUES(Rankings[Attribute]) = "FOULS COMMITTED", FORMAT(SUM(Rankings[Value]),"##"),
VALUES(Rankings[Attribute]) = "GOALS", FORMAT(SUM(Rankings[Value]),"##"),
VALUES(Rankings[Attribute]) = "GOALS CONCEDED", FORMAT(SUM(Rankings[Value]),"##"),
VALUES(Rankings[Attribute]) = "GROUND DUELS WON %", FORMAT(SUM(Rankings[Value]),"##%"),
VALUES(Rankings[Attribute]) = "NON-PENALTY SHOT CONVERSION RATE %", FORMAT(SUM(Rankings[Value]),"##%"),
VALUES(Rankings[Attribute]) = "NON-PENALTY SHOTS", FORMAT(SUM(Rankings[Value]),"##"),
VALUES(Rankings[Attribute]) = "OWN HALF BALL LOSS", FORMAT(SUM(Rankings[Value]),"##"),
VALUES(Rankings[Attribute]) = "PASS FORWARD IN FINAL 3RD %", FORMAT(SUM(Rankings[Value]),"##%"),
VALUES(Rankings[Attribute]) = "PASSES", FORMAT(SUM(Rankings[Value]),"##"),
VALUES(Rankings[Attribute]) = "POSSESSION REGAINS IN OPPO HALF TOTAL", FORMAT(SUM(Rankings[Value]),"##"),
VALUES(Rankings[Attribute]) = "Possession%", FORMAT(SUM(Rankings[Value]),"##%"),
VALUES(Rankings[Attribute]) = "RED CARDS", IF(SUM(Rankings[Value]) > 0, FORMAT(SUM(Rankings[Value]),"##"), 0),
VALUES(Rankings[Attribute]) = "SHOTS INSIDE BOX", FORMAT(SUM(Rankings[Value]),"##"),
VALUES(Rankings[Attribute]) = "SHOTS ON TARGET %", FORMAT(SUM(Rankings[Value]),"##%"),
VALUES(Rankings[Attribute]) = "SHOTS OUTSIDE BOX", FORMAT(SUM(Rankings[Value]),"##"),
VALUES(Rankings[Attribute]) = "Successful Box Cross", FORMAT(SUM(Rankings[Value]),"##"),
VALUES(Rankings[Attribute]) = "YELLOW CARDS", FORMAT(SUM(Rankings[Value]),"##"),
BLANK() -- Default case if no condition matches
)

💌 If this helped, a Kudos 👍 or Solution mark would be great! 🎉
Cheers,
Kedar
Connect on LinkedIn

View solution in original post

3 REPLIES 3
Kedar_Pande
Super User
Super User

@AGaribay7  Try

SEASON TOTAL = 
SWITCH(
TRUE(),
VALUES(Rankings[Attribute]) = "AERIAL DUELS WON %", FORMAT(SUM(Rankings[Value]),"##%"),
VALUES(Rankings[Attribute]) = "CROSSES", FORMAT(SUM(Rankings[Value]),"##"),
VALUES(Rankings[Attribute]) = "Crossing%", FORMAT(SUM(Rankings[Value]),"##%"),
VALUES(Rankings[Attribute]) = "FORWARD PASSES %", FORMAT(SUM(Rankings[Value]),"##%"),
VALUES(Rankings[Attribute]) = "FOULS COMMITTED", FORMAT(SUM(Rankings[Value]),"##"),
VALUES(Rankings[Attribute]) = "GOALS", FORMAT(SUM(Rankings[Value]),"##"),
VALUES(Rankings[Attribute]) = "GOALS CONCEDED", FORMAT(SUM(Rankings[Value]),"##"),
VALUES(Rankings[Attribute]) = "GROUND DUELS WON %", FORMAT(SUM(Rankings[Value]),"##%"),
VALUES(Rankings[Attribute]) = "NON-PENALTY SHOT CONVERSION RATE %", FORMAT(SUM(Rankings[Value]),"##%"),
VALUES(Rankings[Attribute]) = "NON-PENALTY SHOTS", FORMAT(SUM(Rankings[Value]),"##"),
VALUES(Rankings[Attribute]) = "OWN HALF BALL LOSS", FORMAT(SUM(Rankings[Value]),"##"),
VALUES(Rankings[Attribute]) = "PASS FORWARD IN FINAL 3RD %", FORMAT(SUM(Rankings[Value]),"##%"),
VALUES(Rankings[Attribute]) = "PASSES", FORMAT(SUM(Rankings[Value]),"##"),
VALUES(Rankings[Attribute]) = "POSSESSION REGAINS IN OPPO HALF TOTAL", FORMAT(SUM(Rankings[Value]),"##"),
VALUES(Rankings[Attribute]) = "Possession%", FORMAT(SUM(Rankings[Value]),"##%"),
VALUES(Rankings[Attribute]) = "RED CARDS", IF(SUM(Rankings[Value]) > 0, FORMAT(SUM(Rankings[Value]),"##"), 0),
VALUES(Rankings[Attribute]) = "SHOTS INSIDE BOX", FORMAT(SUM(Rankings[Value]),"##"),
VALUES(Rankings[Attribute]) = "SHOTS ON TARGET %", FORMAT(SUM(Rankings[Value]),"##%"),
VALUES(Rankings[Attribute]) = "SHOTS OUTSIDE BOX", FORMAT(SUM(Rankings[Value]),"##"),
VALUES(Rankings[Attribute]) = "Successful Box Cross", FORMAT(SUM(Rankings[Value]),"##"),
VALUES(Rankings[Attribute]) = "YELLOW CARDS", FORMAT(SUM(Rankings[Value]),"##"),
BLANK() -- Default case if no condition matches
)

💌 If this helped, a Kudos 👍 or Solution mark would be great! 🎉
Cheers,
Kedar
Connect on LinkedIn

Bibiano_Geraldo
Super User
Super User

Hi, 

Try the following code:

 

  • SEASON TOTAL =
    VAR Attribute = VALUES(Rankings[Attribute])
    VAR TotalValue = SUM(Rankings[Value])
    RETURN
    SWITCH(
    TRUE(),
    Attribute = "AERIAL DUELS WON %", FORMAT(TotalValue, "##%"),
    Attribute = "CROSSES", FORMAT(TotalValue, "##"),
    Attribute = "Crossing%", FORMAT(TotalValue, "##%"),
    Attribute = "FORWARD PASSES %", FORMAT(TotalValue, "##%"),
    Attribute = "FOULS COMMITTED", FORMAT(TotalValue, "##"),
    Attribute = "GOALS", FORMAT(TotalValue, "##"),
    Attribute = "GOALS CONCEDED", FORMAT(TotalValue, "##"),
    Attribute = "GROUND DUELS WON %", FORMAT(TotalValue, "##%"),
    Attribute = "NON-PENALTY SHOT CONVERSION RATE %", FORMAT(TotalValue, "##%"),
    Attribute = "NON-PENALTY SHOTS", FORMAT(TotalValue, "##"),
    Attribute = "OWN HALF BALL LOSS", FORMAT(TotalValue, "##"),
    Attribute = "PASS FORWARD IN FINAL 3RD %", FORMAT(TotalValue, "##%"),
    Attribute = "PASSES", FORMAT(TotalValue, "##"),
    Attribute = "POSSESSION REGAINS IN OPPO HALF TOTAL", FORMAT(TotalValue, "##"),
    Attribute = "Possession%", FORMAT(TotalValue, "##%"),
    Attribute = "RED CARDS", IF(TotalValue > 0, FORMAT(TotalValue, "##"), 0),
    Attribute = "SHOTS INSIDE BOX", FORMAT(TotalValue, "##"),
    Attribute = "SHOTS ON TARGET %", FORMAT(TotalValue, "##%"),
    Attribute = "SHOTS OUTSIDE BOX", FORMAT(TotalValue, "##"),
    Attribute = "Successful Box Cross", FORMAT(TotalValue, "##"),
    Attribute = "YELLOW CARDS", FORMAT(TotalValue, "##"),
    BLANK()
    )
lbendlin
Super User
Super User

Note:  this will only make the code prettier, there is no performance benefit.

 

 

 

SEASON TOTAL = SWITCH(TRUE(),
VALUES(Rankings[Attribute]) in {
"AERIAL DUELS WON %",
"Crossing%",
"FORWARD PASSES %",
"GROUND DUELS WON %",
"NON-PENALTY SHOT CONVERSION RATE %",
"Possession%",
"SHOTS ON TARGET %"}, format(SUM(Rankings[Value]),"##%"),
format(SUM(Rankings[Value]),"##")
)

 

 

Helpful resources

Announcements
July PBI25 Carousel

Power BI Monthly Update - July 2025

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

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 community update carousel

Fabric Community Update - June 2025

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