cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
rachaelwalker
Resolver II
Resolver II

Business days between two dates and to ignore null

I have two date columns. I am calculating the business days between the two dates but it is returning 0 days even for fields that are null. Is there a way to ignore those that do not have two dates and leave it blank? I am using this to calculate business hours // fnWorkHours(WHStarts, WHEnds, Ticket Start Date/Time, Ticket End Date/Time, Holidays)/WHDuration)

 

Here is the calculated column from within power query

 

 

Days = if [Date_Picked] <> null then fnWorkHours(WHStarts, WHEnds,[Date_Picked], if [Date_Req] <> null then [Date_Req] else null, Holidays)/WHDuration else null

 

 

rachaelwalker_0-1647955680550.png

I would like "Days" to return blanks for top 6 that have missing dates. And if possible to show a negative amount when the Date Req is greater than Date Picked. Currently it is showing 0 as well

 

 

 

2 REPLIES 2
v-yingjl
Community Support
Community Support

Hi @rachaelwalker ,

Is there a way to ignore those that do not have two dates and leave it blank?

You can try to define the null value first in the if statement when creating the custom column, like this:

= if [Date_Picked] = null or [Date_Req] = null then null else nWorkHours(WHStarts, WHEnds,[Date_Picked], if [Date_Req] <> null then [Date_Req] else null, Holidays)/WHDuration

 

 if possible to show a negative amount when the Date Req is greater than Date Picked

If you also wants to show a negative amount, perhaps you can consider sharing your custom function fnWorkHours like @ jennratten mentioned.

 

Best Regards,
Community Support Team _ Yingjie Li
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

jennratten
Super User
Super User

Hello - this is how you can evaluate the difference between the dates, returning null values for records without two dates and a negative value if the start date is greater than the end date.  If this does not work for you pls post the script for your custom function fnWorkHours - that may need to be modified.

 

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMtc3MgAiI0MFQ0MrAwOFxFwlHSWlWJ1oJQt9Q1OojBFIpgAuY6lviCFhqA8yychIwcTKxFQhwBes0NAAYTohpYb6hliUGsKsQlaLVwLD8FgA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [StartDate = _t, EndDate = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"StartDate", type datetime}, {"EndDate", type datetime}}),
    #"Inserted Date Subtraction" = Table.AddColumn(#"Changed Type", "Days", each Duration.Days([EndDate] - [StartDate]), type number)
in
    #"Inserted Date Subtraction"

 

jennratten_0-1647957100480.png

 

Helpful resources

Announcements
Power BI Show Episode 10 Recap

The Power BI Community Show

Watch the playback when Amit Chandak, a Power BI Super User, demos how to use Field Parameters to make reports more dynamic.

Power BI Dev Camp Session 26

Ted's Dev Camp - October 6, 2022

Watch the playback of Session 26 with Ted Pattison!

Health and Life Sciences Power BI User Group

Health and Life Sciences Power BI User Group

Power BI specialists at Microsoft have created a community user group where customers in the provider, payor, pharma, health solutions, and life science industries can collaborate.

Ignite 2022

What's Next at Microsoft Ignite 2022

Explore the latest innovations, learn from product experts and partners, level up your skillset, and create connections from around the world.

Top Kudoed Authors