I have got the answer by doing this,
First I inserted rank of my status change by ID
If([Status Change Date] is not NULL,Rank(RowId(),"asc",[ID]))```
then I inserted onw more calculated column to get the last status change date using rank
Last([Status Change Date]) OVER (Intersect([task_id],Previous([Rank of Status Change Date])))
This gave me the Last Status Change Date