Why the third argument matters
The two North/Open rows hold 125 and 75. A FILTER expression should return those entries in that order. The downloaded LibreOffice workbook proves SUM(FILTER(...))=200; it does not assert that the spill area is rendered as two cells in every release or import path.
In LibreOffice and ONLYOFFICE, the third argument is documented as an optional value to use when no rows match. In Zoho Sheet, the help signature is FILTER(range;condition;[condition1];...): the third argument is an additional condition. Blindly copying a LibreOffice empty-result string into a Zoho formula therefore changes the formula’s logic.
Array behaviour needs its own tests
- Reserve enough empty destination cells for a spilled result.
- Test a no-match scenario explicitly, recording whether it returns an error, empty array or fallback.
- Test a source range containing blanks and headers, rather than assuming filtering handles them identically.
- In a legacy engine, use the application’s built-in data filter or a row-flag helper instead of pretending modern dynamic arrays work unchanged.