Excel 帮助:动态范围 + 数据验证

MmV*_*mVv 2 excel vba excel-formula

我遇到了一些流行的 Excel 问题、动态范围、数据验证下拉菜单和自动填充问题。假设我有两张纸,在一张纸上我有下拉菜单可以从另一张纸中进行选择,当我使用以下方法定义单元格和范围时,这不是问题:

在此输入图像描述

=OFFSET($A$19;;;COUNTA('0528 - info'!$E$2))
Run Code Online (Sandbox Code Playgroud)

..但是当我想在两者之间添加一些新单元格时该怎么办,以便它们可以自动识别它们属于哪个组:

正如您所看到的,B 列有一些“组”,您可以在其中找到更多不同的“值”,如 C 列中所示,例如电源有 MV1 和 MV2...等等。我在工作表 1 上的下拉列表的调用方式与此“组”完全相同,并且我确实使用给定的函数手动引用了它们。但是,当我在此表中的 MV2 下方添加例如 MV3 时,是否可以自动填充我的下拉菜单?还是第14排的RN7?每次我添加新值时,我都必须扩展我的下拉列表(这很好……),但问题是当我与其他人共享此表时,他们 90% 都会忘记它。

在此输入图像描述 我希望你明白我的意思,任何建议都可以!

ps Indirect 没有以应有的方式工作 - 它为我提供了列中的所有实例,但不是我需要的特定实例。

=INDIRECT("Table4[VarEDS]")
Run Code Online (Sandbox Code Playgroud)

好吧,这个选项再次给了我以前已经拥有的东西 - 列中的所有“匹配”,而且仍然不仅仅是特定组的匹配。...

在此输入图像描述

Nar*_*esh 5

如果您的数据验证源是如图所示的“表”,那么您可以利用动态的“表列”范围。这意味着每当您将该列引用为命名范围,并且如果对该列进行更改(编辑、添加、删除),它将反映在引用的单元格中。

即使对于表中没有的范围,您也可以使用此技术。您需要使用偏移公式对它们进行命名并使其动态化。

您可以找到列的动态地址,如下图所示。选择不带标题的整列

在此输入图像描述

使用适当的名称命名您的列数据范围,如下图所示

在此输入图像描述

然后在数据验证窗口中使用 F3 引用该名称,如下图所示。

在此输入图像描述

然后您可以看到...即使您编辑、添加或删除列中的任何行,数据验证也会发生变化

在此输入图像描述

在此输入图像描述

根据以下评论进行编辑:如果您希望 B 列和 C 列中的文本一起出现在验证下拉列表中。在表中插入列并连接 B 列和 C 列中的文本,然后基于该列进行数据验证,如下图 D 列所示

在此输入图像描述

最后我想我明白了你的问题。观看此视频 Excel:查找多个匹配项和相关下拉列表