Optionaloptions: AppendNamesOptionsThe symbol table, at one altitude. =Revenue*(1+TaxRate) is unreadable without it, and a
name broken by a sheet delete is a root cause that produces no cell error until something
references it. Names are bounded (tens of rows, a handful of tokens each), so they are shown in
full by default; the cap is a guard against books that accumulated hundreds of junk names
through sheet copying, not a budget.
One section, never split by kind. A named formula and a named range are not separate
listings: splitting them would defeat the sort below, letting a broken named formula sort under
a healthy named range purely because of which section it landed in. Every question the
distinction answers is already a mark on the row — whether Refers To is navigable
(=Sales!$B$2:$B$100 versus =0.21), (volatile), (does not resolve).
Broken names are their own block, directly under the heading — N do not resolve: and a
table whose Error column carries the cause (#REF!, #NAME?: Gone). A trailing
(does not resolve) inside Refers To was the least findable place for the one fact that must
be found: it landed at a varying x-position at the end of the widest column. The block's mere
EXISTENCE is the alarm, its heading carries the count, and the Error column is populated on
every row it prints — where the same column in one shared table would be blank padding on every
healthy row. A healthy book pays nothing: no broken names, no block, exactly as Hidden and
Comment only exist when some row has one.
Then the main table, sorted by dependents descending, alphabetical on ties. A reader's
order — load-bearing symbols, then trivia — and it makes the cap safe by construction, since
truncation can only eat the tail. It needs no special case for zeros: they sink on their own,
which is how hidden junk like _FilterDatabase disappears without being filtered.
Dependents counts cells AND names — see describeDependents. A name referenced only
by other names is load-bearing, and counting cells alone reported it as unused and sorted it
to the bottom with the junk. A global name that is unused while a sheet-scoped twin wins the
binding says unused · shadowed — the word alone reads as safe-to-delete, and the shadow is
often exactly why nothing reaches it. There is deliberately no Value column: a name with relative
references or implicit intersection evaluates PER CALLING CELL, so a single value is not well
defined, and for a reference name the value is grid data — which structure reports never carry.
Hidden and Comment appear only when some row has one — per block. false on every visible
row is token noise, and blank-means-normal is how these reports already speak.
Appends the defined-name roster — one row per name, sorted for triage.