
Originally Posted by
MarvinP
What is an example of a DNR without using Offset or Index?
INDEX is not Volatile (since XL97) - it is considered "semi-volatile" in so far as it is Volatile upon Open (ie will calculate) but not thereafter.
So
Name: _Ex1
=OFFSET($A$1,0,0,COUNT($A:$A),1)
is 100% Volatile whereas
Name: _Ex2
=$A$1:INDEX($A:$A,COUNT($A:$A))
is not
(it is semi volatile - and that's misleading term IMO - "occasionally volatile" would be more appropriate)
To reiterate: how big an issue a Volatile construct is all depends on the context so it's not as simple as saying INDEX good OFFSET bad.
It should also be noted that no DNR will work with INDIRECT irrespective of Volatility concerns:
=ROWS(INDIRECT("_Ex1"))
=ROWS(INDIRECT("_Ex2"))
neither of the above would work
(in this scenario we are obliged to use an IF, CHOOSE or Evaluate method)

Originally Posted by
MarvinP
Do you consider VBA named ranges that change with code, DNRs?
If you're saying: VBA alters RefersTo fixed range then No.
A Dynamic Named Range (IMO) is defined by the fact that it is capable of resizing itself by virtue of the RefersTo construct alone.
(per the above examples - as #'s are added to A so the height of the Named Range alters)
It's something of a contentious issue ... the above is my own personal opinion - nothing more - just didn't want to be misconstrued / misquoted.
Bookmarks