2013-02-23 64 views
1

讓我再試一次,我一直在搜索網頁,似乎無法找到任何東西。我想要做的是在Excel中有一個基於另一個單元格的值的有條件的命名範圍列表。我在設置數據驗證並將所有IF語句放在源文本框中時遇到了字符限制問題。如果我只是提出兩個條件,它似乎工作正常,但這對我不起作用。這裏是我的示例數據,基於B列值,我想顯示它的有效子項。就像我提到我有20個左右的不同,可能是在B列在Excel中使用條件命名範圍

  B  C 
     1 ENG  dropdown of all engineering sub-categories 
     2 PRO  dropdown of all production sub-categories 
     3 PER  ... 
     4 PAY 
     5 ENG  dropdown of all engineering sub-categories 
     6 ENG  dropdown of all engineering sub-categories 

當我嘗試建立我的列C1的數據驗證列表可能值,我把下面的...

=IF($E$5="CAR", CA, 
IF($E$5="DCC", DCC, 
IF($E$5="ENG", ENG, 
IF$E$5="ENV", ENV, 
IF$E$5="FBI", BI, 
IF$E$5="FGL", GL, 
IF$E$5="FAP", AP, 
IF$E$5="FRE", AR, 
IF$E$5="FTX", Tax, 
IF$E$5="ORM", OAR, 
IF$E$5="PAY", PAY, 
IF$E$5="PIR", PER, 
IF$E$5="PRO", PRO, 
IF$E$5="PUR", PUR, 
IF$E$5="RSK", RM, 
IF$E$5="SLM", Sales, 
IF$E$5="WFS", WAR))))))))))))))))) 

我只能輸入我的IF條件的一半。我嘗試了VLOOKUP,但只允許將1個值放入列C中,並且我希望它成爲下拉列表。任何幫助都會受到很大的困擾。

回答

3

您可以通過合併VLOOKUPINDIRECT更短的公式中做到這一點:

你有沒有在B列潛在的名稱和其相應的範圍名稱列表中的某處兩列,例如列X & Y:

 
Col X Col Y 
CAR CA 
DCC DCC 
ENG ENG 
ENV ENV 
FBI BI 
... 

然後用下面的公式爲列表中的數據驗證源:

 
=INDIRECT(VLOOKUP($E$5,$X:$Y,2,0)) 

其實,用這種方法,您可以潛在甚至可以保存命名的努力和維護手動範圍名稱!相反,只需將名稱範圍的名稱替換爲實際地址 - 您可以自動推導出具有一點運氣和智能公式工程的實際地址。這取決於您的數據結構,但最有可能的功能ADDRESS,COUNTA,OFFSET,INDEXMATCH將有所幫助。

E.g.如果您的列表將存儲在另一個工作表中,並且第一行中的列表名稱和每個標題下面列出的元素,this example file將爲您提供示例公式。更進一步,它還會使用條件高亮來標記任何無效的條目,例如因爲該類型被選擇後改變:

enter image description here

+0

謝謝你,完美的作品。 – ryan 2013-02-25 01:26:51

+0

太棒了!你有沒有設法取代手動命名範圍? – 2013-02-25 09:10:29