Tổng hợp dữ liệu từ nhiều sheet thành 1 sheet công nợ chi tiết (2 người xem)

Liên hệ QC

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

okmansetup

Thành viên mới
Tham gia
28/4/09
Bài viết
3
Được thích
1
Các bác xem hộ em bài này nên giải quyết thế nào a?, em đang cần gấp quá!
Em có một list các sheet khác nhau, (bao gồm các ngày trong tháng, từ 1 - 30, tương ứng từ sheet 1 đến sheet 30), trong mỗi sheet thì có số lượng khách hàng (có cả khác và giống nhau nữa),
em muốn từ các sheet nguồn đấy, tổng hợp ra một sheet tổng hợp, mà ở đó cũng có những cột như ở sheet nguồn, nhưng tại đây, được tổng hợp thành từng tên khách hàng, cuối mỗi khách hàng đó thì tính tổng tiền, số lượng hàng, sau đó lại đến tên khách hàng khác, lần lượt cho đến hết.
Em có up bài ví dụ lên, các bác xem thử giúp em với.
em mới học excel nên không biết bài này phải làm thế nào. Mong bác nào làm xong, hướng dẫn tận tình lại cho em với, (các bác để lại công thức cho em xem với, em xem nhiều bài trên GPX, thấy các bác chỉ đưa đáp số, mà chẳng thấy công thức đâu cả, em đành chịu, không hiểu bài làm thế nào ạ.
 

File đính kèm

Bạn xem thêm trong file đính kèm

PHP:
Option Explicit
Sub TongHop()
 Dim Sh As Worksheet, Sh0 As Worksheet
 Dim Rng As Range, sRng As Range, Clls As Range
 Dim MyAdd As String:                  Dim Rw As Long, MyColor As Byte
1 '*'
 Set Sh0 = Sheets("THop"):             Sh0.Columns("iU").Clear
 Sh0.[iU1].Value = "KhHang"
 For Each Sh In Worksheets
   If Sh.Name <> Sh0.Name Then
      Sh.Range(Sh.[B4], Sh.[B4].End(xlDown)).Copy _
            Destination:=[Sh0].[iU65500].End(xlUp).Offset(1)
   End If
 Next Sh
2 '*'
 Sh0.Range("A4:G" & Sh0.[iU65500].End(xlUp).Row + 9).Clear
 MyColor = Sh0.[b3].Interior.ColorIndex + 1
 If MyColor > 42 Then MyColor = 34
 Sh0.[b3].Resize(, 5).Interior.ColorIndex = MyColor
3 '*'
 Sh0.Columns("IU:IU").AdvancedFilter Action:=xlFilterCopy, _
        CopyToRange:=Sh0.[IV1], Unique:=True
4 '*'
 For Each Clls In Sh0.Range(Sh0.[iv2], Sh0.[iv2].End(xlDown))
   For Each Sh In Worksheets
      If Sh.Name <> Sh0.Name Then
         Set Rng = Sh.Range(Sh.[b3], Sh.[b3].End(xlDown))
         Set sRng = Rng.Find(Clls.Value, , xlFormulas, xlWhole)
         If Not sRng Is Nothing Then
            MyAdd = sRng.Address
            Do
               Sh0.[b65500].End(xlUp).Offset(1).Resize(, 5).Value = _
                  sRng.Offset(, -1).Resize(, 5).Value
            Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
         End If
      End If
   Next Sh
   Set Rng = Sh0.[b65500].End(xlUp).Offset(1)
5 '*'
   With Rng
      .Value = "ToTal":                .Resize(, 5).Font.Bold = True
      Set sRng = Rng.Offset(-1, 1)
      Rw = 1
      If sRng.Offset(-1, -1).Value <> "ToTal" Then _
         Rw = Range(sRng, sRng.End(xlUp)).Rows.Count
      .Offset(, 2).FormulaR1C1 = "=SUM(R[-" & Rw & "]C:R[-1]C)"
      With .Offset(, 2)
         .AutoFill Destination:=.Resize(, 3), Type:=xlFillDefault
      End With
   End With
   Set sRng = Nothing
 Next Clls
End Sub
 

File đính kèm

Có cách nào sử dụng công thức mà không cần đến VBA không hả bác?
Em mới học thành ra chẳng hiểu VBA này chút gì cả!! :(
 
Dùng Subtotal

Bạn xem có đúng ý bạn muốn làm không? Nhưng mình thắc mắc sao bạn không có Nhật ký bán hàng mà lại phải tách ra từng đấy sheet?
 

File đính kèm

em chẳng hiểu gì mấy? code đó làm thế nào để tổng hợp được?
 
Theo cách làm của bác mailanvd thì hình như em phải copy toàn bộ dữ liệu ở các sheet khác vào sheet tổng hợp rồi mới dùng subtotal phải không ạ?
Có cách nào mà em không cần phải copy dữ liệu ở sheet khác sang mà vẫn có thể liệt kê và tính được không hả bác?
 
Theo cách làm của bác mailanvd thì hình như em phải copy toàn bộ dữ liệu ở các sheet khác vào sheet tổng hợp rồi mới dùng subtotal phải không ạ?
Có cách nào mà em không cần phải copy dữ liệu ở sheet khác sang mà vẫn có thể liệt kê và tính được không hả bác?
Đương nhiên có cách ---> Bạn dùng code VBA để làm điều này
Với yêu cầu của bạn tôi nghĩ chẳng công thức nào làm được đâu!
Code copy tất cả các sheet về 1 sheet cũng khá dể dàng, trên GPE cũng đã có... Còn không bạn có thể tự record lấy macro
 
Tổng hợp dữ liệu từ nhiều sheet thành 1 sheet

Chao cac anh chi,
Mình cũng có một bảng tổng hợp từ nhiều sheet về 1 sheet:nhưng khác nhau ở chỗ:
- Số liệu mình nhập 1 khách hàng: có 2 dòng: dòng trên là đếm SL trưng bày,dòng dưới là số lượng hàng bán.
- Công việc của mình là nhập sl vào 31 sheet này và tổng hợp từ 31 sheet (ứng vớ 31 ngày) về 1 sheet "tháng".
Các bạn có thể giúp mình công thức để tổng số lượng đếm và số lượng bán không?(điều kiện là nếu tình tổng trả về theo mã KH và Tên sản phẩm.
Minh gởi file dính kèm các anh chị xem giùm em nhé(mình rút gọn thành 3 ngày cho nhẹ file)
Cám ơn anh chị nhiều.
 

File đính kèm

Chao cac anh chi,
Mình cũng có một bảng tổng hợp từ nhiều sheet về 1 sheet:nhưng khác nhau ở chỗ:
- Số liệu mình nhập 1 khách hàng: có 2 dòng: dòng trên là đếm SL trưng bày,dòng dưới là số lượng hàng bán.
- Công việc của mình là nhập sl vào 31 sheet này và tổng hợp từ 31 sheet (ứng vớ 31 ngày) về 1 sheet "tháng".
Các bạn có thể giúp mình công thức để tổng số lượng đếm và số lượng bán không?(điều kiện là nếu tình tổng trả về theo mã KH và Tên sản phẩm.
Minh gởi file dính kèm các anh chị xem giùm em nhé(mình rút gọn thành 3 ngày cho nhẹ file)
Cám ơn anh chị nhiều.
------
Bạn ơi cũng muốn xem cho biết, bạn chuyển về .xls được không ?
 
Em mới tham ra diễn đàn. Cám ơn các bạn đã post bài lên nhé. Diễn đàn giải pháp excel thật là hữu ích.
 
Trông thấy bác SA-DQ cung cấp phương pháp mà sướng phát mê, nhưng chả có dòng chú giải nào cả chả biết đường nào mà lần. Ngâm cứu xong của bác chắc em biết thế nào là VBA. Cảm ởn bác nhiều.
 
bác ơi e cũng có bài tương tự,cho em xem công thức với
 
Sử dụng code trong diễn đàn

PHP:
Option Explicit
Sub TongHop()
 Dim Sh As Worksheet, Sh0 As Worksheet
 Dim Rng As Range, sRng As Range, Clls As Range
 Dim MyAdd As String:                  Dim Rw As Long, MyColor As Byte
1 '*'
 Set Sh0 = Sheets("THop"):             Sh0.Columns("iU").Clear
 Sh0.[iU1].Value = "KhHang"
 For Each Sh In Worksheets
   If Sh.Name <> Sh0.Name Then
      Sh.Range(Sh.[B4], Sh.[B4].End(xlDown)).Copy _
            Destination:=[Sh0].[iU65500].End(xlUp).Offset(1)
   End If
 Next Sh
2 '*'
 Sh0.Range("A4:G" & Sh0.[iU65500].End(xlUp).Row + 9).Clear
 MyColor = Sh0.[b3].Interior.ColorIndex + 1
 If MyColor > 42 Then MyColor = 34
 Sh0.[b3].Resize(, 5).Interior.ColorIndex = MyColor
3 '*'
 Sh0.Columns("IU:IU").AdvancedFilter Action:=xlFilterCopy, _
        CopyToRange:=Sh0.[IV1], Unique:=True
4 '*'
 For Each Clls In Sh0.Range(Sh0.[iv2], Sh0.[iv2].End(xlDown))
   For Each Sh In Worksheets
      If Sh.Name <> Sh0.Name Then
         Set Rng = Sh.Range(Sh.[b3], Sh.[b3].End(xlDown))
         Set sRng = Rng.Find(Clls.Value, , xlFormulas, xlWhole)
         If Not sRng Is Nothing Then
            MyAdd = sRng.Address
            Do
               Sh0.[b65500].End(xlUp).Offset(1).Resize(, 5).Value = _
                  sRng.Offset(, -1).Resize(, 5).Value
            Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
         End If
      End If
   Next Sh
   Set Rng = Sh0.[b65500].End(xlUp).Offset(1)
5 '*'
   With Rng
      .Value = "ToTal":                .Resize(, 5).Font.Bold = True
      Set sRng = Rng.Offset(-1, 1)
      Rw = 1
      If sRng.Offset(-1, -1).Value <> "ToTal" Then _
         Rw = Range(sRng, sRng.End(xlUp)).Rows.Count
      .Offset(, 2).FormulaR1C1 = "=SUM(R[-" & Rw & "]C:R[-1]C)"
      With .Offset(, 2)
         .AutoFill Destination:=.Resize(, 3), Type:=xlFillDefault
      End With
   End With
   Set sRng = Nothing
 Next Clls
End Sub

Em đã sử dụng code này nhưng sau khi run thì lại gặp error 6 và dùng debug thì chỉ vào dòng my color, các anh chị giúp em với ạ. Em cũng cần làm tính tổng của mỗi một khách hàng trong 30 sheet khác nhau. Mỗi sheet đều có định dạng giống nhau, nhưng vị trí khách hàng khác nhau và tên của từng khách hàng thì có thể có tên mới. Em mong được sự giúp đỡ của mọi người ạ
 
[thongbao]
(1) Em đã sử dụng code này nhưng sau khi run thì lại gặp error 6 và dùng debug thì chỉ vào dòng my color, các anh chị giúp em với ạ.

(2) Em cũng cần làm tính tổng của mỗi một khách hàng trong 30 sheet khác nhau. Mỗi sheet đều có định dạng giống nhau, nhưng vị trí khách hàng khác nhau và tên của từng khách hàng thì có thể có tên mới.[/thongbao]

(1) Chắc tại ô [B3] của trang 'THop' của bạn chưa có màu nền; Bạn thử bôi màu xanh lơ ơ này trước & cho chạy lại xem sao.

(2). Bạn nên đưa file mẫu lên, mỗi trang 1 ít records nhưng đại diện được hầu hết CSDL của bạn.
 
(1) Chắc tại ô [B3] của trang 'THop' của bạn chưa có màu nền; Bạn thử bôi màu xanh lơ ơ này trước & cho chạy lại xem sao.

(2). Bạn nên đưa file mẫu lên, mỗi trang 1 ít records nhưng đại diện được hầu hết CSDL của bạn.[/QUOTE]

Em cảm ơn anh rất nhiều vì may mắn đã nhận được câu trả lời ngay.

Em đã thử bôi màu vào dòng titile và đã run được code trên nhưng. Em thấy kết quả lại không đúng vì em đã thử thay đổi thông tin trong sheet N11 ở dòng số 10 nhưng kết quả ở sheet Thop lại không đúng ạ. Anh xem file giúp em nhé!

Thực ra em đang cần làm 1 file như file: du lieu can tinh toan em up ở dưới đây. Em có tên công nhân theo cột A nhưng thứ tự sắp xếp không giống nhau, và cột thông tin số công và lương ở cột khác nhưng khi tính tập hợp lại em cần giống sheet tổng hợp. Em đã tham khảo code vba của diễn đàn, nhưng khi test dùng thử thì phát sinh các vấn đề trên. Em mong mọi người giúp đỡ!
 

File đính kèm

Lần chỉnh sửa cuối:
Em cảm ơn anh rất nhiều vì may mắn đã nhận được câu trả lời ngay.

Em đã thử bôi màu vào dòng titile và đã run được code trên nhưng. Em thấy kết quả lại không đúng vì em đã thử thay đổi thông tin trong sheet N11 ở dòng số 10 nhưng kết quả ở sheet Thop lại không đúng ạ. Anh xem file giúp em nhé!

Thực ra em đang cần làm 1 file như file: du lieu can tinh toan em up ở dưới đây. Em có tên công nhân theo cột A nhưng thứ tự sắp xếp không giống nhau, và cột thông tin số công và lương ở cột khác nhưng khi tính tập hợp lại em cần giống sheet tổng hợp. Em đã tham khảo code vba của diễn đàn, nhưng khi test dùng thử thì phát sinh các vấn đề trên. Em mong mọi người giúp đỡ!

Bạn gửi 2 file đính kèm? Ý bạn là tổng hợp dữ liệu của tất cả các sheet về 1 sheet như file 2 bạn gửi? Còn file 1 thì sao?
 
Dạ. File 1 tên THop file thực ra là em đã tải về từ diễn đàn để tự nghiên cứu và áp dụng. Nhưng em có cái khó là chưa quen dùng VBA. Nên khi mắc lỗi em không biết kiểm tra và khắc phục
 
Dạ. File 1 tên THop file thực ra là em đã tải về từ diễn đàn để tự nghiên cứu và áp dụng. Nhưng em có cái khó là chưa quen dùng VBA. Nên khi mắc lỗi em không biết kiểm tra và khắc phục
Với dữ liệu này bạn dùng công cụ sẵn có là consolidate là ok

[video=youtube;qogfK3FiM4M]http://www.youtube.com/watch?v=qogfK3FiM4M&amp;feature=youtu.be[/video]
 
Với dữ liệu này bạn dùng công cụ sẵn có là consolidate là ok

[video=youtube;qogfK3FiM4M]http://www.youtube.com/watch?v=qogfK3FiM4M&amp;feature=youtu.be[/video]

Anh chị có thể hướng dẫn em dùng consolidate với file trên không ạ? Em rất mong được hỗ trợ của mọi người!
 
Web KT

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

Trả lời
42
Đọc
17K
Back
Top Bottom