2013-02-13 90 views
0

我想根据几个下拉菜单的选择,在Excel中输出多个选项之一。Excel:基于多个下拉菜单中的选择输出

例如,从基于人的年龄,性别和大小的多个选项中选择特定的衬衫设计,其中这三个变量可以从三个下拉菜单中选择,假设我有一个矩阵列如下相应的选项:

Options Matrix

是否有在Excel中的任何功能我可以使用来实现这一目标?或者我将不得不使用Visual Basic?

谢谢!

+1

当人从年龄下降时,有15个选项(从0到14)还是只有3个选项(0-4,5-9和10-14)?如果他们指定一个年龄段,则可以按原样使用矩阵并进行复杂的查找,但是如果他们指定了确切的年龄,则需要修改矩阵以在该列表的顶部添加一对行,以指定最小值以及在进行复杂查找之前存在于每个年龄段的最大年龄段,以便您不需要将解析字符串的复杂性添加到查找公式中。 – Alain 2013-02-13 02:12:16

回答

1

无需VBA在这里,你需要的是一些辅助的逻辑和和INDEX/MATCH公式:

  1. 的选项必须是唯一的,只有每行每选项组中的一个元素。在您的例子就意味着你需要分割选项5,6和9,因为他们各自有多个团队 - 看到黄线:
    enter image description here

  2. 您需要进行编码以某种方式,例如你的选择0-4 = 4,5-9 = 9,10-14 = 14,Male = M等。然后,你可以将每个选项翻译成一个唯一的3字母文本,例如,选项1将是4ML。在下面的示例中,使用以下公式构造单元格J3中的ID:

    =INDEX($B$1:$D$1,MATCH("x",B3:D3))&INDEX($E$1:$F$1,MATCH("x",E3:F3))&INDEX($G$1:$I$1,MATCH("x",G3:I3))
    enter image description here

  3. 您还需要将选择从下拉列表中翻译到代码中。为黄色单元格的公式是:
     
    =INDEX($B$1:$D$1,MATCH(M1,$B$2:$D$2,0)) 
    &INDEX($E$1:$F$1,MATCH(M2,$E$2:$F$2,0)) 
    &INDEX($G$1:$I$1,MATCH(M3,$G$2:$I$2,0)) 
    
    enter image description here
  4. 现在你只需要使用下面的公式来翻译代码到选项:
 
=IFERROR(INDEX($A$3:$A$16,MATCH(M4,$J$3:$J$16,0)),"No option for this selection!") 

注意,这会显示在情况下,小文选定的选项不可用。

为了更好的理解,你可以找到example file here

+0

+1为详尽的例子和努力! – 2013-02-13 09:45:31

相关问题