Chuyển dữ liệu Dọc Ngang

Liên hệ QC

vietvip0209

Thành viên mới
Tham gia
20/4/11
Bài viết
6
Được thích
0
Mình có 1 sheet hiển thị nhiều giá trị thành cột dọc. Mình muốn cộng lại và chuyển thành giá trị hàng ngang mà chưa có cách nào cả.
Nhờ các bạn trong diễn đàn hỗ trợ giúp mình với nhé.
Vui lòng xem chi tiết trong file kèm theo.
Cảm ơn các bạn.
 

File đính kèm

  • Bang tinh Doc - Ngang.xlsx
    18.3 KB · Đọc: 18
Mình có 1 sheet hiển thị nhiều giá trị thành cột dọc. Mình muốn cộng lại và chuyển thành giá trị hàng ngang mà chưa có cách nào cả.
Nhờ các bạn trong diễn đàn hỗ trợ giúp mình với nhé.
Vui lòng xem chi tiết trong file kèm theo.
Cảm ơn các bạn.
Bạn dùng pivot table nhé. Xem file gửi kèm
 

File đính kèm

  • Bang tinh Doc - Ngang.xlsx
    19.7 KB · Đọc: 13
Hoặc bạn dùng hàm Sumproduct cho:
Mã:
C4=SUMPRODUCT((Doc!$B$3:$B$74=Ngang!$B4)*(Doc!$D$3:$D$74=Ngang!C$3)*(Doc!$C$3:$C$74))
 
Mình có 1 sheet hiển thị nhiều giá trị thành cột dọc. Mình muốn cộng lại và chuyển thành giá trị hàng ngang mà chưa có cách nào cả.
Nhờ các bạn trong diễn đàn hỗ trợ giúp mình với nhé.
Vui lòng xem chi tiết trong file kèm theo.
Cảm ơn các bạn.
Bạn chạy thử code này xem.
Mã:
Sub chuyendulieu()
    Dim arr, arr1, i As Long, lr As Long, a As Long, b As Long, dic As Object, lr1 As Long
    Set dic = CreateObject("scripting.dictionary")
    With Sheets("ngang")
         lr = .Range("B" & Rows.Count).End(xlUp).Row
         If lr < 4 Then Exit Sub
         .Range("c4:N" & lr).ClearContents
         arr = .Range("B3:N" & lr).Value
         For i = 2 To UBound(arr, 1)
             dic.Item(arr(i, 1)) = i
         Next i
         For i = 2 To UBound(arr, 2)
             dic.Item(arr(1, i)) = i
         Next i
   End With
   With Sheets("doc")
       lr1 = .Range("B" & Rows.Count).End(xlUp).Row
       arr1 = .Range("b3:D" & lr1).Value
       For i = 1 To UBound(arr1, 1)
           a = dic.Item(arr1(i, 1))
           If a Then
              b = dic.Item(arr1(i, 3))
                  If b Then
                     arr(a, b) = arr(a, b) + arr1(i, 2)
                  End If
          End If
      Next i
   End With
    With Sheets("ngang")
     .Range("B3:N" & lr).Value = arr
    End With
End Sub
 

File đính kèm

  • Bang tinh Doc - Ngang.xlsm
    22.3 KB · Đọc: 15
Web KT

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

Back
Top Bottom