Board logo

標題: [發問] 請問vlookup函數可疊加使用?或是與其它函數要如何使用? [打印本頁]

作者: 爆肝達人    時間: 2023-8-24 20:25     標題: 請問vlookup函數可疊加使用?或是與其它函數要如何使用?

使用情境A1:A100有以下規則字串,因字串還得先處理裡面的空白字元及雙引號,所以我想要把VLOOKUP跟CLEAN函數加在一起用
以下是規則用
abc_aac
ajdkoduoi_aaaaaac
ac_aaabe2
ae_aba_aaccc
ae_sss_aba_aaccc
另一個情境是依上列字串先分割,"_"後的字元再去vlookup,有個問題是如有兩個不同位置"_",是否vlookup能判斷?

感謝大家
作者: 爆肝達人    時間: 2023-8-25 09:18

情境示意圖:[attach]36779[/attach]

測試範例檔:[attach]36780[/attach]


上述問題已有檔案補充~~
作者: 爆肝達人    時間: 2023-8-25 09:20

還有個問題vlookup我把搜索範圍改為table-arry時會找不到,改回實際的欄位值可以找到

不同工作表使用table-arry也有上述狀況
作者: aer    時間: 2023-9-4 11:18

回復 2# 爆肝達人

請問此附圖結果是您要的嗎?[attach]36786[/attach]
作者: 爆肝達人    時間: 2023-11-23 10:28

回復  爆肝達人

請問此附圖結果是您要的嗎?
aer 發表於 2023-9-4 11:18



   
不是,圖上I64欄位內容有CHP-,這個"-"需要換成_,我後來作法改成在先尋找取代後再用vlookup,或是二次篩選

二次篩選的意思是第一次處理完字元中有"-"處理完在第二次處理
作者: Andy2483    時間: 2023-11-24 11:15

本帖最後由 Andy2483 於 2023-11-24 18:31 編輯

回復 2# 爆肝達人


    謝謝前輩發表此主題與範例
後學藉此帖學習到很多知識,學習方案如下,請前輩參考

執行結果:
[attach]37068[/attach]


Option Explicit
Sub TEST()
Dim Brr, Z, i&, j%, c%, K, T$, T1$, T2$, T3$
Dim xR As Range, Ra As Range, Sh As Worksheet, xBook As Workbook
Set Z = CreateObject("Scripting.Dictionary")
Brr = Range([mapping!B2], [mapping!A65536].End(3))
For i = 1 To UBound(Brr): Z(Brr(i, 1)) = Brr(i, 2): Next
Brr = Range([source!B3], [source!A65536].End(3))
For i = 1 To UBound(Brr)
   T = Trim(Replace(Replace(Replace(Replace(Brr(i, 1), Chr(10), ""), Chr(9), ""), Chr(7), ""), Chr(13), ""))
   If T = "" Or (InStr(T, "_") + InStr(T, "-")) = 0 Then Brr(i, 1) = "": GoTo i01
   If InStr(T & "_", "_") > InStr(T & "-", "-") Then
      T = Left(T, InStr(T, "-") - 1) & "_" & Mid(T, InStr(T, "-") + 1)
   End If
   T1 = Left(T, InStr(T, "_"))
   T2 = Mid(T, InStr(T, "_") + 1)
   For Each K In Z.Keys:  T3 = IIf(InStr(T, K), T3 & "/" & Z(K), T3): Next
   Brr(i, 1) = T1 & T2 & ";" & Val(Brr(i, 2)) & ":" & Mid(T3, 2)
   T3 = ""
i01: Next
[C3].Resize(UBound(Brr)) = Brr
End Sub
作者: 准提部林    時間: 2023-11-25 11:19

mapping資料太少, 先試//
C3//公式
=SUBSTITUTE(SUBSTITUTE(CLEAN(A3&";"&B3),CHAR(10),)," ",)&":"&IFERROR(LOOKUP(1,0/(FIND(mapping!A$1:A$4,A3)>1),mapping!B:B),"")




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