Làm cách nào để tổng hợp dữ liệu từ nhiều file vô 01 file? (1 người xem)

Liên hệ QC

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

othanhquango

Thành viên hoạt động
Tham gia
6/3/09
Bài viết
138
Được thích
7
Hiện nay, do nhu cầu công việc phải tổng hợp dữ liệu. Nhưng nếu mở từng file ra cộng vào thì mất thời gian quá. Vì vậy mình muốn hỏi các bạn là làm thế nào để tổng hợp số liệu từ nhiều file con có cùng 01 định dạng (đặt trong 01 thu mục) vào 01 file duy nhất cũng cùng định dạng.

Mình có gởi theo file ví dụ, nhờ các anh chị và các bạn hướng dẫn giúp mình với.
 

File đính kèm

Hiện nay, do nhu cầu công việc phải tổng hợp dữ liệu. Nhưng nếu mở từng file ra cộng vào thì mất thời gian quá. Vì vậy mình muốn hỏi các bạn là làm thế nào để tổng hợp số liệu từ nhiều file con có cùng 01 định dạng (đặt trong 01 thu mục) vào 01 file duy nhất cũng cùng định dạng.

Mình có gởi theo file ví dụ, nhờ các anh chị và các bạn hướng dẫn giúp mình với.

Thử file này xem thế nào, quan trọng là bạn phải biết xài macro mới được
 

File đính kèm

Upvote 0
Không được bạn ơi.

Khi chạy nó mở ra hộp thoại open, chọn cái gì cũng bị lỗi hết.
 
Upvote 0
Hiện nay, do nhu cầu công việc phải tổng hợp dữ liệu. Nhưng nếu mở từng file ra cộng vào thì mất thời gian quá. Vì vậy mình muốn hỏi các bạn là làm thế nào để tổng hợp số liệu từ nhiều file con có cùng 01 định dạng (đặt trong 01 thu mục) vào 01 file duy nhất cũng cùng định dạng.

Mình có gởi theo file ví dụ, nhờ các anh chị và các bạn hướng dẫn giúp mình với.
Cách đơn giản nhất để làm bài này là dùng công cụ consolidate
Xem video clip dưới đây:

[video=youtube;z-GunuaKlug]http://www.youtube.com/watch?v=z-GunuaKlug&feature=youtu.be[/video]

to Quang Hải: bài này nếu viết code cũng sẽ dựa trên cách làm từ consolidate mà xây dựng... Nó thậm chí là chẳng mở bất cứ file nào mà vẫn cho kết quả nhanh như chớp
Trước đây tôi đã từng viết về code này rồi, xem tại đây:
http://www.giaiphapexcel.com/forum/showthread.php?7146-Đố-vui-về-VBA!&p=253055#post253055
 
Upvote 0
Không được bạn ơi.

Khi chạy nó mở ra hộp thoại open, chọn cái gì cũng bị lỗi hết.

Sao lại như thế nhỉ? Mình chạy trên máy mình thì bình thường
Có thể là do cái đuôi định dạng vì máy tình mình sử dụng 2003. Bạn thử lại cái này xem. Mình cũng sẽ thử xem cách anh NDU hướng dẫn xem thế nào vì chưa làm theo cách đó lần nào cả nên không tự tin lắm
PHP:
Sub tonghop()
Application.ScreenUpdating = False
Dim ketqua, mofile, I, sarr, j, jj
Range([b2], [c65536].End(3).Offset(-1)).ClearContents
ketqua = Range([a2], [a65536].End(3).Offset(-1)).Resize(, 3).Value
mofile = Application.GetOpenFilename(filefilter:="(*.xlsx),*.xlsx", MultiSelect:=True)
If Not IsArray(mofile) Then Exit Sub
For I = 1 To UBound(mofile)
   Workbooks.Open mofile(I)
   With ActiveWorkbook.ActiveSheet
      sarr = .Range(.[a2], .[a65536].End(3).Offset(-1)).Resize(, 3).Value
      For j = 1 To UBound(ketqua)
         For jj = 1 To UBound(sarr)
            If ketqua(j, 1) = sarr(jj, 1) Then
               ketqua(j, 2) = ketqua(j, 2) + sarr(jj, 2)
               ketqua(j, 3) = ketqua(j, 3) + sarr(jj, 3)
            End If
         Next
      Next
   End With
   ActiveWorkbook.Close False
Next
[a2].Resize(j - 1, 3) = ketqua
Application.ScreenUpdating = True
End Sub
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Hic, dữ liệu mình có hơn 30 file. Mỗi file đều số lượng sheet
khác nhau. Chỉ có 01 sheet trong mỗi file trùng tên và mình cần tổng hợp sheet đó.

Nếu dùng consolidate thì phải mở thủ công 30 lần để add. Và tháng sau cần tổng hợp lại, lại phải làm thêm như vậy 01 lần nữa hả bạn?
 
Upvote 0
Hic, dữ liệu mình có hơn 30 file. Mỗi file đều số lượng sheet
khác nhau. Chỉ có 01 sheet trong mỗi file trùng tên và mình cần tổng hợp sheet đó.

Nếu dùng consolidate thì phải mở thủ công 30 lần để add. Và tháng sau cần tổng hợp lại, lại phải làm thêm như vậy 01 lần nữa hả bạn?

Đó là hướng dẫn cách dùng consolidate bằng thủ công (đã làm thủ công thì đương nhiên mỗi File phải add 1 lần). Còn nếu muốn làm một lần được tất cả các file có trong thư mục (không cần biết có bao nhiêu file) thì bạn dùng code của ndu theo đường linh đã cho ở cuối bài 4 http://www.giaiphapexcel.com/forum/showthread.php?7146-Đố-vui-về-VBA!&p=253055#post253055

Tuy nhiên bạn phải sửa lại code cho phù hợp với file của bạn. Ví dụ bạn sửa A2:B... thành A2:B65000
 
Lần chỉnh sửa cuối:
Upvote 0
Thêm một cái nữa là mình thấy cách làm thủ công hình như chỉ có thể tổng hợp được cả 03 bảng, chứ không tổng hợp được từng vùng của các file. VD: A1:A10; C1:C10; ...

Tiện thể nhờ các bạn giải thích giúp mình 02 code này (mình copy link trên qua) thì code đầu để làm gì và code sau để làm gì? Nếu được thì giải thích code từng dòng luôn thì tốt quá.

Với lại thêm cái nữa là trong file ví dụ ở code này. Kế quả được sử dụng sumif. Mà mình không thấy đoạn đó nằm chỗ nào? Có nghĩa là thay vì cộng tổng theo từng hàng thì ở đây cộng tổng theo A, B, C,... mà mình cũng không thấy chỗ nào là code của "+" luôn.

PHP:
Sub ConsolMutiFiles(Folder As String, ShName As String, SrcRng As String, Target As Range)
  Dim Temp As String
  Temp = ShName & "'!" & Range(SrcRng).Address(, , 2)
  If Right(Folder, 1) <> "\" Then Folder = Folder & ""
  ActiveWorkbook.Names.Add "Arr", "=""" & Folder & "[""&Files(""" & Folder & "*.*"")&""]" & Temp & """"
  Target.Consolidate Evaluate("Arr"), 9, 0, 1
  ActiveWorkbook.Names("Arr").Delete
End Sub

PHP:
Sub Test()
  Dim Folder As String, ShName As String, SrcRng As String
  Range("A2:B1000").ClearContents
  With CreateObject("Shell.Application")
    On Error Resume Next
    Folder = .BrowseForFolder(0, "", 1).Self.Path
  End With
  ShName = "Sheet1": SrcRng = "A2:B30"
  ConsolMutiFiles Folder, ShName, SrcRng, Range("A2")
End Sub

Nhờ các bạn.

Mình chân thành cảm ơn.
 
Lần chỉnh sửa cuối:
Upvote 0
Hiện nay, do nhu cầu công việc phải tổng hợp dữ liệu. Nhưng nếu mở từng file ra cộng vào thì mất thời gian quá. Vì vậy mình muốn hỏi các bạn là làm thế nào để tổng hợp số liệu từ nhiều file con có cùng 01 định dạng (đặt trong 01 thu mục) vào 01 file duy nhất cũng cùng định dạng.

Mình có gởi theo file ví dụ, nhờ các anh chị và các bạn hướng dẫn giúp mình với.
mình có cái này bạn xem sử dụng được ko nhe!
 

File đính kèm

Upvote 0
Thêm 01 cái hay, nhưng không phải như yêu cầu của mình.

Cảm ơn bạn.
 
Upvote 0
Thêm 01 cái hay, nhưng không phải như yêu cầu của mình.

Cảm ơn bạn.

1.bạn phải có 3 DLL của fox9 sp2
* vfp9enu.dll
* vfp9r.dll
* vfpreun.dll
copy vào thư mục windows\system32

2. giải nén và run donvi.exe, chọn thư mục chứa file excel, chọn thư mục để lưu file tổng hợp, đặt tên chọn save. xong

3. mình viết theo cấu trúc và tên file của bạn. và số liệu chi tiết cần tổng hợp đều phải nằm ở sheet1 của mỗi workbook
 

File đính kèm

Upvote 0
---------------------------
Microsoft Visual FoxPro
---------------------------
Visual FoxPro cannot start. Could not load resources.
---------------------------
OK
---------------------------

Hic, mình chạy file đó không được nên không test được. Sao bạn không làm dạng file excel cho dễ? Vì mình còn dựa theo đó mà edit từng vùng cần cộng cho thích hợp nữa.
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom