Cộng dữ liệu từ nhiều sheet

Liên hệ QC

Vanhuynh88

Thành viên mới
Tham gia
16/2/22
Bài viết
5
Được thích
0
Xin các anh chị có ý kiến giúp em viết công thức hay có macro có thể cộng dữ liệu từ nhiều sheet với ạ, Chẳng là mỗi ngày em nhận các file báo cáo từ nhiều nơi rồi tổng hợp lại thành 1 file (em có đính kèm các file mẫu báo cáo và file tổng hợp). Do các file nguồn có các record có giá 0 đồng (hàng bảo hành/ đổi trả), mà những hàng này cũng có khi bán thì phải có giá bán. Vì vậy em phải tách thủ công nên rất mất thời gian. Xin các anh chị hướng dẫn công thức hay có macro để tự động làm việc như vậy với ạ
 

File đính kèm

  • 1502.rar
    24 KB · Đọc: 13
Xin các anh chị có ý kiến giúp em viết công thức hay có macro có thể cộng dữ liệu từ nhiều sheet với ạ, Chẳng là mỗi ngày em nhận các file báo cáo từ nhiều nơi rồi tổng hợp lại thành 1 file (em có đính kèm các file mẫu báo cáo và file tổng hợp). Do các file nguồn có các record có giá 0 đồng (hàng bảo hành/ đổi trả), mà những hàng này cũng có khi bán thì phải có giá bán. Vì vậy em phải tách thủ công nên rất mất thời gian. Xin các anh chị hướng dẫn công thức hay có macro để tự động làm việc như vậy với ạ
Nếu bạn chấp nhận phương án thay đổi cấu trúc các File nguồn và cả file tổng hợp (cụ thể là thêm 1 trường nũa :Mã Giao dịch: Xuất bán lẻ = Xb, Xuất đổi trả =XĐt; xuất Bảo hảo hành =XBh; Xuất nội bộ =XNb...) thì bài này có thể làm được bằng VBA (Với điều kiện là các file nguồn có 1 Sheet), Còn nếu các file nguồn có nhiều Sh - thì phải sửa lại code.
Bạn phải thay đổi đường dẫn cho phù hợp ở dòng này trong code (chỗ in đậm):
For Each file In CreateObject("Scripting.FileSystemObject").GetFolder("C:\Users\Admin\Downloads\1502\1502\").Files
 

File đính kèm

  • 1502.rar
    44.9 KB · Đọc: 12
Nếu bạn chấp nhận phương án thay đổi cấu trúc các File nguồn và cả file tổng hợp (cụ thể là thêm 1 trường nũa :Mã Giao dịch: Xuất bán lẻ = Xb, Xuất đổi trả =XĐt; xuất Bảo hảo hành =XBh; Xuất nội bộ =XNb...) thì bài này có thể làm được bằng VBA (Với điều kiện là các file nguồn có 1 Sheet), Còn nếu các file nguồn có nhiều Sh - thì phải sửa lại code.
Bạn phải thay đổi đường dẫn cho phù hợp ở dòng này trong code (chỗ in đậm):
For Each file In CreateObject("Scripting.FileSystemObject").GetFolder("C:\Users\Admin\Downloads\1502\1502\").Files
Cám ơn bạn đã góp ý, để mình đề nghị các nơi gửi báo cáo điều chỉnh lại thử nhưng khả năng là khó điều chỉnh vì cái này là cả 1 hệ thống nên việc điều chỉnh phải được thủ trưởng đồng ý thì mới điều chỉnh được.
 
Cám ơn bạn đã góp ý, để mình đề nghị các nơi gửi báo cáo điều chỉnh lại thử nhưng khả năng là khó điều chỉnh vì cái này là cả 1 hệ thống nên việc điều chỉnh phải được thủ trưởng đồng ý thì mới điều chỉnh được.
Bạn đã chạy thử file tôi gửi chưa? và thấy thế nào?

Nếu mà ít file nguồn và mỗi file cũng ít bản ghi thì chịu khó làm tay cũng được. File gửi lại cho bạn tôi là thủ công đó. Dữ liệu nguồn không chuẩn thì phải chịu thôi.
Nhưng nếu nhiều file nguồn và nhiều bản ghi mỗi file thì cũng có thể dùng code VBA để làm thay (UnMerge và tự thêm trường và dữ liệu mà không ảnh hưởng đến dữ liệu nguồn) cũng được tất nhiên dữ liệu nguồn phải chuẩn thì hy vọng thành công mói cao. Điều này đồng nghĩa sẽ phải dày công nghiên cứu để thêm dữ liệu (tạm gọi là mã giao dịch-Cho code nhận biết sự khác nhau ...)cho chính xác (ví dụ Cùng là mục USB - nhưng đâu là USB xuất bán cho khách, đâu là USB xuất bản hành, đổi trả, xuất nội bộ). Tuy khó đấy, nhưng tôi tin là vẫn có thể làm được và nếu được thì sẽ tiết kiệm được khá nhiều công sức , thời gian mà vẫn đảm bảo độ chính xác hơn làm thủ công nhiều.
 
Lần chỉnh sửa cuối:
Bạn đã chạy thử file tôi gửi chưa? và thấy thế nào?

Nếu mà ít file nguồn và mỗi file cũng ít bản ghi thì chịu khó làm tay cũng được. File gửi lại cho bạn tôi là thủ công đó. Dữ liệu nguồn không chuẩn thì phải chịu thôi.
Nhưng nếu nhiều file nguồn và nhiều bản ghi mỗi file thì cũng có thể dùng code VBA để làm thay (UnMerge và tự thêm trường và dữ liệu mà không ảnh hưởng đến dữ liệu nguồn) cũng được tất nhiên dữ liệu nguồn phải chuẩn thì hy vọng thành công mói cao. Điều này đồng nghĩa sẽ phải dày công nghiên cứu để thêm dữ liệu (tạm gọi là mã giao dịch-Cho code nhận biết sự khác nhau ...)cho chính xác (ví dụ Cùng là mục USB - nhưng đâu là USB xuất bán cho khách, đâu là USB xuất bản hành, đổi trả, xuất nội bộ). Tuy khó đấy, nhưng tôi tin là vẫn có thể làm được và nếu được thì sẽ tiết kiệm được khá nhiều công sức , thời gian mà vẫn đảm bảo độ chính xác hơn làm thủ công nhiều.
Cám ơn bạn @HUONGHCKT đã có nhã ý giúp đỡ,, Mình đã xem file của bạn rồi nhưng mình rất tiếc là không thấy chỗ nào để chạy file cả.
Còn việc thay đổi file nguồn như góp ý của bạn thì mình chưa được sự đồng ý của thủ trưởng nên không thay đổi được, vì vậy mình vẫn tiếp tục làm thủ công thôi ạ.
 
Cám ơn bạn @HUONGHCKT đã có nhã ý giúp đỡ,, Mình đã xem file của bạn rồi nhưng mình rất tiếc là không thấy chỗ nào để chạy file cả.
Còn việc thay đổi file nguồn như góp ý của bạn thì mình chưa được sự đồng ý của thủ trưởng nên không thay đổi được, vì vậy mình vẫn tiếp tục làm thủ công thôi ạ.
C1:Bạn mở Foder 1502 mới tải về \mở Workbook CN_HCM.xls \Sheet TONGHOP\xóa toàn bộ dữ liệu từ D2: F42, sau đó nhấn Alt+F11 để vào của sổ VBE\vào modul1\ thấy Sub Tonghop()\Nhấn F5, quay về Sheet TONGHOP kiểm tra kết quả.
C2: Tạo 1 nút bấm (button) và sau đó phải chuột tren button đó chọn Assign Macro và chọn TongHop\OK
Lưu ý : Bạn phải chọn đường dẫn phù hợp như đã nói ở bài #2
Mà sao bây giờ vẫn dùng Office 2003
 

File đính kèm

  • CN_HCM.xls
    51 KB · Đọc: 12
Dường như tôi đang thấy bạn nhầm giữa dữ liệu vào báo cáo? Tôi thấy đây đều là báo cáo cả
Nếu là dữ liệu thì không thể MergeCell thế này? Không chuẩn một cơ sở dữ liệu, quá khó cho việc thống kê tổng hợp.

Việc thu/chi của cửa hàng chắc phải có phần mềm theo dõi? Xuất dữ liệu thô sẽ thế nào? Bạn thử gửi một chút dữ liệu thô xem sao.

Cảm ơn bạn!
 
C1:Bạn mở Foder 1502 mới tải về \mở Workbook CN_HCM.xls \Sheet TONGHOP\xóa toàn bộ dữ liệu từ D2: F42, sau đó nhấn Alt+F11 để vào của sổ VBE\vào modul1\ thấy Sub Tonghop()\Nhấn F5, quay về Sheet TONGHOP kiểm tra kết quả.
C2: Tạo 1 nút bấm (button) và sau đó phải chuột tren button đó chọn Assign Macro và chọn TongHop\OK
Lưu ý : Bạn phải chọn đường dẫn phù hợp như đã nói ở bài #2
Mà sao bây giờ vẫn dùng Office 2003
Cám ơn bạn nhiều. Mình mới tải file bạn gửi và đang mày mò cách dùng, vì mình không biết cách dùng code nên bây giờ phải tìm tài liệu để học (nói ra xấu hổ quá).
Bài đã được tự động gộp:

Dường như tôi đang thấy bạn nhầm giữa dữ liệu vào báo cáo? Tôi thấy đây đều là báo cáo cả
Nếu là dữ liệu thì không thể MergeCell thế này? Không chuẩn một cơ sở dữ liệu, quá khó cho việc thống kê tổng hợp.

Việc thu/chi của cửa hàng chắc phải có phần mềm theo dõi? Xuất dữ liệu thô sẽ thế nào? Bạn thử gửi một chút dữ liệu thô xem sao.

Cảm ơn bạn!
Bạn ơi cái này là mình tổng hợp các báo cáo của các bên họ gửi nên không có dữ liệu thô bạn ạ .
 
Cám ơn bạn nhiều. Mình mới tải file bạn gửi và đang mày mò cách dùng, vì mình không biết cách dùng code nên bây giờ phải tìm tài liệu để học (nói ra xấu hổ quá).
Bạn dùng thử file thấy kết quả thế nào? Cứ nhấn nút một phát nó sẽ cho kết quả. việc còn lại là kiểm tra.
Không có gì mà phải xấu hổ cả ( ai ai cũng phải học mới có được kiến thức thôi mà-Học-Học nữa-Học mãi; Học để làm việc, học để làm người- Học để chung sống), xin lỗi nếu mình dẫn trích không đúng nhé.
 
Bạn dùng thử file thấy kết quả thế nào? Cứ nhấn nút một phát nó sẽ cho kết quả. việc còn lại là kiểm tra.
Không có gì mà phải xấu hổ cả ( ai ai cũng phải học mới có được kiến thức thôi mà-Học-Học nữa-Học mãi; Học để làm việc, học để làm người- Học để chung sống), xin lỗi nếu mình dẫn trích không đúng nhé.
Cám ơn bạn nhiều lắm. Mình đã làm thử theo cách hướng dẫn của bạn rồi. Kết quả rất chính xác bạn ơi. Để mình báo cáo lên thủ trưởng và nhờ các bạn bên gửi báo cáo thêm hộ 1 cột "Mã giao dịch" để có thể chạy code.
 
Web KT
Back
Top Bottom