Chuyển từ cấu trúc bảng theo tên sang theo lần phát sinh

Liên hệ QC

Nguyễn Hồng Quang

Thành viên GPE Hà Nội
Tham gia
8/6/07
Bài viết
1,203
Được thích
876
Giới tính
Nam
Nghề nghiệp
Kế toán
Cuối năm bận rộn. Xin gửi tới các anh, chị em và các bạn lời chúc giữ gìn sức khỏe để ăn Tết vui vẻ
Mình có 1 bảng dữ liệu theo dõi theo tên. Bây giờ mình muốn
Từ cách trình bày cấu trúc dữ liệu của bảng chi cổ tức theo tên cổ đông này sẽ chuyển sang được cách trình bày cấu trúc dữ liệu theo từng lần (chi tiết xem trong file gửi kèm)
Nhờ các anh , chị và các bạn giúp đỡ có cách làm nào mà có thể tạo ra được như cái bảng bên sheet Chi cổ tức L và có thể cập nhập được cho đến lần chi thứ n.
Cảm ơn anh, chị và các bạn đã quan tâm giúp đỡ
 

File đính kèm

  • Chi tiết góp vốn-chi cổ tức 411-VIS.xls
    54.5 KB · Đọc: 11
Cuối năm bận rộn. Xin gửi tới các anh, chị em và các bạn lời chúc giữ gìn sức khỏe để ăn Tết vui vẻ
Mình có 1 bảng dữ liệu theo dõi theo tên. Bây giờ mình muốn
Từ cách trình bày cấu trúc dữ liệu của bảng chi cổ tức theo tên cổ đông này sẽ chuyển sang được cách trình bày cấu trúc dữ liệu theo từng lần (chi tiết xem trong file gửi kèm)
Nhờ các anh , chị và các bạn giúp đỡ có cách làm nào mà có thể tạo ra được như cái bảng bên sheet Chi cổ tức L và có thể cập nhập được cho đến lần chi thứ n.
Cảm ơn anh, chị và các bạn đã quan tâm giúp đỡ
Thử code
Mã:
Sub GPE()
  Dim sArr(), Res(), Stt(), S, iKey As String, tmp, Tong As Double
  Dim i As Long, k As Long, N As Long, ik As Long, j As Long, sRow As Long
  Const Chi As String = "CHI"
 
  With Sheet1
    sArr = .Range("B4:K" & .Range("C65500").End(xlUp).Row).Value
    sRow = UBound(sArr)
  End With
  ReDim Stt(1 To sRow, 1 To 3)
  For i = 1 To sRow
    iKey = sArr(i, 1)
    If InStr(1, UCase(iKey), Chi) > 0 Then
      tmp = Mid(iKey, 9, Len(iKey) - 8)
      If IsNumeric(tmp) Then tmp = CLng(tmp) Else tmp = sRow
      Stt(tmp, 1) = iKey
      Stt(tmp, 2) = Stt(tmp, 2) & "," & i
    End If
  Next i
  ReDim Res(1 To sRow + 100, 1 To UBound(sArr, 2))
  For i = 1 To sRow
    iKey = Stt(i, 1)
    If Len(iKey) > 0 Then
      k = k + 1:    N = k:    Tong = 0
      Res(k, 1) = iKey
      S = Split(Stt(i, 2), ",")
      For q = 1 To UBound(S)
        ik = CLng(S(q))
        If IsNumeric(sArr(ik, 8)) Then Tong = Tong + sArr(ik, 8)
        k = k + 1
        For j = 1 To 10
          Res(k, 1) = iKey
          Res(k, j) = sArr(ik, j)
        Next j
      Next q
      Res(N, 8) = Tong
    End If
  Next i
  With Sheet2
    .Range("A4:J4").Resize(k) = Res
  End With
End Sub
 
Em cảm ơn anh HieuCD nhiều. Code chạy tuyệt với, đúng ý như em mong muốn.
Và có cảm giác như là được anh HieuCD lì xì sớm cho năm mới ấy ạ
Chúc anh và gia đình năm mới sức khỏe , an khang thịnh vượng
 
Cuối năm bận rộn. Xin gửi tới các anh, chị em và các bạn lời chúc giữ gìn sức khỏe để ăn Tết vui vẻ
Mình có 1 bảng dữ liệu theo dõi theo tên. Bây giờ mình muốn
Từ cách trình bày cấu trúc dữ liệu của bảng chi cổ tức theo tên cổ đông này sẽ chuyển sang được cách trình bày cấu trúc dữ liệu theo từng lần (chi tiết xem trong file gửi kèm)
Nhờ các anh , chị và các bạn giúp đỡ có cách làm nào mà có thể tạo ra được như cái bảng bên sheet Chi cổ tức L và có thể cập nhập được cho đến lần chi thứ n.
Cảm ơn anh, chị và các bạn đã quan tâm giúp đỡ
Cái này làm thủ công cũng được mà:
1/ Copy sheet Chi cổ tức vào Chi cổ tức (L).
2/ Xóa cột STT > Sort cột Lần chi rồi dùng Subtotal
 
Web KT
Back
Top Bottom