LOOKUP{} returns the last value less than the target if no exact match is found.
The data need not be sorted for this scenario.
It's unlikely you will ever match a string that contains 255 "z"s so you get the last cell with text.
As Pete suggests numeric values are treated differently, as are mixed data ranges
See this workbook for more examples.
Bookmarks