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

Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM. Register now.

Reply
JajatiDev
Helper II
Helper II

Power Query Assistance

Hello All,

I'm looking for assistance to convert the following IF functions in M Language.

 

  • Ageing = IF([ReceiveDate]]=TODAY(),0,NETWORKDAYS([ReceiveDate]]+1,TODAY()))
  • Age Group =
    IF(AND([Ageing]>=0,[Ageing]<=5),"[0 - 5]",
    IF(AND([Ageing]>=6,[Ageing]<=10),"[6-10]",
    IF(AND([Ageing]>=11,[Ageing]<=20),"[11 - 20]",
    IF(AND([Ageing]>=21,[Ageing]<=30),"[21 - 30]",
    IF(AND([Ageing]>=31,[Ageing]<=60),"[ 31 - 60]",
    IF(AND([Ageing]>=61,[Ageing]<=90),"[ 61 - 90]",
    "[ > 90]"))))))

 

Regards,

Jajati Dev

1 ACCEPTED SOLUTION
rubayatyasmin
Super User
Super User

Hi, @JajatiDev 

 

assuming your initial step in the PQ editor is the #"ChangedType" then the M code will be:

 

#"AddAgeing" = Table.AddColumn(#"ChangedType", "Ageing", each if [ReceiveDate]=DateTime.LocalNow() then 0 else need to use custom func equivalent to networkdaysDateTime.Date(DateTime.LocalNow())), type number)

 

this blog will help you: https://community.fabric.microsoft.com/t5/Community-Blog/Date-Networkdays-function-for-Power-Query-a...

 

for the rest:

 

 

 

    #"AddAgeGroup" = Table.AddColumn(#"AddAgeing", "Age Group", each 
        if [Ageing]>=0 and [Ageing]<=5 then "[0 - 5]"
        else if [Ageing]>=6 and [Ageing]<=10 then "[6 - 10]"
        else if [Ageing]>=11 and [Ageing]<=20 then "[11 - 20]"
        else if [Ageing]>=21 and [Ageing]<=30 then "[21 - 30]"
        else if [Ageing]>=31 and [Ageing]<=60 then "[31 - 60]"
        else if [Ageing]>=61 and [Ageing]<=90 then "[61 - 90]"
        else "[ > 90]"
    )
in
    #"AddAgeGroup"

 

 

 

 

rubayatyasmin_0-1689517080227.png


Did I answer your question? Mark my post as a solution!super-user-logo

Proud to be a Super User!


View solution in original post

5 REPLIES 5
rubayatyasmin
Super User
Super User

Hi, @JajatiDev 

 

assuming your initial step in the PQ editor is the #"ChangedType" then the M code will be:

 

#"AddAgeing" = Table.AddColumn(#"ChangedType", "Ageing", each if [ReceiveDate]=DateTime.LocalNow() then 0 else need to use custom func equivalent to networkdaysDateTime.Date(DateTime.LocalNow())), type number)

 

this blog will help you: https://community.fabric.microsoft.com/t5/Community-Blog/Date-Networkdays-function-for-Power-Query-a...

 

for the rest:

 

 

 

    #"AddAgeGroup" = Table.AddColumn(#"AddAgeing", "Age Group", each 
        if [Ageing]>=0 and [Ageing]<=5 then "[0 - 5]"
        else if [Ageing]>=6 and [Ageing]<=10 then "[6 - 10]"
        else if [Ageing]>=11 and [Ageing]<=20 then "[11 - 20]"
        else if [Ageing]>=21 and [Ageing]<=30 then "[21 - 30]"
        else if [Ageing]>=31 and [Ageing]<=60 then "[31 - 60]"
        else if [Ageing]>=61 and [Ageing]<=90 then "[61 - 90]"
        else "[ > 90]"
    )
in
    #"AddAgeGroup"

 

 

 

 

rubayatyasmin_0-1689517080227.png


Did I answer your question? Mark my post as a solution!super-user-logo

Proud to be a Super User!


Hi, thanks for responding.

I have been working on the ageing calculation. The issue with the output is it's considering all days including the weekends between receive_data and the current date. I need to exclude weekends.

 

if [receive_date] = DateTime.LocalNow() then 0 else 
DateTime.Date(DateTime.LocalNow()) - [receive_date]

 

 By now I have got a good hang of IF & AND. Hoping to improve my understanding on others as well.

you are going right. Networkdays also excludes weekends so you need to have a list of weekends or find a way to CALCULATE IT. I gave a link that guides a step by step way on how to use PQ equivalent of networkdays. thanks

Did I answer your question? Mark my post as a solution!super-user-logo

Proud to be a Super User!


Hi,

Here is the customer column calculation I have put in place to calculate ageing.

 

List.Sum({0} & List.Transform(List.Dates(Date.AddDays( [hp_receive_date], 1), Duration.Days(Date.From(DateTime.LocalNow()) - [hp_receive_date]) , #duration(1, 0, 0, 0)), each if Date.DayOfWeek(_, Day.Monday) < 5 then 1 else 0))

Allow me time to work through it because I'm a beginner. and I'm using the add column >> customer column option to provide the inputs. 

Helpful resources

Announcements
Fabric Data Days Carousel

Fabric Data Days

Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!

October Power BI Update Carousel

Power BI Monthly Update - October 2025

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

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.

Top Kudoed Authors