将表名称作为单元格值验证的参考

将表名称作为单元格值验证的参考

我想借助简单列表来验证单元格值。但事实证明,扩展此列表非常困难,因为每次添加新值时都需要更新验证源范围,如图所示。

替代文本

我的问题是:我可以将动态表引用放入“源”字段吗?如果可以,那么我该怎么做?

谢谢。

答案1

从 Excel 2010 开始,您不能直接使用结构化引用作为数据验证的源列表。但是,您可以为结构化引用定义一个名称,并使用这个新名称。

例如,如果我有一个名为的单列表Table1,其中包含一个名为的列Acceptable Values,我可以ValidValues使用结构化引用定义一个新名称Table1[Acceptable Values]。在数据验证列表的源字段中,我可以输入=ValidValues

答案2

回答你的问题:

我可以将动态表引用放入“源”字段吗?如果可以,那么我该怎么做?

是的!就像这样...

使用函数直接从数据验证源字段引用表列INDIRECT

示例数据验证来源:

=INDIRECT("Table1[MyColumn]")

但请小心:对表/列引用名称的任何更改都不会神奇地更新!

参考

  1. https://support.office.com/en-nz/article/INDIRECT-function-21f8bcfc-b174-4a50-9dc6-4dfb5b3361cd?ui=en-US&rs=en-NZ&ad=NZ
  2. http://www.get-digital-help.com/2012/10/15/how-to-use-a-table-name-in-data-validation-lists-and-conditional-formatting-formulas/

答案3

我可以看到两种方法可以做到这一点:

使用命名范围

C1:C6在菜单栏上选择,转到插入->姓名->定义,输入范围的名称(例如,“ValidationList”)。在数据验证窗口中,来源字段应设置为=ValidationList

每当你将项目添加到列表中时你需要重新审视插入->姓名->定义窗口中,从列表中选择命名的项目并更改指的是值。

所有引用=ValidationList将自动指向新修改的列表。

扩展列表的中心

在此示例中,您使用$C$1:$C$6列表区域,如果您在中间此列表(即选择C4、右键单击、插入、向下移动单元格),则范围应该为您扩大。

答案4

我想延长DMA57361的答案。使用命名范围,但使该范围动态化,以便当列表增长或收缩时,动态范围会按照您的需要扩展和收缩。

如果您有一个列表,从 C1 开始,到 C6 结束,则以下代码将允许它扩展和收缩。一旦单元格留空,列表就会停止。

=OFFSET($C$1, 0, 0, COUNTA($C:$C),1)

将此公式放入命名范围并将其命名为 ValidationList。在数据验证对话框中选择列表,然后输入=ValidationList作为源。

创建动态命名范围的一个非常好的资源:http://www.ozgrid.com/Excel/DynamicRanges.htm

相关内容