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

Level up your Power BI skills this month - build one visual each week and tell better stories with data! Get started

Reply
vbis
Helper I
Helper I

multiple if multiple conditions

Hello.

I would need your help please with a bit complex multiple if statement with multiple conditions where I struggle with some issues. 

 

This is my dax:

 

Rates =
SWITCH(
    TRUE(),
    Clothes[Color] = "White" || Clothes[Color] = "Black" && [Units Sold] = "Low" && [Size] = "Small", "5",
    Clothes[Color] = "White" || Clothes[Color] = "Black" && [Units Sold] = "Low" && [Size] = "Medium", "10",
    Clothes[Color] = "White" || Clothes[Color] = "Black" && [Units Sold] = "Low" && [Size] = "Large", "15",
    Clothes[Color] = "Grey" && [Size] = "Small", "5",
    Clothes[Color] = "Grey" && [Size] = "Medium", "10",
    Clothes[Color] = "Grey" && [Size] = "Large", "15",
    "null")

 

Issues: 

1. I want to assign specific rates in different and multiple buckets but the results are not the expected. 

   I start with the below for exmaple:  

Rates =
SWITCH(
    TRUE(),
    Clothes[Color] = "White" || Clothes[Color] = "Black" && [Units Sold] = "Low" && [Size] = "Small", "5",
    Clothes[Color] = "White" || Clothes[Color] = "Black" && [Units Sold] = "Low" && [Size] = "Medium", "10",
    Clothes[Color] = "Grey" && [Size] = "Small", "5",
    "null")
I get "5" in both small and medium sizes. But I also get "10" in the medium size as I should. 
 
2. If I write the below dax I get the message <ccon>There's not enough memory to complete this operation. Please try again later when there may be more memory available.</ccon>
 
Rates =
SWITCH(
    TRUE(),
    Clothes[Color] = "White" || Clothes[Color] = "Black" && [Units Sold] = "Low" && [Size] = "Small", "5",
    Clothes[Color] = "White" || Clothes[Color] = "Black" && [Units Sold] = "Low" && [Size] = "Medium", "10",
    Clothes[Color] = "White" || Clothes[Color] = "Black" && [Units Sold] = "Low" && [Size] = "Large", "15",
    Clothes[Color] = "Grey" && [Size] = "Small", "5",
    Clothes[Color] = "Grey" && [Size] = "Medium", "10",
    Clothes[Color] = "Grey" && [Size] = "Large", "15",
    "null")
 
Is there something I am doing wrong? 
 
Thank you,
V
1 ACCEPTED SOLUTION
v-yalanwu-msft
Community Support
Community Support

Hi, @vbis ;

The last DAX can be simplified to and could try it.

Rates =
IF (
    ( Clothes[Color] IN { "White", "Black" }&& [Units Sold] = "Low" )
    || Clothes[Color] = "Grey",
    SWITCH ( [Size], "Small", "5", "Medium", "10", "Large", "15" ),
    "null")


Best Regards,
Community Support Team _ Yalan Wu
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

5 REPLIES 5
v-yalanwu-msft
Community Support
Community Support

Hi, @vbis ;

Perhaps you can reduce the performance of the data itself and optimize the performance. Or optimize the data itself in the power query for ETL data processing.


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

Hello. 

Apparently, I still struggle with this. 

I reduced the volume of the data (total number of rows now 1,408,856) and I also tried to simplify a bit the formula and i still get invalid results. 

So, my dax now is:

 
Rates =
IF (
  [Units Sold]="Low" && Clothes[Color]="Grey" ||
  [Units Sold]="Medium",
    SWITCH ( [Size], "Small", "5", "Medium", "10", "Large", "15" ),
    "0")
For a number of rows i get for Medium 5 instead of 10 and for Large 10 instead of 15. 
What should i do to fix it?
v-yalanwu-msft
Community Support
Community Support

Hi, @vbis ;

The last DAX can be simplified to and could try it.

Rates =
IF (
    ( Clothes[Color] IN { "White", "Black" }&& [Units Sold] = "Low" )
    || Clothes[Color] = "Grey",
    SWITCH ( [Size], "Small", "5", "Medium", "10", "Large", "15" ),
    "null")


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

Hello.

Thank you for your response. 

I tried this dax and i got the message:

"Something went wrong. There's not enough memory to complete this operation. Please try again later when there may be more memory available." 

amitchandak
Super User
Super User

@vbis , check the data in the Size column any white space or case(Upper/Lower)  issue. Overall formula looks correct

 

If this does not help
Can you share sample data and sample output in table format? Or a sample pbix after removing sensitive data.

 

 

Share with Power BI Enthusiasts: Full Power BI Video (20 Hours) YouTube
Microsoft Fabric Series 60+ Videos YouTube
Microsoft Fabric Hindi End to End YouTube

Helpful resources

Announcements
April Power BI Update Carousel

Power BI Monthly Update - April 2026

Check out the April 2026 Power BI update to learn about new features.

Fabric SQL PBI Data Days

Data Days 2026 coming soon!

Sign up to receive a private message when registration opens and key events begin.

New to Fabric survey Carousel

New to Fabric Survey

If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.

Power BI DataViz World Championships carousel

Power BI DataViz World Championships - June 2026

A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.