SheetXL - v0.8.0-beta.9+sites.210.e2d420901
    Preparing search index...

    Function appendNames

    • Appends the defined-name roster — one row per name, sorted for triage.

      Parameters

      Returns Promise<void>

      The 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.