Board logo

標題: [發問] EXCEL 判斷多條件搜尋 [打印本頁]

作者: baiecesi    時間: 2012-8-16 00:09     標題: EXCEL 判斷多條件搜尋

請問各位大大,小弟想做一個下拉式選單
但是條件判別有三個項目
輸入a,b,c數值..a由A項目判斷,b由B項目判斷,c由C項目判斷,

--------|A項目範圍-------|B項目範圍-------|C項目範圍---------|同時滿足A.B.C.
條件1 : |50-900----------|50-400----------| 0-75 ------------|顯示"1"
條件2 : |100-1500--------|100-450---------| 0-150------------|顯示"2"
條件3 : |50-3500---------|300-1100--------| 0-250------------|顯示"3"

沒有同時滿足ABC則顯示"某一數值超出範圍"

我想做一下拉式選單
當a,b,c皆落在範圍內時顯示可用之條件(可能有一條兩條或三條),並於另一儲存格顯示選取後該結果"1"或"2"或"3".
假設我a=200,b=350,c=60好了.則儲存格可以下拉一條件會出現條件1,2,3可供選擇
假設我a=200,b=420,c=60,則儲存格依條件下拉只有條件2,3可供選擇
假設我a=1600,b=420,c=60,則儲存格依條件下拉只有條件3可供選擇
大概想法簡單想是這樣..然後我選擇條件後另一個儲存格我就能用VLOOKUP直接對應顯示"1"或"2"或"3"了

感覺有點複雜但我在想是否能用邏輯步驟:
第一步判斷a值是否落在A中,是的話進入第二步,否則顯示"某一數值超出範圍"
第二步判斷b是否落在B中,是的話進入第三步,否則顯示"某一數值超出範圍"
第三步判斷c是否落在C中,若皆是則顯是對應之答案,否則顯示"某一數值超出範圍"
有辦法於下拉式選單資料驗證中寫出這樣的邏輯嗎?
不行的話以VBA下去寫的話該用什麼函數或語法去做呢@@?
不知道需不需要用到陣列???這個我就真的完全沒輒了QQ
感謝板上大大解惑>"<
作者: ANGELA    時間: 2012-8-16 11:04

[attach]12139[/attach]
作者: baiecesi    時間: 2012-8-16 15:26

大大您好:
L1那邊函數不大理解他的意思..可否從SMALL那邊逐項解釋>"<給懵懂無知的小弟學習一下
然後我找不到大大是在那個儲存格中有輸入"某一數值超出範圍"的說?
作者: Hsieh    時間: 2012-8-17 15:09

回復 1# baiecesi

陣列公式
A3陣列公式
=MATCH(A$2,ROW($50:$900),0)
B3陣列公式
=MATCH(B$2,ROW($50:$400),0)       
C3陣列公式
=MATCH(C$2,ROW($1:$76)-1,0)
A4陣列公式
=MATCH(A$2,ROW($100:$1500),0)       
B4陣列公式
=MATCH(B$2,ROW($100:$450),0)       
C4陣列公式
=MATCH(C$2,ROW($1:$151)-1,0)
A5陣列公式
=MATCH(A$2,ROW($50:$3500),0)       
B5陣列公式
=MATCH(B$2,ROW($300:$1100),0)       
C5陣列公式
=MATCH(C$2,ROW($1:$251)-1,0)
D3公式=IF(SUMPRODUCT(ISNUMBER(A3:C3)*1)=3,ROW(A1),"")向下複製到D6
E1公式=IF(ROW(A1)>COUNT($D$3:$D$5),"",SMALL($D$3:$D$5,ROW(A1)))向下複製到E3
定義名稱x=OFFSET(工作表1!$E$1,,,COUNT(工作表1!$E$1:$E$3),)
G1驗證=x
[attach]12166[/attach]
作者: tmde987    時間: 2012-12-16 20:59

本帖最後由 Hsieh 於 2012-12-16 22:27 編輯

陣列公式
A3陣列公式
=MATCH(A$2,ROW($50:$900),0)
B3陣列公式
=MATCH(B$2,ROW($50:$400),0)        
C3陣列公式
=MATCH(C$2,ROW($1:$76)-1,0)
A4陣列公式
=MATCH(A$2,ROW($100:$1500),0)        
B4陣列公式
=MATCH(B$2,ROW($100:$450),0)




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)