Làm thế nào để link các chi tiết của các sheet khác nhau vào cùng một sheet (1 người xem)

Liên hệ QC

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

hoakimnguyenfu

Thành viên mới
Tham gia
17/11/11
Bài viết
23
Được thích
3
Mong các bác giúp mình về file này.Mình muốn tập hợp các dữ liệu của sheetA & sheet B thành 1 sheet tổng hợp ( tên mặt hàng, số lượng, tổng tiền)nếu như tên của 1 mặt hàng nào đó giống nhau thì trên sheet tổng hợp chỉ thể hiện 1 dòng & 1 tên duy nhất nhưng số lượng & số tiền phải bằng tổng của sheet A & B cộng lại. Còn những mặt hàng không trùng tên thì vẫn thể hiện bình thường. Xin các bác xem file đính kèm & giúp mình nhé! Xin cảm ơn.
 

File đính kèm

Bạn lấy 1 trang trống, gán nó cái tên "GPE" & cho macro chạy

để nó chuyển số liệu sang 'GPE' cho bạn
 

File đính kèm

Mong các bác giúp mình về file này.Mình muốn tập hợp các dữ liệu của sheetA & sheet B thành 1 sheet tổng hợp ( tên mặt hàng, số lượng, tổng tiền)nếu như tên của 1 mặt hàng nào đó giống nhau thì trên sheet tổng hợp chỉ thể hiện 1 dòng & 1 tên duy nhất nhưng số lượng & số tiền phải bằng tổng của sheet A & B cộng lại. Còn những mặt hàng không trùng tên thì vẫn thể hiện bình thường. Xin các bác xem file đính kèm & giúp mình nhé! Xin cảm ơn.
Cái này chắc phải "xơi" nó bằng VBA cho nhẹ nhàng
Chỉ thắc mắc sao không dò bằng Code mặt hàng _ cái này phải duy nhất chứ nhỉ ? (trong bài lại "hổng có" duy nhất. Híc)_ mà lại dò theo "Tên hàng".
Thôi, cứ làm theo yêu cầu chủ Topic
Các sheet phải có cấu trúc dữ liệu giống nhau.
Bạn cứ thêm, bớt, sửa dữ lệu ở 2 sheet "A" & "B", xong chọn sheet "KQ" để......xem kết quả
Thân
 

File đính kèm

Xin cảm ơn hai bác ChanhTQ & concogia.Hai bác vui lòng hướng dẫn cách làm để ra được kết quả như vậy cho mình với. Dạng báo cáo này mình sẽ thường xuyên làm nên hai bác giúp mình với. Cảm ơn nhé!!!
 
Cảm ơn bác Chanh TQ, bác có thể hướng dẫn cho mình cách làm này ko? bởi vì mình sẽ thường xuyên làm báo cáo dạng này nhưng sẽ thay đổi 1 số dữ liệu nên mình mong bác hướng dẫn giúp mình. Many thankssss
 
Mình giúp bạn hiểu sơ các dòng lệnh trong macro nha:

Bởi vì mình sẽ thường xuyên làm báo cáo dạng này nhưng sẽ thay đổi 1 số DL (dữ liệu) nên mình mong bác hướng dẫn giúp mình. Many thankssss

3 dòng lệnh đầu sau tên macro là dùng khai bào các kiểu loại biển cần dùng;
Dòng tiếp: Kích hoạt trang tính có tên 'GPE' & dòng dưới liền kề: Xóa toàn bộ DL 5 cột đầu của trang tính;

Đem vùng có DL thuộc trang tính 'A' gán vô biến Rng;

Copy cột dữ liệu đầu của vùng đến cột 'A' trang kích hoạt;

Lặp lại 2 dòng lệnh này với trang 'B', (chỉ khác 1 chút là không copy tiêu đề nữa & nối dữ liệu từ 'B' tiếp dưới DL đã copy từ 'A')
Gán DL thuộc cột 'A' trang 'GPE' vô biến Rng
Lập danh sách duy nhứt từ cột 'A' đền cột 'B'
Xóa DL của cột 'A'

Thiết lập vòng lặp duyệt toàn bộ code trong cột danh sách duy nhứt này;
Tìm ở 2 trang 'A' & 'B' nếu có code của ô đang duyệt thì chép cộng tiếp DL (số lượng & ttiền) sang 'GPE'

Hi vọng giúp bạn ít nhiều!
 
mong các bác giúp mình về file này.mình muốn tập hợp các dữ liệu của sheeta & sheet b thành 1 sheet tổng hợp ( tên mặt hàng, số lượng, tổng tiền)nếu như tên của 1 mặt hàng nào đó giống nhau thì trên sheet tổng hợp chỉ thể hiện 1 dòng & 1 tên duy nhất nhưng số lượng & số tiền phải bằng tổng của sheet a & b cộng lại. Còn những mặt hàng không trùng tên thì vẫn thể hiện bình thường. Xin các bác xem file đính kèm & giúp mình nhé! Xin cảm ơn.
chắc dùng code thôi bạn à
PHP:
Private Sub Worksheet_Activate()
  Dim Dic, sh As Worksheet, iRow As Long, i As Long, j As Long
  Dim Arr(), TmpArr
Application.ScreenUpdating = False
  On Error Resume Next
Sheet5.Range("A5:F60000").ClearContents
   With CreateObject("Scripting.Dictionary")
    For Each sh In Worksheets
      If sh.Name <> Sheet5 Then
        TmpArr = sh.Range(sh.[c5], sh.[C65536].End(xlUp)).Resize(, 4).Value
        For iRow = 1 To UBound(TmpArr, 1)
          If Not IsEmpty(TmpArr(iRow, 1)) Then
            If Not .Exists(TmpArr(iRow, 1)) Then
              i = i + 1
              .Add TmpArr(iRow, 1), i
              ReDim Preserve Arr(1 To 4, 1 To i)
              For j = 1 To 4
                Arr(j, i) = TmpArr(iRow, j)
              Next
            Else
              Arr(3, .Item(TmpArr(iRow, 1))) = Arr(3, .Item(TmpArr(iRow, 1))) + TmpArr(iRow, 3)
              Arr(4, .Item(TmpArr(iRow, 1))) = Arr(4, .Item(TmpArr(iRow, 1))) + TmpArr(iRow, 4)
            End If
          End If
        Next
      End If
    Next
 End With
  Sheet5.Range("C5").Resize(i, 4) = WorksheetFunction.Transpose(Arr)
  Range("B5:B" & [C65536].End(xlUp).Row).Value = Evaluate("ROW(R:R)")
  With Sheet5
  ER = Sheet5.[C50000].End(xlUp).Row
  .Range(Rows(ER), .Rows(65536)).ClearContents
 End With
End Sub
xem file đính kèm
 

File đính kèm

Lần chỉnh sửa cuối:
Cảm ơn bác Duy Thương, bác có thể giúp mình trên sheet tổng hợp đó cột số lượng của cùng 1 code hay 1 mặt hàng có thể tách ra thành 2 cột ( 1 cho số lượng của sheet A, 1 cho cột số lượng của sheet B). Giả sử minh cho sheet A la của thang 1 & sheet B là của tháng 2 thì trên sheet tổng hợp thể hiện code hoặc tên của mặt hàng nào đấy có số lượng của của tháng 1 & tháng 2 được tách riêng ra thành 2 cột riêng biệt, không cộng dồn lại. Mong bác giúp cho. Xin cảm ơn.
 
cảm ơn bác duy thương, bác có thể giúp mình trên sheet tổng hợp đó cột số lượng của cùng 1 code hay 1 mặt hàng có thể tách ra thành 2 cột ( 1 cho số lượng của sheet a, 1 cho cột số lượng của sheet b). Giả sử minh cho sheet a la của thang 1 & sheet b là của tháng 2 thì trên sheet tổng hợp thể hiện code hoặc tên của mặt hàng nào đấy có số lượng của của tháng 1 & tháng 2 được tách riêng ra thành 2 cột riêng biệt, không cộng dồn lại. Mong bác giúp cho. Xin cảm ơn.
nếu chỉ mình số lượng thì bạn tham khảo file này( CODE GPE DO TÔI CHẾ)
 

File đính kèm

Bác Duy Thương ơi, đúng là file mình cần rồi đấy. Rất cảm ơn bác, bác có thể hướng dẫn cho mình cách làm này được không? Nói thật mình cũng "dốt" excel lắm nên mong bác chỉ giáo giúpl Xin đa tạ...
 
Web KT

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

Back
Top Bottom