根据另一列下拉一列的值

根据另一列下拉一列的值

我有如下数据:

Category    ProductName    ABunchOfOtherFields....
--------------------------------------------------
Drink       Soda
Drink       Milk
Drink       Water
Fruit       Apple
Fruit       Orange
Fruit       Banana

我想制作两个下拉菜单,一个用于饮料,一个用于水果。到目前为止,我一直在使用数据验证工具,但我不知道如何根据另一列过滤一列的值。

编辑:

该数据中有更多列,并且该数据所在的工作表是从数据库连接填充的,即我无法在此处更改数据,而且我不知道每个类别有多少行,因此手动选择它们是不可能的。

我也不想要层叠下拉菜单。在另一张表上,我预先选择了类别,我想生成一组包含这些类别的产品。

Beverage: [Dropdown of all drinks] [Fields populated from the selected drink]
Snack:    [Dropdown of all fruits] [Fields populated from the selected fruit]
etc...

类别的名称将与每个选择的行标题的名称不同,这也是我无法控制的。所以我正在寻找的正是如何使用需要查看类别字段的数据表中的筛选列表来生成每个下拉列表。

答案1

如果您的意思是只想获取AppleOrange并且Banana当您在第一个下拉列表中选择时Fruit,那么我认为最简单的解决方案如下。请注意,第一个下拉列表应该已经创建。假设它在单元格 C1 中:

  1. 为每个类别创建一个命名范围。要创建命名范围,有两种快速方法:

    • 转到“公式”>“定义名称”,选择一个名称,然后选择范围。在您的示例中,您将选择SodaMilkWater并将范围命名为DrinkFruit对下一个重复上述操作。

    • 选择第一个范围(Soda,,),然后在名称框(公式栏右侧的框)中键入命名范围的名称,对于此实例,Milk对其他实例重复此操作。WaterDrink

  2. 在您想要放置第二个下拉菜单的单元格中,使用数据验证并选择“列表”,然后在“来源”中使用公式:

    =INDIRECT(C1)
    

    这将选择适当的命名范围并仅获取与相关类别相对应的产品,当然,如果范围的命名正确的话。

相关内容