cancel
Showing results for
Did you mean:

Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started

Anonymous
Not applicable

A M-Code equivalent for =NETWORKDAYS() in excel?

So I have a start and an end date and I need to calculate turnaround time in working days.

Excel has NETWORKDAYS which does the removing of weekends all by itself.

Is there an equivalent for M-Code? I have googled and can only find complex code to work out days, weeks, weekends etc and subtracting these.

Thanks!

Jemma

1 ACCEPTED SOLUTION
Solution Sage

You would invoke it in your original table as Add Columns->Invoke Custom Function. Set each argument as column and use your start date column and end date column.

Edit: Or alternately use it in Advanced Editor, and pass on Start & End as variable (from calculation, another query etc).

Oh, custom function should be copied and pasted into new blank query (using advanced editor). Name it something that makes sense. (Ex: fnWorkday).

5 REPLIES 5
Solution Sage

No built-in "M" function to do it. You can create custom function like below.

Ex: Week starting Monday, Sat & Sun as weekend.

```(sDate as date, eDate as date)=>
let
vDur = Duration.Days(Duration.From(eDate - sDate)),
Source = List.Dates(sDate, vDur + 1, #duration(1, 0, 0, 0)),
#"Converted to Table" = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Filtered Rows" = Table.SelectRows(#"Added Custom", each ([Weekday] <> 5 and [Weekday] <> 6)),
Row_Count = Table.RowCount(#"Filtered Rows")
in
Row_Count```

Edit: There are other ways to write custom function (such as using List.Generate/List.Accumulate), but above should be easier to maintain/change if you needed to.

Frequent Visitor

Thanks! I suspect this is something I'm expected to do in DAX but I can think in M, DAX gives me headaches 🙂

Anonymous
Not applicable

Hello again Chihiro,

Where should I insert your formula? Into a new custom column within Query Editor?

I am trying to avoid the creation of a new table with a row of dates - it seems a fairly inefficient way of doing something so I don't mind a function even if it is complex if it does the job in one column or measure!

🙂

Jemma

Solution Sage

You would invoke it in your original table as Add Columns->Invoke Custom Function. Set each argument as column and use your start date column and end date column.

Edit: Or alternately use it in Advanced Editor, and pass on Start & End as variable (from calculation, another query etc).

Oh, custom function should be copied and pasted into new blank query (using advanced editor). Name it something that makes sense. (Ex: fnWorkday).

Regular Visitor

Could you not create a custom dates table and denote when a date is a weekend and when it is a weekday?

Announcements

Europe’s largest Microsoft Fabric Community Conference

Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.

Power BI Monthly Update - August 2024

Check out the August 2024 Power BI update to learn about new features.

Microsoft Fabric & AI Learning Hackathon

Learn from experts, get hands-on experience, and win awesome prizes.

Fabric Community Update - September 2024

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

Top Solution Authors
Top Kudoed Authors