Excel:根据列中的过滤值创建验证列表

Excel:根据列中的过滤值创建验证列表

我一直在尝试使用依赖下拉列表来实现这一点,但我还没有成功处理我的特定表格。本质上,我希望根据另一个表格中的“过滤”结果列表创建一个验证列表。

这些是结构化表格:

表格1(使用要“过滤”的静态值)

id      Items
2       ItemAA
2       ItemAAA
3       ItemZZ
5       ItemXY
5       ItemXYZ
2       ItemCC

表 2(带有验证列表下拉菜单)

idFromTable1  RelatedOptionFromFilteredDropdownList
2             ItemAA  (dropdown lists: ItemAA, ItemAAA, ItemCC)
5             ItemXY  (dropdown lists: ItemXY, ItemXYZ)
2             ItemCC  (dropdown lists: ItemAA, ItemAAA, ItemCC)
3             ItemZZ  (dropdown lists: ItemZZ)

编辑:使用公式,而不是 VBA

編輯2:ID 和物品都将以百或千为单位进行计数。

谢谢

答案1

创建命名列表

  1. 首先,整理一下表格1按 ID
  2. 创建一个用名称listlookup(或其他名称)命名的范围。
  3. 把这个公式放在listlookup

=OFFSET(INDIRECT(CELL("address", INDEX($B$2:$B$5, MATCH($C1, $A$2:$A$5, 0)))), 0, 0, COUNTIF($A$2:$A$5, $C1), 1)

 ID | Items   | lookup_value_here | dropdown_list_here
 1  | ItemXY
 1  | ItemXYZ
 2  | ItemZ
 2  | ItemZZ
  1. 创建下拉列表,并将列表引用至listlookup

解释

INDEX($B$2:$B$5, MATCH($C1, $A$2:$A$5, 0))找到第一个具有lookup_value

CELL( ... )返回引用单元格的字符串(例如:$B$21 lookup_value

INDIRECT( ... )将字符串引用转换为单元格引用

OFFSET( ... , 0, 0, ... , 1)返回查找的范围(例如:B2:B31 lookup_value

COUNTIF( ... )返回匹配的数据数量lookup_value


这很有趣,因为我以前也遇到过这个问题并且无法解决。

相关内容