When SELECT() returns an empty list, MAX() on that list does not return a blank
value that ISBLANK() can catch — it produces an error, and the surrounding
formula collapses silently.
This makes the usual defensive pattern useless: wrapping the result in
ISBLANK() does not protect against the empty-list case.
Expected: MAX() on an empty list returns a blank value.
Actual: it errors, and the whole formula returns nothing.
Steps to reproduce:
- Create a parent table and a child table with a date column.
- On the parent, add a virtual column:
MAX(SELECT(Child[TheDate], [RefParent] = [_THISROW].[Row ID])) - Wrap it in a guard such as IF(ISBLANK(…), “none”, …).
- Create a parent row with one child row, then delete the child row.
- Look at the parent record.
Result: the column is blank; the ISBLANK() guard does not fire.
Workaround: check the list size first, before calling MAX():
IF(COUNT(SELECT(Child[Row ID], [RefParent] = [_THISROW].[Row ID])) = 0, …)
The failure mode is silent, which makes it hard to diagnose — a label simply
goes empty with no error anywhere.