Forum Discussion

MoreDataPlease's avatar
MoreDataPlease
Frequent Visitor
9 years ago
Solved

Dynamic Column Count Based on Date Slicer Selection

I have a claims history table with multiple rows for each claim number.  Each row provides the claim number, the status of the claim, and a date when that status occurred.  I'm trying to count the nu...
  • danrmcallister's avatar
    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