Board logo

標題: [發問] 請教如何使用 vlookup公式上下雙向查詢? [打印本頁]

作者: peter460191    時間: 2013-2-18 13:08     標題: 請教如何使用 vlookup公式上下雙向查詢?

請問各位達人如何使用 vlookup公式上下雙向查詢,
如下圖中及附檔內利用D3及D4兩個儲存格,雙向檢索A欄及B欄的資料,謝謝大家!

[attach]14180[/attach]
[attach]14181[/attach]
作者: Hsieh    時間: 2013-2-18 14:03

回復 1# peter460191

不可能利用2個儲存格做為互相查詢的輸入
應該是利用單一儲存格做為輸入(可任意輸入代碼或是公司名稱)
而D3:D4作為查詢結果

[attach]14182[/attach]
作者: peter460191    時間: 2013-2-18 14:57

回復 2# Hsieh

謝謝版主的指導,因為我看過論壇上有左右兩個可以互相查詢,我想把他改成上下,改了好久都改不過來,請問版主還有其他方法媽?
   

http://forum.twbts.com/viewthread.php?tid=4102&from=favorites
作者: Hsieh    時間: 2013-2-18 15:22

回復 3# peter460191

這是要用VBA來寫,一般公式是不可能達成的
工作表模組
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. Dim A As Range
  3. If Intersect(Target, [D3:D4]) Is Nothing Then Exit Sub
  4. Application.EnableEvents = False
  5. Set A = Columns("A:B").Find(Target, lookat:=xlWhole)
  6. If A Is Nothing Then MsgBox "輸入錯誤": [D3:D4] = "": GoTo 10
  7. [D3] = Cells(A.Row, 1).Value
  8. [D4] = Cells(A.Row, 2)
  9. 10
  10. Application.EnableEvents = True
  11. End Sub
複製代碼

作者: peter460191    時間: 2013-2-18 15:46

回復 4# Hsieh


    謝謝超級版主的指導,會仔細研究此巨集的寫法,謝謝您!
作者: peter460191    時間: 2015-12-29 15:47

[attach]23008[/attach][attach]23008[/attach][attach]23007[/attach]回復 4# Hsieh


   求救 Hsieh 超級版主,之前您幫忙解答所提供的VBA程式,我後續使用上發現無法判斷英文大小寫,我改了很久都無法成功,因此想再向您求救,不知您有沒有辦法解救一下,非常謝謝您~~
        
       *問題點 : 1-附件中D5儲存格向下查詢時,如遇尾數英文相同者,無法判別英文大小寫,皆會抓取第一個資料
                        2-附件中D6儲存格向上查詢時,則可以正常使用

[attach]23007[/attach][attach]23007[/attach][attach]23007[/attach]
作者: hcm19522    時間: 2015-12-29 16:43

=VLOOKUP(OFFSET(A$3,INT((ROW(A1)-1)/2),),A$3:B$9,MOD(ROW(A1)-1,2)+1,)
=OFFSET(A$3,INT((ROW(A1)-1)/2),MOD(ROW(A1)-1,2))
作者: peter460191    時間: 2015-12-30 12:57

回復 7# hcm19522

謝謝hcm19522 提供的公式,可否近一步教導如何使用?是直接將公式輸入在D5及D6的儲存格中嗎?謝謝您!
作者: yangsap    時間: 2015-12-30 15:05

謝謝提供                              
作者: hcm19522    時間: 2015-12-30 15:48

http://blog.xuite.net/hcm19522/twblog/369388101
作者: ML089    時間: 2016-1-3 07:12

回復 1# peter460191

D3 輸入 1101或台泥
D4 公式 =IF(ISNA(MATCH(D3,A:A,)),"",INDEX(B:B,MATCH(D3,A:A,))) & IF(ISNA(MATCH(D3,B:B,)),"",INDEX(A:A,MATCH(D3,B:B,)))




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