返回列表 上一主題 發帖

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

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

問題1:
請問儲存格內遇到頓號,如何比對出科目
C欄代號比對G欄,在D欄帶出H欄科目,但遇到C欄有頓號無法帶出,正確答案為E欄

問題2:
另外,如果D欄求出如E欄資料,如何利用A欄至D欄作樞紐分析,版面配置如下:
小如

不好意思,問題2樞紐分析部份不用解題,因為金額部份未拆出來
小如

TOP

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

D2:先試這個
=IFERROR(VLOOKUP(LEFT(C2,3),G:H,2,),"")&IFERROR("、"&VLOOKUP(MID(C2,6,3),G:H,2,),"")
EXCEL參考資料:
http://blog.xuite.net/smile1000mile/blog

TOP

回復 3# 准提部林


    謝謝回覆

1)代號在一格內最多2個?                                                                                      ANS:沒有限制幾個
2)代號固定3個字元?                                                                                              ANS:固定3個字元
3)代號中〔頓號〕後面有一個不可見字元,是正確的? 每筆都是?              ANS:請問您怎麼會想到判斷有不可見字元。。。我用ALT+160去尋找確實有
小如

TOP

回復 4# leiru

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

等些天, 若沒有人提出公式解, 再轉到程式區吧~~
EXCEL參考資料:
http://blog.xuite.net/smile1000mile/blog

TOP

回復 5# 准提部林


    謝謝
B欄,C欄,D欄都有2個字串,請問遇到B欄金額,C欄代號,D欄科目轉換成逐列顯示,例如:B4:D4轉換成B31:D32

儲存格內遇頓號如何比對後帶出資料.zip (9.59 KB)

小如

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)
EXCEL參考資料:
http://blog.xuite.net/smile1000mile/blog

TOP

        靜思自在 : 得理要饒人,理直要氣和。
返回列表 上一主題