【问题标题】:Dropwdown list from dynamic table动态表中的下拉列表
【发布时间】:2018-08-07 22:08:36
【问题描述】:

我有一个包含以下列的动态表:

COUNTRY(String), ACTIVE (Boolean),NAME(String)

一个例子是:

COUNTRY(String), ACTIVE (Boolean),NAME(String)
USA, True, Chair
Canada, False, Table
USA, False, Pen
USA, True, Pencil
Canada, True, Pencil
Canada, True, Basket

我想创建一个数据验证列表,其中包含每个活动国家/地区的名称。该列表应该是动态的,因为表格会不断变化。

例如,数据验证列表应检查包含国家名称的单元格是加拿大还是美国,并且 如果是美国,那么:椅子、铅笔/如果加拿大:铅笔、篮子。

【问题讨论】:

  • 只是为了澄清一个细节,“铅笔”会被列出两次吗?还是只有一次?
  • 两次,因为数据取决于国家/地区。我想创建一个数据验证列表,其中包含我拥有的 3 个不同国家/地区的活动名称。 @cybernetic.nomad
  • 您能否将其格式化为表格并将“活动”列过滤为“True”?

标签: excel vba validation


【解决方案1】:

我已经通过三步组织解决了这个问题。第一步是为将用于数据验证的任何增长/收缩列表制作一个“表格”。

第一步

将列中的可能值作为新表列出。将国家名称放在每列的标题行。

  A       B       C       D       E
1 Country chair           USA     Canada   <----header row
2 USA     pencil          pencil  table
3 Canada  table           Plato   warthog
4 USA     warthog
5 Canada  tuba
6 USA     magic
7 Canada  Plato

选择列(例如,示例中的 D1:E3)并单击“插入”>“表格”。

勾选“我的数据有标题”并点击确定。

在新格式化的列中选择一个单元格,然后单击表格工具 > 设计 > 属性 > 表格名称:______ 并输入国家/地区。

第 2 步

选择要对其进行数据验证的列。请注意哪个单元格处于活动状态(您可以写入的选择内的单元格)。在示例中,它是单元格 B2。

第 3 步

在数据验证下,选择列表并在此等式中输入:

=INDIRECT("Countries[" & A2 & "]")

如果处于活动状态的行是第 3 行,请输入以下内容:

=INDIRECT("Countries[" & A3 & "]")

这实际上对我有用。试试看!

【讨论】:

  • 嗨@elliot svensson,谢谢!这实际上非常有帮助,但我无法完成您提到的第一步,因为每个国家/地区的列表都是 1)动态且一直在更新 2)我首先必须检查名称是否有效
  • 我会重写的。您仍然可以这样做,但现在每个下拉列表的最后一项之后都会有空格(最长的下拉列表除外)。
猜你喜欢
  • 2012-11-13
  • 2017-10-08
  • 2016-08-19
  • 2015-09-09
  • 2020-04-13
相关资源
最近更新 更多