lọc số tài khoản khách hàng (3 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

nguyenngochaik6tin

Thành viên mới
Tham gia
3/5/11
Bài viết
4
Được thích
0
Chào mọi người em đang làm một bài tập về lọc số tài khoản của từng khách hàng ra từng cột khác nhau nhưng mà em làm mãi không ra. mọi người giúp em với. em cảm ơn
 

File đính kèm

File đính kèm

anh ơi em hỏi chữ dong trong hàm đấy anh đặt bằng cách nào thế
 
Chào mọi người em đang làm một bài tập về lọc số tài khoản của từng khách hàng ra từng cột khác nhau nhưng mà em làm mãi không ra. mọi người giúp em với. em cảm ơn


Ngồi rảnh làm cái này bằng VBA.
Bạn mở cửa sổ VBA, insert module rồi chép code này vào.
Rồi chỉ cần bấm lệnh cho nó chạy.

Mã:
Sub Xuan()
Dim sRng(), dRng(), Arr(), I As Long, J As Long, K As Long, Cot As Long
With Sheet1
    .Range(.[A1], .[A65000].End(xlUp)).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=.Range( _
        "F1"), Unique:=True
sRng = .Range(.[A2], .[A65000].End(xlUp)).Resize(, 2).Value
dRng = .Range(.[F2], .[F65000].End(xlUp)).Value
ReDim Arr(1 To UBound(dRng, 1), 1 To UBound(sRng, 1))
For I = 1 To UBound(dRng, 1)
    K = 0
    For J = 1 To UBound(sRng, 1)
        If sRng(J, 1) = dRng(I, 1) Then
            K = K + 1
            If Cot < K Then Cot = K
            Arr(I, K) = sRng(J, 2)
        End If
    Next J
Next I
 .[G2].Resize(I - 1, Cot).Value = Arr
End With
End Sub
 

File đính kèm

Ngồi rảnh làm cái này bằng VBA.
Bạn mở cửa sổ VBA, insert module rồi chép code này vào.
Rồi chỉ cần bấm lệnh cho nó chạy.

Mã:
Sub Xuan()
Dim sRng(), dRng(), Arr(), I As Long, J As Long, K As Long, Cot As Long
With Sheet1
    .Range(.[A1], .[A65000].End(xlUp)).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=.Range( _
        "F1"), Unique:=True
sRng = .Range(.[A2], .[A65000].End(xlUp)).Resize(, 2).Value
dRng = .Range(.[F2], .[F65000].End(xlUp)).Value
ReDim Arr(1 To UBound(dRng, 1), 1 To UBound(sRng, 1))
For I = 1 To UBound(dRng, 1)
    K = 0
    For J = 1 To UBound(sRng, 1)
        If sRng(J, 1) = dRng(I, 1) Then
            K = K + 1
            If Cot < K Then Cot = K
            Arr(I, K) = sRng(J, 2)
        End If
    Next J
Next I
 .[G2].Resize(I - 1, Cot).Value = Arr
End With
End Sub
Mấy ô G1:I1 là mình nhập thủ công, sao hông "quất" luôn ta?
 
Hoàn thiện bài này. Code chạy êm ru.


Mã:
Sub Xuan()
Dim sRng(), dRng(), Arr(), I As Long, J As Long, K As Long, Cot As Long
With Sheet1
    .Range(.[A1], .[A65000].End(xlUp)).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=.Range( _
        "F1"), Unique:=True
sRng = .Range(.[A2], .[A65000].End(xlUp)).Resize(, 2).Value
dRng = .Range(.[F2], .[F65000].End(xlUp)).Value
ReDim Arr(1 To UBound(dRng, 1) + 1, 1 To UBound(sRng, 1))
For I = 1 To UBound(dRng, 1)
    K = 0
    For J = 1 To UBound(sRng, 1)
        If sRng(J, 1) = dRng(I, 1) Then
            K = K + 1: Arr(1, K) = "TK" & K
            If Cot < K Then Cot = K
            Arr(I + 1, K) = sRng(J, 2)
        End If
    Next J
Next I
 .[G1].Resize(I, Cot).Value = Arr
End With
End Sub
 

File đính kèm

Web KT

Bài viết mới nhất

Back
Top Bottom