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
revisr
New Member

If statement too many arguments

I am brand new to DAX. In one of my lessons I was told to enter an IF statement:

 

Customer Age =
IF(
    FORMAT('Customer'[Birth Date], "mmdd") <= FORMAT(TODAY(), "mmdd"),
    DATEDIFF('Customer'[Birth Date], TODAY(), YEAR),
    DATEDIFF('Customer'[Birth Date], TODAY(), YEAR),-1)
It is telling me I have more than 3 arguments. My column has error. Where wm I going wrong?
1 ACCEPTED SOLUTION
uzuntasgokberk
Super User
Super User

Hello @revisr,

 

If statement syntax is IF(<logical_test>, <value_if_true>[, <value_if_false>])

IF function (DAX) - DAX | Microsoft Learn

Therefore, you code should be like this:


IF(
   FORMAT('Customer'[Birth Date]"mmdd") <= FORMAT(TODAY(), "mmdd"),

   DATEDIFF('Customer'[Birth Date]TODAY(), YEAR),

       IF(

          FORMAT('Customer'[Birth Date]"mmdd") > FORMAT(TODAY(), "mmdd"),

         DATEDIFF('Customer'[Birth Date], TODAY(), YEAR),

         1

           )

)

 

Kind Regards,
Gökberk Uzuntaş

📌 If this post helps, then please consider Accepting it as a solution and giving Kudos — it helps other members find answers faster!

🔗 Stay Connected:
📘 Medium |
📺 YouTube |
💼 LinkedIn |
📷 Instagram |
🐦 X |
👽 Reddit |
🌐 Website |
🎵 TikTok |

 

 

View solution in original post

3 REPLIES 3
revisr
New Member

That did it thanks!!

Hi revisr,

 

Looks like the formula @uzuntasgokberk provided was unnecessarily complex. You were on the right track with your original measure. You just had an extra comma in your measure, before the -1 at the end. The comma made Power BI think the -1 was a fourth argument in your IF function. Hopefully that makes sense.

 

You had:

 

IF (
    FORMAT ( 'Customer'[Birth Date], "mmdd" ) <= FORMAT ( TODAY(), "mmdd" ),
    DATEDIFF ( 'Customer'[Birth Date], TODAY(), YEAR ),
    DATEDIFF ( 'Customer'[Birth Date], TODAY(), YEAR ), - 1
)

 

 

However, what you meant was:

 

IF (
    FORMAT ( 'Customer'[Birth Date], "mmdd" ) <= FORMAT ( TODAY(), "mmdd" ),
    DATEDIFF ( 'Customer'[Birth Date], TODAY(), YEAR ),
    DATEDIFF ( 'Customer'[Birth Date], TODAY(), YEAR ) - 1
)

 

 




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

Proud to be a Super User!





uzuntasgokberk
Super User
Super User

Hello @revisr,

 

If statement syntax is IF(<logical_test>, <value_if_true>[, <value_if_false>])

IF function (DAX) - DAX | Microsoft Learn

Therefore, you code should be like this:


IF(
   FORMAT('Customer'[Birth Date]"mmdd") <= FORMAT(TODAY(), "mmdd"),

   DATEDIFF('Customer'[Birth Date]TODAY(), YEAR),

       IF(

          FORMAT('Customer'[Birth Date]"mmdd") > FORMAT(TODAY(), "mmdd"),

         DATEDIFF('Customer'[Birth Date], TODAY(), YEAR),

         1

           )

)

 

Kind Regards,
Gökberk Uzuntaş

📌 If this post helps, then please consider Accepting it as a solution and giving Kudos — it helps other members find answers faster!

🔗 Stay Connected:
📘 Medium |
📺 YouTube |
💼 LinkedIn |
📷 Instagram |
🐦 X |
👽 Reddit |
🌐 Website |
🎵 TikTok |

 

 

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.