Forum Discussion
A M-Code equivalent for =NETWORKDAYS() in excel?
- 7 years ago
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).
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),
#"Added Custom" = Table.AddColumn(#"Converted to Table", "Weekday", each Date.DayOfWeek([Column1],Day.Monday)),
#"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.
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
- Chihiro7 years agoSolution 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).