Thêm tài khoản vào các cột khác nhau

Liên hệ QC

hanvan89

Thành viên mới
Tham gia
9/8/14
Bài viết
27
Được thích
2
Em nhờ anh chị giúp đỡ em ạ, em có 2 sheet, sheet 1 dò từ sheet 2, sheet 1 mỗi giá trị ở cột tên "TN" chỉ có 1 giá trị ở cột tên "TK". Em muốn thêm vài cột tên TK nữa dựa vào file dò sheet 2, sheet 2 có bao nhiêu tài khoản ứng với 1 giá trị, thì bên sheet 1 thể hiện tất cả các TK và tính tổng từng TK, nếu cột tính tổng 1 file dò =0, thì tính tổng cột file dò có giá trị. Em có gửi file đính kèm. Nhờ anh chị giúp đỡ em ạ. Em xin cảm ơn.
 

File đính kèm

Tiêu đề viết hoa không vi phạm nội quy.

Đăng bài 2 lần: vi phạm nội quy.



Đây là nội quy.

 
bạn nên xin mod xóa bài trước
 
Tiêu đề viết hoa không vi phạm nội quy.

Đăng bài 2 lần: vi phạm nội quy.



Đây là nội quy.

dạ nhờ anh chị xóa bài giúp em ạ. Em xin cảm ơn
 
dạ nhờ anh chị xóa bài giúp em ạ. Em xin cảm ơn
Lần sau đăng bài Bạn nên lưu ý nội quy diễn đàn. Bài vi phạm nội quy sẽ rất ít người tương tác.
Trong khi chờ người khác bạn dùng thử file này xem sao. Tôi cũng làm mò đoán ý thôi,hy vọng đúng. Dữ liệu hơn 50000 dòng, nhưng vèo cái là xong.
vẫn nhắc lại: không nên đặt tên Sh bằng tiếng Việt có dấu.
 

File đính kèm

Em nhờ anh chị giúp đỡ em ạ, em có 2 sheet, sheet 1 dò từ sheet 2, sheet 1 mỗi giá trị ở cột tên "TN" chỉ có 1 giá trị ở cột tên "TK". Em muốn thêm vài cột tên TK nữa dựa vào file dò sheet 2, sheet 2 có bao nhiêu tài khoản ứng với 1 giá trị, thì bên sheet 1 thể hiện tất cả các TK và tính tổng từng TK, nếu cột tính tổng 1 file dò =0, thì tính tổng cột file dò có giá trị. Em có gửi file đính kèm. Nhờ anh chị giúp đỡ em ạ. Em xin cảm ơn.
dạ nhờ anh chị xóa bài giúp em ạ. Em xin cảm ơn
Chạy code VBA
Mã:
Sub XYZ()
  Dim sRow&, sR&, i&, sCol&
  Dim aTK(), aPS(), res(), arr, dic As Object
 
  Set dic = CreateObject("Scripting.Dictionary")
  With Sheet2
    aPS = .Range("A3:D" & .Range("A" & Rows.Count).End(xlUp).Row).Value
  End With
  With Sheet1
    aTK = .Range("A3:B" & .Range("A" & Rows.Count).End(xlUp).Row).Value
  End With
  sRow& = UBound(aTK)
  ReDim res(1 To sRow, 1 To 50)
  For i = 1 To sRow
    dic.Item(aTK(i, 1)) = Array(i, 0)
    dic.Item(aTK(i, 1) & "|" & aTK(i, 2)) = ""
  Next i
  sR& = UBound(aPS)
  For i = 1 To sR
    If dic.exists(aPS(i, 1)) Then
      If Not dic.exists(aPS(i, 1) & "|" & aPS(i, 2)) Then
        arr = dic.Item(aPS(i, 1))
        arr(1) = arr(1) + 1
        res(arr(0), arr(1) * 2 - 1) = aPS(i, 2)
        res(arr(0), arr(1) * 2) = aPS(i, 3) + aPS(i, 4)
        
        dic.Item(aPS(i, 1)) = arr
        dic.Item(aPS(i, 1) & "|" & aPS(i, 2)) = ""
        If sCol < arr(1) Then sCol = arr(1)
      End If
    End If
  Next i
  Sheet1.Range("D3").Resize(sRow, sCol * 2) = res
End Sub
 

File đính kèm

Lần sau đăng bài Bạn nên lưu ý nội quy diễn đàn. Bài vi phạm nội quy sẽ rất ít người tương tác.
Trong khi chờ người khác bạn dùng thử file này xem sao. Tôi cũng làm mò đoán ý thôi,hy vọng đúng. Dữ liệu hơn 50000 dòng, nhưng vèo cái là xong.
vẫn nhắc lại: không nên đặt tên Sh bằng tiếng Việt có dấu.
dạ em cảm ơn anh chị nhiều ạ.
 
Web KT

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

Back
Top Bottom