I will say that LOOKUP could be the best choice. While MAX(IF(... processes all the columns of the sheet and recalculates every time (not convenient in a large workbook) and use a brute-force algorithm, LOOKUP is an internally optimize function and it will also ignore the errors (in this case generated by 1/(LEN(I:I)>0),ROW(I:I) when the cells contain "" ).
Be careful about which version of Excel are you using --> Read chapter 'Improve lookup calculation time' at https://learn.microsoft.com/en-us/office/vba/excel/concepts/excel-performance/excel-tips-for-optimizing-performance-obstructions?source=recommendations