小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

單元格內(nèi)一對多查詢

 L羅樂 2018-04-03


一、圖1

二、圖2

三、函數(shù)解決

1、公式截圖

2、公式

=VLOOKUP(--TRIM(MID(SUBSTITUTE(A2,'.',REPT(' ',99)),1,99)),參數(shù)表!A:B,2,0)&','&VLOOKUP(--TRIM(MID(SUBSTITUTE(A2,'.',REPT(' ',99)),100,99)),參數(shù)表!A:B,2,0)&','&VLOOKUP(--TRIM(MID(SUBSTITUTE(A2,'.',REPT(' ',99)),199,99)),參數(shù)表!A:B,2,0)

3、公式解釋

  • --TRIM(MID(SUBSTITUTE(A2,'.',REPT(' ',99)),1,99))用拉大距離法把單元格每個數(shù)字接點號分隔出來作為vlookup函數(shù)的第1參數(shù)到參數(shù)表中查找,查找出來的3個結(jié)果然后用逗號把它們連接起來就可以了

  • 可以這位朋友又提出問題,如果數(shù)字中間分隔符是任意的字符如何實現(xiàn),且可能輸入的數(shù)字不只三個,又如何實現(xiàn)。那這里用函數(shù)實現(xiàn)就公式更長了,下面我用vba自定義函數(shù)實現(xiàn)

四、vba自定義函數(shù)實現(xiàn)

1、公式截圖

2、公式

=提(A9,參數(shù)表!$A$1:$B$20)

3、動畫演示


4、代碼

Option Explicit

Function 提(rg As Range, SumRg As Range)

    Dim arr1, arr2, arr3(), x, k, y, Reg, M, Mat

    Application.Volatile '讓函數(shù)刷新

    Set Reg = CreateObject('Vbscript.RegExp') '引用外部對象正則表達式

    With Reg

        .Global = True

        .Pattern = '\d ' '匹配任意長的數(shù)字

    End With

    Set Mat = Reg.Execute(rg) '把所有的符合規(guī)則的裝進mat

    arr1 = SumRg '把第2參數(shù)裝入數(shù)組,目的為了提速度

    For Each M In Mat循環(huán)符合規(guī)則的數(shù)字

        For y = 1 To UBound(arr1) '循環(huán)數(shù)組arr1

            If arr1(y, 1) = Val(M) Then '判斷是否和M相等于,由于M還是文本型的數(shù)字,通過val處理轉(zhuǎn)為數(shù)值型數(shù)字

                k = k 1 '計數(shù)

                ReDim Preserve arr3(1 To k) '重新定義arr2的空間,且保留原有值

                arr3(k) = arr1(y, 2) '把數(shù)組arr1的第2參裝進arr3

            End If

        Next y

    Next M

    提 = Join(arr3, ',') '把結(jié)果賦值給函數(shù)名

End Function

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多