cancel
Showing results for
Did you mean:

Fabric is Generally Available. Browse Fabric Presentations. Work towards your Fabric certification with the Cloud Skills Challenge.

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

#### Power BI Monthly Update - November 2023

Check out the November 2023 Power BI update to learn about new features.

#### Fabric Community News unified experience

Read the latest Fabric Community announcements, including updates on Power BI, Synapse, Data Factory and Data Activator.

#### The largest Power BI and Fabric virtual conference

130+ sessions, 130+ speakers, Product managers, MVPs, and experts. All about Power BI and Fabric. Attend online or watch the recordings.

Top Solution Authors
Top Kudoed Authors