Board logo

標題: [發問] 多重條條件查詢 [打印本頁]

作者: aer    時間: 2013-11-28 20:28     標題: 多重條條件查詢

請教各位前輩們
需求:於D6、E6、F6,分別輸入年度、貨別、貨號後,可自動在H6 ~ K6顯示所對應的貨架位置的公式要如何寫?
[attach]16895[/attach]
[attach]16896[/attach]
作者: ML089    時間: 2013-11-28 21:26

回復 1# aer

你不是已經寫好了嗎?
作者: aer    時間: 2013-11-29 08:17

回復  aer

你不是已經寫好了嗎?
ML089 發表於 2013-11-28 21:26


是有寫了,可是只有97年度可以查詢,如改變其他條件時,不會改變查詢結果。煩請幫忙,感謝!
作者: ML089    時間: 2013-11-29 09:27

  1. H6 =LOOKUP(,0/(($D6=號碼資料庫!$A$2:$A$1999)*($E6=號碼資料庫!$B$2:$B$1999)*($F6>=號碼資料庫!$C$2:$C$1999)*($F6<=號碼資料庫!$D$2:$D$1999)),號碼資料庫!E$2:E$1999)
  2. 右拉
複製代碼

作者: aer    時間: 2013-11-29 11:04

回復 4# ML089

ML089 謝謝您!測試沒問題。再請教您 lookup 公式中的 lookup value 不填任何值是代表什麼意思呢?
作者: ML089    時間: 2013-11-29 12:03

回復 5# aer


>> 再請教您 lookup 公式中的 lookup value 不填任何值是代表什麼意思呢?

lookup value 不填任何值是代表 0
第二項參數內的公式經比對後為 0 或 錯誤值,lookup value 用0可以找到其中一項,若用1可以找到最後一項。一般情況只有一個 0 所以習慣不下參數。
作者: c_c_lai    時間: 2013-11-30 08:11

回復 6# ML089
這回可要稱呼你老師了。
  1. H6 =LOOKUP(,0/(($D6=號碼資料庫!$A$2:$A$1999)*($E6=號碼資料庫!$B$2:$B$1999)*($F6>=號碼資料庫!$C$2:$C$1999)*($F6<=號碼資料庫!$D$2:$D$1999)),號碼資料庫!E$2:E$1999)
  2. 右拉
複製代碼
請老師指導,$D6=號碼資料庫!$A$2:$A$1999)*($E6=號碼資料庫!$B$2:$B$1999)
為何彼此要用乘 (*) 來串連,然後又用零 (0) 來被除?
LOOKUP(, 0  內的 ",0" 這又是指的甚麼?  Help 中甚麼也查不到,蠻好奇的。
P.S.  不好意思,碰到公式我真的不行 (道行太淺了)。^0^
作者: ML089    時間: 2013-11-30 10:01

回復 7# c_c_lai

>> $D6=號碼資料庫!$A$2:$A$1999)*($E6=號碼資料庫!$B$2:$B$1999)
>> 為何彼此要用乘 (*) 來串連,然後又用零 (0) 來被除?
>> LOOKUP(, 0  內的 ",0" 這又是指的甚麼?

c_c_lai大 太客氣了,大家相互學習互通有無

H6 =LOOKUP(,0/(($D6=號碼資料庫!$A$2:$A$1999)*($E6=號碼資料庫!$B$2:$B$1999)*($F6>=號碼資料庫!$C$2:$C$1999)*($F6<=號碼資料庫!$D$2:$D$1999)),號碼資料庫!E$2:E$1999)

上式中紅色字為判斷式,整個式子構架如下
H6 =LOOKUP(,0/(判斷式陣列),號碼資料庫!E$2:E$1999)
H6 =LOOKUP(,0/(0;1;0;1;0;...;0),號碼資料庫!E$2:E$1999)
0/{0;1}得情況如下 0/1 =0 ; 0/0 = #DIV/0!,上式如下
H6 =LOOKUP(,0/(#DIV/0!;0;#DIV/0!;0;#DIV/0!;...;#DIV/0!),號碼資料庫!E$2:E$1999)
整個 lookup_vector 就會變成只有 0 與 錯誤值#DIV/0!所組成的陣列。
利用LOOKUP的函數特性 - 錯誤值 會忽略,所以查詢值用 >= 0 的數值都可以

如果找唯一值,lookup_vector 內只有一個 0 值,所以lookup_value用0就可以,0為內定值就不用輸入
如果不是唯一值,可以用 1( >0的任一值都可以)找最後一值,用 0 會找到第一組0的最後一個。
作者: c_c_lai    時間: 2013-11-30 11:06

回復 8# ML089
謝謝你詳盡地解說,感覺上比使用 VBA 還抽象,
這可能是我從未使用過 LookUp 的原因吧!
作者: adam2010    時間: 2013-12-25 21:31

路過撿到寶~請教一下ML089大大
這函數的意思是不是利用陣列的四個條件當作搜尋條件,
用"0/"來確保4個條件均成立,來找到貨架位置
而您提到如果不是唯一值,可以用 1,請問是指
LOOKUP(1,0/~,還是LOOKUP(,1/~
悟性不足,請多指教,謝謝!




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