Try the attached example. I created a calc field [last record] to check if it's the last record based on [Order Date]. Only the final record (ie most recent) returns TRUE so you can filter out the FALSE values and still do the calcs based on all the other records (as you can see by the Running Sum on the sheet).
As to why your worksheet is so slow, I think is simply down to the number of table calcs on the sheet itself. It does seem to be extremely slow, though. I don't have any particular recommendations for speeding things up I'm afraid.
thanks so much. Works like a charm.