Forum Discussion
DATEDIFF incorrect - not sure why
Hi all,
I have the following matrix table in my report:
The Unexpired Lease in Days column contains the following:
Unexpired Lease in Days =
VAR _asofdate = [As Of Date]
VAR _leaseenddate = [End Lease Date]
RETURN
DATEDIFF(_asofdate, _leaseenddate, DAY)
However, while this provides the correct result in some instances, in others it does not. For example, the date difference between the as of date column and End Lease Date column in the above top row is giving me 6948. When I run these dates in a quick DATEDIF formula in Excel it is giving me a higher figure of 7153
What is the issue here? Surely it should be a simple case of referring to the measure that is creating the value for [End Lease Date], and the same with {As Of Date] and then that works for each row.
[as of date] is the selection of a date from a date picker filter in the report
[End Lease Date] is a more extensive measure that returns a date based on certain criteria, the last line being:
RETURN
FORMAT(_targetdate, "dd/mm/yyyy")
This shouldn't be a problem as the measure calculating the date diff above should simply lift this measure providing the date, and use this in its arguments along with the as of date measure also lifted.
Where am I going wrong?
Not sure the reason for using the FORMAT function. However, please try
RETURN
_targetdate
Or
RETURN
DATEVALUE(FORMAT(_targetdate, "dd/mm/yyyy"))
4 Replies
- julesdude
Post Partisan
Hi tamerj1
Thanks. Yes I think you are right and this is the issue. However when I select the measure [End Lease Date] so that I can change the Format dropdown on the Ribbon to Date, I only have Text as an option and cannot change this.
How can I do so? The measure in full is:End Lease Date = VAR _asOfDate = [As Of Date] VAR _assetref = [asset reference] VAR _leaseref = [Lease Reference] VAR _unitref = MAX(Unit[Unit Reference]) VAR _tenantref = [Tenant Reference] VAR _datein3months = EDATE([As Of Date],3) RETURN VAR _filter = FILTER(Lease_Unit, MAX(Lease_Unit[Lease.Tenant Reference]) = _tenantref && AND ( Lease_Unit[Lease.Expiration Date] >= _asOfDate, Lease_Unit[Lease.Commencement Date] <= _asOfDate ) || Lease_Unit[Lease.Lease Status] IN { "Holding Over", "Month-to-Month" } && OR( Lease_Unit[Lease.Termination Date] >= _asOfDate, isblank(Lease_Unit[Lease.Termination Date]) ) ) VAR _terminationDate = CALCULATE(MAX(Lease_Unit[Lease.Termination Date]),_filter) VAR _expirationdate = CALCULATE(MAX(Lease_Unit[Lease.Expiration Date]),_filter) VAR _status = CALCULATE(MAX(Lease_Unit[Lease.Lease Status]),_filter) VAR _targetdate = IF(NOT ISBLANK(_terminationDate), _terminationDate, IF(_status = "Holding Over" || _status = "Month-to-Month", _datein3months, IF(NOT ISBLANK(_expirationdate), _expirationdate, _datein3months))) RETURN FORMAT(_targetdate, "dd/mm/yyyy")I had to put the FORMAT part at the end as it wasn't recognising anything as a date?