Excel Dependent下拉列表anwsers

时间:2016-08-26 21:19:15

标签: excel excel-formula

我有多个相互依赖的下拉列表,根据您选择的答案,我希望确定其他列表。我将尝试解释下面的结构

**Position**      **Fruit**            **Location**    **Thing**       
 1                Banana                 Mexico        TV
 2                Apple                  New York      hat
 3                Orange                 Tokyo         pen
 4                grape                  Canada        bed
                                         London        box
                                         Home

因此,例如,如果您选择“香蕉”,则需要依赖。来自' Fruit'您只能从位置和事物列表中选择某些选项。

我想要完成的是这样的事情:

如果您选择' 1'从位置; position => ' 1'水果的唯一选择是香蕉,苹果。

Fruit => Banana, Apple. 
if position = 1( fruit = banana, apple)

但如果你选择' 2'从位置; position => ' 2'一切都可以从水果中获得。但是如果你选择' 2' 2然后香蕉,只有加拿大的地点'可以从另一个单元格获得。

If position:2 => fruit:banana => Location = Canada
If position: 2 => fruit:apple => Location can equal Mexico, New York, Tokyo

我在数据表中定义了名称,我遇到的一个问题是定义的名称不能以数字开头。对于一些答案,我绝对需要数字。

我开始编写foruma但语法和逻辑不正确。

=VLOOKUP($c4,if ($c4 = "<1",VLOOKUP($c4,MasterList,2,FALSE), IF ($C4= "2"($c4,MasterList,3,FALSE).
在这种情况下,c4将是最初的下拉问题。

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

使用index()的动态命名范围:index()函数可以工作。但是,数据需要以促进它的方式构建。例如,位置1的水果列表需要是:

   A           B
        Fruit
IndexKey  |  Value
   1      |  Banana
   1      |  Apple
  ...     |   ...

使用单元格c4作为输入,您可以创建命名范围Fruits:

=Index(Sheet2!$B:$B,Match(Sheet1!$C$4,Sheet2!$A:$A,0)):Index(Sheet2!$B:$B,Countif(Sheet2!$A:$A,Sheet1!$C$4)+Match(Sheet1!$C$4,Sheet2!$A:$A,0)-1)

其中Sheet2是数据,Sheet1是输入字段表。

然后,您可以为下一个验证列表的Fruits命名范围设置验证列表。每个命名范围都可以依赖于之前选择的选择。

重要的是保持indexkey列的排序,因为匹配的工作原理。