返回列表 上一主題 發帖

[發問] 從儲存格左邊開始搜尋字串

回復 9# 准提部林


    准提部林版大您好,如果要再新增其他材質在G1:G20的話,函數會無法正確帶出或呈現空白
如附檔所示,我希望在G2下陣列公式(函數),參照搜尋關鍵字在 工作表:材質!D2:D20
我希望參照位置爾後可以再新增,所以位置拉到D20,希望版大能夠協助,謝謝.

材質搜尋函數.rar (25.64 KB)

TOP

回復 11# show780106


G2.陣列公式:
=INDEX(材質!$D:$D,RIGHT(SMALL(IF(1-ISERR(0/(FIND(材質!$D$1:$D$20,"|"&$D2)>1)),FIND(材質!$D$1:$D$20,$D2)*10^5+ROW($D$1:$D$20),10^9+4^8),COLUMN(A$1)),5))&""

參考附檔:
Xl0000191.rar (81.27 KB)

TOP

回復 11# show780106

Sub TEST()
Dim xArea As Range, Arr, Brr, N&, i&, TR, T, TT$, xClmn As Range, xR As Range
Application.ScreenUpdating = False
[D:D].Copy [G:G]
Set xArea = Range([G2], [G65536].End(xlUp))
Set xClmn = Range([材質!D2], [材質!D65536].End(xlUp))
For Each xR In xClmn
  If xR <> "" Then xArea.Replace xR, "_||" & xR & "_", Lookat:=xlPart
Next
 
Arr = xArea.Value
ReDim Brr(1 To UBound(Arr), 1 To xClmn.Count)
For i = 1 To UBound(Arr)
  TR = Split(Arr(i, 1), "_"):   N = 0:   TT = ""
  For Each T In TR
    If Left(T, 2) = "||" And InStr(TT, T) = 0 Then
     TT = TT & T:   N = N + 1:   Brr(i, N) = Mid(T, 3)
    End If
  Next
Next i
 
With [G2].Resize(UBound(Arr), xClmn.Count)
   .Value = Brr
   .Columns.AutoFit
End With
Beep
End Sub

參考附檔:
Xl0000191-v01.rar (28.58 KB)

TOP

本帖最後由 yen956 於 2015-11-25 19:59 編輯

還是准版大的公式利害!!
由左至右依序全取出:
  1. Private Sub CommandButton1_Click()
  2.     Dim I As Integer, J As Integer
  3.     Dim Col1 As Integer, Num As Integer
  4.     [B:H] = ""
  5.     For I = 1 To [A65536].End(xlUp).Row
  6.         For J = 1 To [J1].End(xlDown).Row
  7.             Num = InStr(Cells(I, 1), Cells(J, 10))
  8.             If Num > 0 Then
  9.                  Cells(J, 11) = Num
  10.             Else
  11.                  Cells(J, 11) = 10000
  12.             End If
  13.         Next
  14.         [J:K].Sort Key1:=Range("K1"), Order1:=xlAscending, Header:=xlNo
  15.         Col1 = 2
  16.         For J = 1 To [J1].End(xlDown).Row
  17.             If Cells(J, 11) < 9999 Then
  18.                 Cells(I, Col1) = Cells(J, 10)
  19.                 Col1 = Col1 + 1
  20.             End If
  21.         Next
  22.     Next
  23.     [K:K] = ""
  24. End Sub
複製代碼
test.gif
2015-11-25 19:56

TOP

        靜思自在 : 地上種了菜,就不易長草;心中有善,就不易生惡。
返回列表 上一主題