Board logo

標題: [發問] 請教資料抓取並且欄列轉換呈現 [打印本頁]

作者: qazwww2004    時間: 2015-6-10 16:51     標題: 請教資料抓取並且欄列轉換呈現

請問各位前輩 高人

要將已排序的兩欄資料(如附件[attach]21148[/attach])
name 有重複

Sheet1
name     phone
A            0911123456
A            0911123457
B            0911123458
B            0911123459
B            0911123460
C            0911123461
C            0911123462

在Sheet2中  變成name後面的phone在同一列中顯示 (比對資料抓取後 欄列轉換呈現出來)

Sheet2
name     phone
A           0911123456           0911123457
B           0911123458           0911123459           0911123460
C           0911123461           0911123462

小弟在150筆資料中 試了IF  index  match  COUNTIF...用了一整天都無法成功
土法煉鋼還比寫出來的函數語法快.........

請問各位前輩 高手
這樣的情況用什麼函數才適合?語法該怎麼寫呢?

附件[attach]21149[/attach]
感謝賜教
Orz
作者: qazwww2004    時間: 2015-6-11 00:07

請問有前輩能指點迷津嗎?
作者: qazwww2004    時間: 2015-6-11 01:07

原來是這樣,雖然沒人回答,但分享一下
http://isvincent.pixnet.net/blog/post/38734269
作者: hcm19522    時間: 2015-10-20 09:58

http://blog.xuite.net/hcm19522/twblog/346436199
作者: Andy2483    時間: 2023-6-17 13:19

謝謝論壇,謝謝各位前輩
後學藉此帖練習陣列與字典,學習方案如下,請各位前輩指教

執行結果:
[attach]36610[/attach]


Option Explicit
Sub TEST()
Dim Brr, Crr, V, Z, i&, R&, C%, Y&, X%, T$, T1$, T2$
Set Z = CreateObject("Scripting.Dictionary")
Brr = Range([Sheet1!B1], [Sheet1!A65536].End(3))
ReDim Crr(1 To UBound(Brr), 1 To 200)
For i = 2 To UBound(Brr)
   If i = 2 Then: Crr(1, 1) = Brr(1, 1) & " \ " & Brr(1, 2): Y = 1
   T1 = Brr(i, 1): T2 = Brr(i, 2): T = T1 & "|" & T2
   If Z(T) = 1 Then GoTo i01
   R = Z(T1): C = Z(T1 & "/c"): C = C + 1:  Z(T1 & "/c") = C
   If R = 0 Then Y = Y + 1: Crr(Y, 1) = T1: Z(T1) = Y: R = Y
   Crr(R, C + 1) = T2: Z(T) = 1
   If X < C Then X = C: Crr(1, C + 1) = C
i01: Next
Sheets("Sheet2").UsedRange.Clear
Sheets("Sheet2").[A1].Resize(Y, X + 1) = Crr
Set Z = Nothing: Erase Brr, Crr
End Sub




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