Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
mbs2016
Helper I
Helper I

DATEDIFF calculation error

Trying to calculate number of days between two date fields.

 

Here is what I have,  

 

Days Overdue = DATEDIFF(MP_REP_DOCUMENT[RDOC_SCAN_DATE], (MP_REP_POSTING[RPST_CLEARING_DATE]), DAY)

 

Getting the following error:

A single value for column 'RDOC_SCAN_DATE' in table 'MP_REP_DOCUMENT' cannot be determined. This can happen when a measure formula refers to a column that contains many values without specifying an aggregation such as min, max, count, or sum to get a single result.

 

1 ACCEPTED SOLUTION
Ch
Frequent Visitor

Hi,

 

Your method is mostly right, but it needs a SUM for the column names to get it to work. I was assuming that you were wanting the number days after a deadline to make it 'Overdue'. I added an image to describe my thinking. 

I added an extra part in case the end date is met before the deadline. I also added a "*-1" to this but you could just replace the entire second line of the formula with a 0 or whatever you desire.

This is that calculated measure formula: 

Days Overdue = IF(SUM(Data[Deadline])>SUM(Data[End Date]),
DATEDIFF(SUM(Data[End Date]),SUM(Data[Deadline]),DAY)*-1,   
DATEDIFF(SUM('Data'[Deadline]),SUM('Data'[End Date]),DAY))

 

Datediff.png

If you are trying to just get the days between a start date that is always previous to an end date, it is pretty much what you had before except to add the SUMS. I made a calculated measure for the 'Days from Start to End' with this formula:
Days from Start to End = DATEDIFF(Sum(Data[Start Date]),SUM(Data[End Date]),DAY)

 

Now if you only want Monday-Friday to count as part of the days then it is a bit more complicated.

Hope this helps!

View solution in original post

1 REPLY 1
Ch
Frequent Visitor

Hi,

 

Your method is mostly right, but it needs a SUM for the column names to get it to work. I was assuming that you were wanting the number days after a deadline to make it 'Overdue'. I added an image to describe my thinking. 

I added an extra part in case the end date is met before the deadline. I also added a "*-1" to this but you could just replace the entire second line of the formula with a 0 or whatever you desire.

This is that calculated measure formula: 

Days Overdue = IF(SUM(Data[Deadline])>SUM(Data[End Date]),
DATEDIFF(SUM(Data[End Date]),SUM(Data[Deadline]),DAY)*-1,   
DATEDIFF(SUM('Data'[Deadline]),SUM('Data'[End Date]),DAY))

 

Datediff.png

If you are trying to just get the days between a start date that is always previous to an end date, it is pretty much what you had before except to add the SUMS. I made a calculated measure for the 'Days from Start to End' with this formula:
Days from Start to End = DATEDIFF(Sum(Data[Start Date]),SUM(Data[End Date]),DAY)

 

Now if you only want Monday-Friday to count as part of the days then it is a bit more complicated.

Hope this helps!

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

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

April Fabric Community Update

Fabric Community Update - April 2024

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

Top Kudoed Authors