返回列表 上一主題 發帖

儲存格內遇頓號如何比對後帶出資料及作樞紐分析

1)代號在一格內最多2個?
2)代號固定3個字元?
3)代號中〔頓號〕後面有一個不可見字元,是正確的? 每筆都是?

D2:先試這個
=IFERROR(VLOOKUP(LEFT(C2,3),G:H,2,),"")&IFERROR("、"&VLOOKUP(MID(C2,6,3),G:H,2,),"")

TOP

回復 4# leiru

代號個數不固定, 沒有最新版的文字連接函數, 估計要用VBA!
G/H欄範例資料太少, 可能有判斷不到的地方,
那不可見字元, 似有還無, 是個頭疼問題~~

等些天, 若沒有人提出公式解, 再轉到程式區吧~~

TOP

回復 6# leiru


Sub 重整()
Dim Arr, Brr, A, B, xD, i&, j%, N&, T$
[I2:L6000].Clear
Set xD = CreateObject("Scripting.Dictionary")
Arr = Range([G2], [F65536].End(xlUp))
For i = 1 To UBound(Arr)
    xD(Arr(i, 1) & "") = Arr(i, 2)
Next i
Arr = Range([C2], [A65536].End(xlUp))
ReDim Brr(1 To 20000, 1 To 4)
For i = 1 To UBound(Arr)
    A = Split(Replace(Arr(i, 2), ChrW(160), ""), "、")
    B = Split(Replace(Arr(i, 3), ChrW(160), ""), "、")
    If UBound(A) <> UBound(B) Then MsgBox "第 " & i + 1 & " 行數據有問題!! ": Exit Sub
    For j = 0 To UBound(A)
        N = N + 1:  T = T & "、" & xD(B(j) & "")
        Brr(N, 1) = Arr(i, 1):   Brr(N, 2) = A(j)
        Brr(N, 3) = B(j):   Brr(N, 4) = xD(B(j) & "")
    Next j
    Arr(i, 1) = Mid(T, 2): T = ""
Next i
With [I2].Resize(N, 4)
     .Columns(2).NumberFormatLocal = "#,##0 ;-#,##0 "
     .Columns(3).HorizontalAlignment = xlCenter
     .Columns(4).NumberFormatLocal = "@"
     .Borders.LineStyle = 1:  .Font.Size = 10
     .Value = Brr
End With
[D2].Resize(UBound(Arr)) = Arr '填入D欄對應值
End Sub


Xl0000397.rar (30.75 KB)

TOP

        靜思自在 : 【為善競爭】人生要為善競爭,分秒必爭。
返回列表 上一主題