使用表进行数据validation而不使用INDIRECT的非易失性方式
我经常使用INDIRECT函数的一个地方是用于数据validation。 如果我有一个名为Color
的列名为tabColor
的表,并且我想用它来进行数据validation ,那么您可以将数据validation设置为具有以下公式的列表:
=tabColor[Color]
但是,这会导致错误。 如果您使用INDIRECT
包装公式,它将起作用:
=INDIRECT("tabColor[Color]")
所以,我有两个问题:
- 在数据validation中使用
INDIRECT
会导致单元被标记为volatile? - 有没有一种使用表进行数据validation的非易失性方法?
顺便说一句,如果你想知道更多关于volatile函数的信息,可以在chandoo.orgfind一个很好的文章
- 是。 只要工作簿中的任何计算周期运行,数据validation列表就会刷新。 在数据有效性,命名范围,条件格式规则等中使用易失性公式时,这是一种不可见的寄生计算滞后。
- 创build一个命名范围 , 指的是: as
=tabColor[color]
然后使用命名范围的名称作为数据validation列表的Source=tabColor[color]
令人遗憾的是,表格命名约定还没有涉及到应该能够直接使用的所有function。