I like XLOOKUP, too. It always bothers me when I need to use IFERROR.
You can get rid of the zeros several ways. Here are four I am thinking of:
1) Use the method in you earlier post =IF(F3="","", XLOOKUP())
This way makes the most sense to people, I think, and is trouble free.
2) Append &"" to the end of the formula =XLOOKUP()&""
This is easy but it will turn all cells into text. If there are any numbers in that data that you plan on doing things with (such as summing up the tonnage of the selected ships or something like that), this might not be the best way because functions like SUM ignore text, even if the text looks like a number.
3) Prefill all blank cells in Column A of either the results table or data table (but not both) with a space character. That way XLOOKUP will either be looking for a space character when there are none or will be looking for a blank cell when there are none. I suggest doing it to the data table because it stays constant and there is less likelihood of deleting one.
4) Shorten the data table so it has no blank rows. Ultimately this is the easiest because there is no change to the formula. It is simple enough to add new rows when you need to and the formula will pick them up automatically.