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

Fabric Community Update - July 2025

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

July PBI25 Carousel

Power BI Monthly Update - July 2025

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