返回列表 上一主題 發帖

[發問] 如何利用Vlookup查詢符合資料的前一個儲存格

[發問] 如何利用Vlookup查詢符合資料的前一個儲存格

本帖最後由 adam2010 於 2015-3-7 10:57 編輯

請教各位先進,想要從流程站點
查詢各料號共通站點#2950的(來源)前1~2站,還有查詢有無某一站(xe:有無1200站)
20150307.rar (6.87 KB)
請問要如何設定B2~D4的公式,謝謝~
Adam

回復 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")

向下複製
請參考!

TOP

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")

TOP

原來我整個方向錯了,感謝兩位出手相助,兩位提供的函數均符合需求,謝謝!
Adam

TOP

回復 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")

TOP

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")

公式向下複製

TOP

回復 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)的用意
Adam

TOP

回復 2# aer
感謝aer大的協助
可能是我描述讓您誤解,D2並不是針對前2站是否為1200站去判定
而是要看該料號是否整個製程站點有無包含到1200站
不過有其他大大已提供適用之公式,還是謝謝aer大的相助~
Adam

TOP

回復 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)
Adam

TOP

lookup_value用2的意思是...
lookup_vector開頭用1/的意思是...之前有看過0/的


你也可以使用 :

=LOOKUP(1,0/(……
=LOOKUP(2,1/(……
=LOOKUP(3,1/(……
=LOOKUP(4,1/(……
=LOOKUP(5,1/(……
………………

TOP

        靜思自在 : 【生命在呼吸間】佛陀說:「生命在呼吸間。」人無法管住自己的生命,更無法擋住死期,讓自己永住人間。既然生命去來這麼無常,我們更應該好好地愛惜它、利用它、充實它,讓這無常、寶貴的生命,散發它真善美的光輝,映照出生命真正的價值。
返回列表 上一主題