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

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more

Reply
riyaapatel177
New Member

The MAX function only accepts a column reference as an argument

not getting why i am getting this error - The MAX function only accepts a column reference as an argument.

P&L Values =
SWITCH( TRUE(),
MAX('P&L rows'[Order])=1, [Gross sales $]/1000000 ,
MAX('P&L rows'[Order])=2, [Pre_invoice deduction]/1000000 ,
MAX('P&L rows'[Order]=3), [Net Invoice $]/1000000 ,
MAX('P&L rows'[Order]=4), [Post Invoice discount]/1000000 ,
MAX('P&L rows'[Order]=5), [Post invoice other discount]/1000000 ,
MAX('P&L rows'[Order]=6), [Total Post invoice deduction]/1000000 ,
MAX('P&L rows'[Order]=7), [Net Sales $]/1000000 ,
MAX('P&L rows'[Order]=8), [Manufacturing cost]/1000000 ,
MAX('P&L rows'[Order]=9), [Freight cost]/1000000 ,
MAX('P&L rows'[Order]=10), [Other cost]/1000000 ,
MAX('P&L rows'[Order]=11), [Total COGS]/1000000 ,
MAX('P&L rows'[Order]=12), [Gross Margin]/1000000 ,
MAX('P&L rows'[Order]=13), [Gross margin %]/1000000 ,
MAX('P&L rows'[Order]=14), [Gross margin per unit]/1000000 ,
)
1 ACCEPTED SOLUTION
ValtteriN
Super User
Super User

Hi,

You have a typo in some of your max functions:

MAX('P&L rows'[Order]=14),

The bracket is in the wrong place.


Also here is a revised dax:
measure =
var _max = 

MAX('P&L rows'[Order])
return
SWITCH( _max,
1, [Gross sales $]/1000000 ,
2, [Pre_invoice deduction]/1000000 ,
3, ...)

Since you are checking for the same condition you don't need TRUE(). Even if you want to use TRUE() I recommend using a variable.


I hope this post helps to solve your issue and if it does consider accepting it as a solution and giving the post a thumbs up!

My LinkedIn: https://www.linkedin.com/in/n%C3%A4ttiahov-00001/








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

Proud to be a Super User!




View solution in original post

1 REPLY 1
ValtteriN
Super User
Super User

Hi,

You have a typo in some of your max functions:

MAX('P&L rows'[Order]=14),

The bracket is in the wrong place.


Also here is a revised dax:
measure =
var _max = 

MAX('P&L rows'[Order])
return
SWITCH( _max,
1, [Gross sales $]/1000000 ,
2, [Pre_invoice deduction]/1000000 ,
3, ...)

Since you are checking for the same condition you don't need TRUE(). Even if you want to use TRUE() I recommend using a variable.


I hope this post helps to solve your issue and if it does consider accepting it as a solution and giving the post a thumbs up!

My LinkedIn: https://www.linkedin.com/in/n%C3%A4ttiahov-00001/








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

Proud to be a Super User!




Helpful resources

Announcements
Power BI DataViz World Championships

Power BI Dataviz World Championships

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!

December 2025 Power BI Update Carousel

Power BI Monthly Update - December 2025

Check out the December 2025 Power BI Holiday Recap!

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.