2013-02-13 125 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

相關問題