In terms of calculation hungriness, I'd generally label COUNTIFS() in the medium to high range.
The key to getting the a more efficient solution is to have the data sorted first by Employee number and then Date of Absence (ASC).
Then, assuming the data has headers in row 1, the formula in C2 (and then fill down the column) to get the row_number is: =IF(A2=A1,C1+1,1)
Unfortunately I can't trust the end users that this was put together for, with having data in the right order
I have also developed my solution to work with Excel Tables, and to implement your method would require the use of Offset(), which I have found a little greedy too.