=ARRAYFORMULA(QUERY(UNIQUE(QUERY(SPLIT(TRANSPOSE(SPLIT(
QUERY(TRANSPOSE(QUERY(TRANSPOSE("♠"&INDIRECT("A2:A"&COUNTA(B2:B)+1)&"♦"&
SPLIT(REPT(INDIRECT("B2:B"&COUNTA(B2:B)+1)&"♣",
DAYS(INDIRECT("C2:C"&COUNTA(B2:B)+1), INDIRECT("B2:B"&COUNTA(B2:B)+1))+1), "♣")+
TRANSPOSE(ROW(INDIRECT("A1:A"&MAX(DAYS(C2:C, B2:B)+1)))-1))
,,999^99)),,999^99), "♠")), "♦"), "where Col2 > 4000", 0)),
"select Col1,count(Col2) group by Col1 label count(Col2)''"))
![0](https://i.stack.imgur.com/0vphi.png)