標題:
[發問]
如何利用Vlookup查詢符合資料的前一個儲存格
[打印本頁]
作者:
adam2010
時間:
2015-3-7 10:55
標題:
如何利用Vlookup查詢符合資料的前一個儲存格
本帖最後由 adam2010 於 2015-3-7 10:57 編輯
請教各位先進,想要從流程站點[attach]20394[/attach]
查詢各料號共通站點#2950的(來源)前1~2站,還有查詢有無某一站(xe:有無1200站)[attach]20395[/attach]
[attach]20396[/attach]
請問要如何設定B2~D4的公式,謝謝~
作者:
aer
時間:
2015-3-7 19:57
回復
1#
adam2010
B2與C2請輸入陣列公式(同時按下Ctrl+Shift+Enter三個鍵輸入公式)
B2=INDEX(流程站點!$A$1:$C$16,MATCH(1,(流程站點!$A$1:$A$16=分析!A2)*(流程站點!$C$1:$C$16=2950),0)-1,3)
C2=INDEX(流程站點!$A$1:$C$16,MATCH(1,(流程站點!$A$1:$A$16=分析!A2)*(流程站點!$C$1:$C$16=2950),0)-2,3)
D2=IF(C2=1200,"Y","N")
向下複製
請參考!
作者:
JBY
時間:
2015-3-7 20:11
1] B2, "2950前1站" 的公式, 向下複製 :
=INDEX(流程站點!$C$2:$C$16,MATCH(1,INDEX((流程站點!$A$1:$A$16=分析!$A2)*(流程站點!$C$2:$C$16=2950),),)-1)
2] C2, "2950前2站" 的公式, 向下複製 :
=INDEX(流程站點!$C$2:$C$16,MATCH(1,INDEX((流程站點!$A$1:$A$16=分析!$A2)*(流程站點!$C$2:$C$16=2950),),)-2)
3] D2, "有無1200站" 的公式, 向下複製 :
=IF(ISNUMBER(MATCH(1,INDEX((流程站點!$A$1:$A$16=分析!$A2)*(流程站點!$C$2:$C$16=1200),),)),"Y","N")
作者:
adam2010
時間:
2015-3-7 20:29
原來我整個方向錯了,感謝兩位出手相助,兩位提供的函數均符合需求,謝謝!
作者:
samwang
時間:
2015-3-7 21:23
回復
1#
adam2010
B2=INDEX(流程站點!$C:$C,SMALL(IF((流程站點!$A$2:$A$16=$A2)*(流程站點!$C$2:$C$16=2950),ROW($G$2:$G$16),""),1)-COLUMN(A$1),)
陣列公式往右下拉
D2=IF(SUMPRODUCT((流程站點!$A$2:$A$16=$A2)*(流程站點!$C$2:$C$16=1200)),"Y","N")
作者:
JBY
時間:
2015-3-7 23:12
B2 : =LOOKUP(2,1/((流程站點!$A$2:$A$16=分析!$A2)*(流程站點!$C$2:$C$16=2950)),流程站點!$C$1:$C$15)
C2 : =LOOKUP(2,1/((流程站點!$A$3:$A$16=分析!$A2)*(流程站點!$C$3:$C$16=2950)),流程站點!$C$1:$C$15)
D2 : =IF(ISNA(LOOKUP(2,1/((流程站點!$A$1:$A$16=分析!$A2)*(流程站點!$C$1:$C$16=1200)))),"N","Y")
公式向下複製
作者:
adam2010
時間:
2015-3-8 11:17
回復
5#
samwang
感謝samwang大提供的公式OK
但是不明白 B2=INDEX(流程站點!$C:$C,SMALL(IF((流程站點!$A$2:$A$16=$A2)*(流程站點!$C$2:$C$16=2950),
ROW($G$2:$G$16)
,""),1)-COLUMN(A$1),)
中使用SMALL & 取 ROW($G$2:$G$16)的用意
作者:
adam2010
時間:
2015-3-8 11:21
回復
2#
aer
感謝aer大的協助
可能是我描述讓您誤解,D2並不是針對前2站是否為1200站去判定
而是要看該料號是否整個製程站點有無包含到1200站
不過有其他大大已提供適用之公式,還是謝謝aer大的相助~
作者:
adam2010
時間:
2015-3-8 12:06
回復
6#
JBY
感謝JBY大再次提供解決的方案~恕在下才疏學淺,看不太懂
B2 : =LOOKUP(2,1/((流程站點!$A$2:$A$16=分析!$A2)*(流程站點!$C$2:$C$16=2950)),流程站點!$C$1:$C$15)
C2 : =LOOKUP(2,1/((流程站點!$A$3:$A$16=分析!$A2)*(流程站點!$C$3:$C$16=2950)),流程站點!$C$1:$C$15)
請問一些很粗淺的問題~
lookup_value用2的意思是...
lookup_vector開頭用1/的意思是...之前有看過0/的
B2跟C2的差異在於lookup_vector範圍下移一列,所以資料量大時是不是就不能用整欄來當範圍了
而您之前提供的=INDEX(
流程站點!$C$2:$C$16
,MATCH(1,INDEX((流程站點!$A$1:$A$16=分析!$A2)*(流程站點!$C$2:$C$16=2950),),)-1)中
資料量大時可以用整欄來當搜尋範圍=INDEX(
流程站點!$C:$C
,MATCH(1,INDEX((流程站點!$A:$A=分析!$A2)*(流程站點!$C:$C=2950),),)-1)
作者:
JBY
時間:
2015-3-8 12:52
lookup_value用2的意思是...
lookup_vector開頭用1/的意思是...之前有看過0/的
你也可以使用 :
=LOOKUP(1,0/(……
=LOOKUP(2,1/(……
=LOOKUP(3,1/(……
=LOOKUP(4,1/(……
=LOOKUP(5,1/(……
………………
作者:
xmi
時間:
2015-3-20 20:45
回復
1#
adam2010
請問是否放於不同工作表(一個是流程站點, 另一個是工作表2)? 因我想試看但沒有權限download文件...
作者:
adam2010
時間:
2015-3-24 20:43
回復
11#
xmi
分兩個工作表~
[attach]20501[/attach]
[attach]20502[/attach]
作者:
xmi
時間:
2015-3-25 19:40
回復
12#
adam2010
謝謝你的回答, 我成功了, :D
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)