2015-11-04 97 views
0

我想建立的地方有一個第一和第二的偏好如列人表:多重下拉列表,避免選擇一個項目兩次

 
Name  Favourite Fruit   Second Favourite Fruit 
Person 1 Apple     Banana 
Person 2 Kiwi Fruit    Pear

我所試圖做的是防止偏好被選擇兩次,例如,停止用戶選擇人1的最愛作爲apple以及他們的第二最喜歡作爲apple

我正在使用數據驗證指的是一個命名範圍。

是否可以使用公式而不是使用Visual Basic做到這一點?

實際上,這個列表有22個項目,所以根據選擇什麼樣的喜好設置多個列表將是相當困難的。

+0

沒有VBA您需要爲每個人創建一個完整列表...沒有解決方法...要正確:每個人的2個列表(在「second」中選擇「apple」也應禁用它在「第一喜歡」) –

回答

0

這是最好的,我可以想出沒有VBA,你會有空白點,其中選項曾經在下拉列表中。

 [A] [B]                        [J]  [K] 
1 Master DropdownList                      Choose A Choose B 
2 A  =IF(IFERROR(VLOOKUP(A2,$J$2:$J$9,1,FALSE),IFERROR(VLOOKUP(A2,$K$2:$K$9,1,FALSE),""))<>"","",A2) 
3 B  =IF(IFERROR(VLOOKUP(A3,$J$2:$J$9,1,FALSE),IFERROR(VLOOKUP(A3,$K$2:$K$9,1,FALSE),""))<>"","",A3) 
4 C  =IF(IFERROR(VLOOKUP(A4,$J$2:$J$9,1,FALSE),IFERROR(VLOOKUP(A4,$K$2:$K$9,1,FALSE),""))<>"","",A4) 
5 D  =IF(IFERROR(VLOOKUP(A5,$J$2:$J$9,1,FALSE),IFERROR(VLOOKUP(A5,$K$2:$K$9,1,FALSE),""))<>"","",A5) 

注:數據驗證列的J和K在這個例子中是$ B2:$ B5

注2:VLOOKUP ONL着眼於J2:J9和K2:K9,你需要擴大這是因爲你認爲合適,但是你可以拖動公式,它應該自動填充。

注意3:當您在下拉列表中選擇列J或列K中的選項時。這些選項會動態變爲空白或空字符串。

+0

你仍然必須爲每個人做...在'J2'中選擇'A'在'K3'中禁用它 –

0

好的,雖然有幾種方法可以解決這個問題,但對於每個條目甚至沒有VBA都沒有2個列表是不可能的。 (假設第二個下拉列表中的選項在第一個下拉列表中也禁用了它)

但是,存在一種「半途而廢」的解決方法。
工作表函數Cell(不是VBA函數)在目標中沒有設置「範圍」時會有奇怪的行爲。

=Cell("address") 

將顯示「選擇了」小區(計算片材僅當)
明知和按壓F9$G$13被選擇的地址,它也將顯示它。

然而,現在來的下行:(
對於這種問題不會有所幫助,因爲真的刷新僅在每個計算和選擇不同的細胞不會觸發它。當使用VBA不是「alowed 「請求者,它僅留下‘每個條目的兩個列表’方法

我只是在這裏分享的WB(寫這裏所有的代碼可能是很多):d

That's the Workbook

表1需要VBA(計算表)
表2不包含:P

相關問題