Board logo

標題: [發問]如何將範圍內符合條件的字串合併 [打印本頁]

作者: chthonicfreddy    時間: 2016-11-29 11:45     標題: [發問]如何將範圍內符合條件的字串合併

本帖最後由 chthonicfreddy 於 2016-11-29 11:47 編輯

我在網路上參考了以下範例
類似vlookup功能,希望能修改將範圍內符合條件儲存格內的字串合併為一個字串
感謝各位大大的指導   
[attach]25964[/attach]
Function WLOOKUP(X As Variant, M As Range, A As Byte, B As Integer)
'X 條件
'M 要查詢的單列範圍
'A 返回第n個符合條件的結果(255)                                
'B 返回結果的列索引,可以是0或負數
'  用於數據查詢的單列範圍M所在列的值為1,代表第1列
'  右側第一列為2,3,4.....;左側第一列為0,-1,-2.....
    Dim i As Integer, mr As Range, y As Integer
    i = Application.WorksheetFunction.CountIf(M, X)
    'Set M =Intersect(M.Parent.Usedrange,M)
    For Each mr In M
        If mr.Value = X Then
            y = y + 1
            If y = A Then
                WLOOKUP = mr.Offset(0, B - 1).Value
                Exit Function
            End If
        End If
    Next mr
    WLOOKUP = ""
End Function
作者: 准提部林    時間: 2016-11-29 12:40

Function WLOOKUP(X, xA As Range, xB As Range, SP$) As String
Dim i&, T$
For i = 1 To xA.Rows.Count
  If xA(i) = X Then T = Trim(T & " " & xB(i))
Next i
WLOOKUP = Replace(T, " ", SP)
End Function

公式:
=wlookup("A",C$2:C$11,A$2:A$11," ")
=wlookup(比對值,比對範圍,取值範圍,分隔符號)
 
[attach]25965[/attach]
 
 
作者: chthonicfreddy    時間: 2016-11-29 13:00

回復 2# 准提部林


    感謝大大的回覆,運行無誤!!
新手入門,想再請教您簡單的問題
For i = 1 To xA.Rows.Count   
  If xA(i) = X Then T = Trim(T & " " & xB(i))

之前在網路搜尋資料的時候有看到
Function MyConcat(Arr As Variant) As String  
Dim A As Variant
For Each A In Arr
MyConcat = MyConcat & A
Next

MyConcat = MyConcat & A  與大大的 T = Trim(T & " " & xB(i))  看起來很類似
也有嘗試從這個方向去找答案,只是才疏學淺,還是搞不太清楚上面這段的使用
作者: hcm19522    時間: 2016-11-29 13:05

http://blog.xuite.net/hcm19522/twblog/472591392




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