返回列表 上一主題 發帖

[發問] 請問vlookup函數可疊加使用?或是與其它函數要如何使用?

[發問] 請問vlookup函數可疊加使用?或是與其它函數要如何使用?

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

感謝大家

情境示意圖:

測試範例檔: test.zip (13.29 KB)


上述問題已有檔案補充~~

TOP

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

不同工作表使用table-arry也有上述狀況

TOP

回復 2# 爆肝達人

請問此附圖結果是您要的嗎?

TOP

回復  爆肝達人

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



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

二次篩選的意思是第一次處理完字元中有"-"處理完在第二次處理

TOP

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

回復 2# 爆肝達人


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

執行結果:



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
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

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

TOP

        靜思自在 : 不怕事多,只怕多事。
返回列表 上一主題