cancel
Showing results for
Did you mean:
Helper I

## calculate working day in positive and negative between two dates column

Hi Guys,

I have to prepare a milestone trend analysis and I have 3 columns; Due Date, Actual Date, Working Days

 Due Date Actual Date Working Days 03-06-21 10-06-21 -6.0 04-06-21 11-06-21 -6.0 05-06-21 12-06-21 -5.0 06-06-21 07-06-21 08-06-21 09-05-21 22.0 09-06-21 10-05-21 23.0 10-06-21 11-05-21 23.0

I need to calculate working days in all three cases; Negative, Positive, and Blank. I have created a calculated column with the below formula but that only gives working days when days are positive, not the other 2 conditions.

``````Planned working days Due =
SUMX(
FILTER(
'Calendar',
'Calendar'[Dates] >= 'Milestone Data'[Due Date]
&& 'Calendar'[Dates] <= 'Milestone Data'[Field Work Start]
),
'Calendar'[if work day]
)``````

I have calculated the calendar also with the below fields.

This is all the actual data fields I shared.

1 ACCEPTED SOLUTION
Super User
``````NetWorkday =
VAR __min = MIN( 'Milestone Data'[Actual Date], 'Milestone Data'[Due Date] )
VAR __max = MAX( 'Milestone Data'[Actual Date], 'Milestone Data'[Due Date] )
RETURN
IF(
NOT ISBLANK( 'Milestone Data'[Actual Date] ),
SIGN( 'Milestone Data'[Due Date] - 'Milestone Data'[Actual Date] )
* COUNTROWS( FILTER( CALENDAR( __min, __max ), WEEKDAY( [Date], 2 ) < 6 ) )
)``````

 Thanks to the great efforts by MS engineers to simplify syntax of DAX! Most beginners are SUCCESSFULLY MISLED to think that they could easily master DAX; but it turns out that the intricacy of the most frequently used RANKX() is beyond their comprehension! DAX is simple, but NOT EASY!
8 REPLIES 8
Super User
``````NetWorkday =
VAR __min = MIN( 'Milestone Data'[Actual Date], 'Milestone Data'[Due Date] )
VAR __max = MAX( 'Milestone Data'[Actual Date], 'Milestone Data'[Due Date] )
RETURN
IF(
NOT ISBLANK( 'Milestone Data'[Actual Date] ),
SIGN( 'Milestone Data'[Due Date] - 'Milestone Data'[Actual Date] )
* COUNTROWS( FILTER( CALENDAR( __min, __max ), WEEKDAY( [Date], 2 ) < 6 ) )
)``````

 Thanks to the great efforts by MS engineers to simplify syntax of DAX! Most beginners are SUCCESSFULLY MISLED to think that they could easily master DAX; but it turns out that the intricacy of the most frequently used RANKX() is beyond their comprehension! DAX is simple, but NOT EASY!
Helper I

Thanks a lot, it worked perfectly for networking day in Planned vs Actual days and day difference also!!

Super User

Try this, if you are doing as calculated column

``````Planned working days Due =
CALCULATE (
COUNTROWS ('Calendar')
, DATESBETWEEN ( 'Calendar'[Dates], 'Milestone Data'[Field Work Start], 'Milestone Data'[Due Date] - 1 )
, 'Calendar'[if work day] = 1
, All ( 'Milestone Data' )
)``````

Check this link which provides full details...

https://www.sqlbi.com/articles/counting-working-days-in-dax/

Helper I

Hey @sevenhills ,

It didn't solve the other two things, count negative days and ignore when encounter blank.

Super User

Looks like you are trying is count in all (three) conditions i.e., like pretty much ignoring any conditions.

Then it is as simple as difference between dates.

``````Planned working days Due =
CALCULATE (
COUNTROWS ('Calendar')
, DATESBETWEEN ( 'Calendar'[Dates], 'Milestone Data'[Field Work Start], 'Milestone Data'[Due Date] - 1 )
, All ( 'Milestone Data' )
)``````
Super User

If this is what you need, all your need is this

``Days Diff = DATEDIFF( 'Milestone Data'[Due Date] - 1, 'Milestone Data'[Field Work Start], DAY )``
Helper I

This is giving me normal numbers of days between two dates, not total working days (excluding Weekend - Saturday & Sunday)

Super User

Sorry, it is really not clear what exactly you are looking for ...

Below links covers the dates difference ... considering working days, holidays and other ... Please check

https://blog.enterprisedna.co/calculate-workdays-between-two-dates-in-power-bi/

https://www.mssqltips.com/sqlservertip/6917/working-days-calculator-power-bi/

Announcements

#### Microsoft Build is May 24-26. Have you registered yet?

Come together to explore latest innovations in code and application development—and gain insights from experts from around the world.

#### Charticulator Design Challenge

Put your data visualization and design skills to the test! This exciting challenge is happening now through May 31st!

#### What difference can a User Group make for you?

At the monthly call, connect with other leaders and find out how community makes your experience even better.

#### Check it out!

Mark your calendars and join us on Thursday, May 26 at 11a PDT for a great session with Ted Pattison!

Top Solution Authors
Top Kudoed Authors