Forum Discussion
Dynamic Column Count Based on Date Slicer Selection
- 9 years ago
Here's my thought on how to tackle this. I created your table in Excel and imported it into PBI, then did the following:
- Created a date table
DateTable = Calendar(Minx(table1,Table1[Date]),Now())
- To the date table I added 3 calculated columns, purpose being to count how many claims have been opened, reopened, and closed all time as of that date:
AllTimeOpened = CALCULATE( COUNTROWS(Table1), FILTER(Table1, DateTable[Date] >= Table1[Date] && Table1[Status] = "Open") )AllTimeReopened = CALCULATE( COUNTROWS(Table1), FILTER(Table1, DateTable[Date] >= Table1[Date] && Table1[Status] = "Reopened") )AllTimeClosed = CALCULATE( COUNTROWS(Table1), FILTER(Table1, DateTable[Date] >= Table1[Date] && Table1[Status] = "Closed") )- Then to the date table, I added another calculated column called "Open Cases"
Open Cases = CALCULATE( VALUES(DateTable[AllTimeOpened]) + VALUES(DateTable[AllTimeReopened]) - VALUES(DateTable[AllTimeClosed] ) )
The result of all this is that I have a count in my date table of how many actively open cases there are on any given day. I can chart this out, but if I try to make a card/slicer it gives me inaccurate data because it sums up my column. Instead I probably want to make it a calculated measure instead. The measure will only be meaningful if a date slicer is used, so I wrote it as such:
Open Measure = IFERROR( CALCULATE( VALUES(DateTable[AllTimeOpened]) + VALUES(DateTable[AllTimeReopened]) - VALUES(DateTable[AllTimeClosed] ) ), "Use Slicer")Might be a better way to do that.
Anyway, here are the visual results:
Is this on the right path of what you're looking for?
Dan
- Created a date table
Here's my thought on how to tackle this. I created your table in Excel and imported it into PBI, then did the following:
- Created a date table
DateTable = Calendar(Minx(table1,Table1[Date]),Now())
- To the date table I added 3 calculated columns, purpose being to count how many claims have been opened, reopened, and closed all time as of that date:
AllTimeOpened = CALCULATE( COUNTROWS(Table1), FILTER(Table1, DateTable[Date] >= Table1[Date] && Table1[Status] = "Open") )AllTimeReopened = CALCULATE( COUNTROWS(Table1), FILTER(Table1, DateTable[Date] >= Table1[Date] && Table1[Status] = "Reopened") )AllTimeClosed = CALCULATE( COUNTROWS(Table1), FILTER(Table1, DateTable[Date] >= Table1[Date] && Table1[Status] = "Closed") )- Then to the date table, I added another calculated column called "Open Cases"
Open Cases = CALCULATE( VALUES(DateTable[AllTimeOpened]) + VALUES(DateTable[AllTimeReopened]) - VALUES(DateTable[AllTimeClosed] ) )
The result of all this is that I have a count in my date table of how many actively open cases there are on any given day. I can chart this out, but if I try to make a card/slicer it gives me inaccurate data because it sums up my column. Instead I probably want to make it a calculated measure instead. The measure will only be meaningful if a date slicer is used, so I wrote it as such:
Open Measure = IFERROR(
CALCULATE(
VALUES(DateTable[AllTimeOpened]) +
VALUES(DateTable[AllTimeReopened]) -
VALUES(DateTable[AllTimeClosed] )
),
"Use Slicer")Might be a better way to do that.
Anyway, here are the visual results:
Is this on the right path of what you're looking for?
Dan
- MoreDataPlease9 years agoFrequent Visitor
danrmcallister Thank you for the response! Appears this should get me what I need. Putting it in now to test. Will let you know final verdict.
- MoreDataPlease9 years agoFrequent Visitor
danrmcallister I'm running into an error with trying to create the measure - it's telling me that the syntax is incorrect. Any ideas on why I might be getting that error?
My Measure in the Date Table:
Open Measure = CALCULATE(
VALUES(Date[AllTimeOpened])+
VALUES('Date'[AllTimeReopened]) -
VALUES('Date'[AllTimeClosed]))ERROR:
The syntax for '[AllTimeOpened]' is incorrect. (DAX(CALCULATE( VALUES(Date[AllTimeOpened])+ VALUES('Date'[AllTimeReopened]) - VALUES('Date'[AllTimeClosed])))).
- danrmcallister9 years agoResolver II
The "AllTimeOpened", "AllTimeReopened", and "AllTimeClosed" fields you see below were calculated columns I created against my date table. Did you complete that step first?
- MoreDataPlease9 years agoFrequent Visitor
danrmcallister I created all three of the calculated columns, and I just realized the VERY basic obvious reason why I was getting a syntax error. I didn't have Date in quotes for the first VALUES in my measure. I have now fixed that and my error is gone. I can now officially test the code. Thank you again for your time!