Forum Discussion
IF Statement Amendment
- 11 months ago
Hi ArchStanton , try this formula.
Logic Used:
When the Created On equals the Resolution Date , return 1 day;
otherwise for resolved cases return an inclusive day count (DATEDIFF + 1).
For active cases the existing behaviour is preserved (you can switch to inclusive there too if you prefer).Case Length = VAR StartDate = IF( ISBLANK( 'Cases'[legacycasecreationdate] ), 'Cases'[Created On], 'Cases'[legacycasecreationdate] ) VAR IsActive = 'Cases'[statecode] = "Active" VAR ResDate = 'Cases'[Resolution Date] RETURN IF( IsActive, -- Active: difference between StartDate and now (unchanged behaviour) DATEDIFF( StartDate, NOW(), DAY ), -- Resolved: handle blanks, same-day, otherwise inclusive DATEDIFF (+1) IF( ISBLANK( ResDate ), BLANK(), IF( DATEVALUE( StartDate ) = DATEVALUE( ResDate ), 1, -- same calendar day => 1 DATEDIFF( StartDate, ResDate, DAY ) + 1 -- inclusive count ) ) )Notes / rationale
DATEVALUE(...) is used when comparing StartDate and ResDate so time components don’t make two same-day timestamps look different.
DATEDIFF(...)+1 gives an inclusive day count (e.g., start = 1-Jan, end = 2-Jan → 2 days).
If you want inclusive logic for active cases too, change the active branch to DATEDIFF( StartDate, NOW(), DAY ) + 1.
If you prefer to always return 0 rather than BLANK() for missing Resolution Date, replace BLANK() with 0.
⭐Hope this solution helps you make the most of Power BI! If it did, click 'Mark as Solution' to help others find the right answers.
💡Found it helpful? Show some love with kudos 👍 as your support keeps our community thriving!
🚀Let’s keep building smarter, data-driven solutions together!🚀 [Explore More]
Hi ArchStanton
Try this:
-- Determine the "end date" depending on the case's state
VAR _End =
IF (
'Cases'[statecode] = "Active", -- If the case is still active,
'Cases'[Resolution Date], -- use its Resolution Date as end date,
TODAY () -- otherwise, use today's date or NOW() ?
)
-- Calculate the number of days between creation and end date
VAR _DaysDiff =
DATEDIFF (
COALESCE ( -- Use first available creation date:
'Cases'[legacycasecreationdate], -- Prefer legacy creation date if available,
'Cases'[Created On] -- otherwise use the regular Created On date
),
_End, -- up to the end date determined above
DAY -- return the difference in days
)
-- Final return value:
-- Add 1 day only if creation date equals resolution date; otherwise, return the normal difference
RETURN
IF (
'Cases'[legacycasecreationdate] = 'Cases'[Resolution Date],
_DaysDiff + 1, -- Same-day cases: count as 1 full day
_DaysDiff -- Otherwise, just return the calculated difference
)