Tổng hợp dữ liệu từ nhiều file excel vào 1 file không cần mở file

Liên hệ QC

ffcb1900

Thành viên chính thức
Tham gia
27/7/08
Bài viết
77
Được thích
4
Mình lúc nào cũng sẽ có 5 file dữ liệu (mỗi file khoảng 2000-5000 dòng dữ liệu), download trực tiếp hàng ngày từ server với định dạng định sẵn dưới định dạng .xls (số cột và vị trí cột định sẵn theo mẫu đính kèm là các file CA1, CA2, CA3, CA4, CA5).

Mình cần tổng hợp lại 5 file vào 1 file duy nhất (như mẫu đính kèm) trong đó du liệu của các file CA1, CA2, CA3, CA4, CA5 sẽ nối tiếp nhau ghep vào 1 sheet theo đúng cột tương ứng. Để tổng hợp đc mà k cần mở cả 5 file lên là tốt nhất (như kiểu paste link và có linh external data vậy).

Mong mọi người giúp đỡ với
 

File đính kèm

  • tong hop du lieu vao 1 file.zip
    35.1 KB · Đọc: 951
Lần chỉnh sửa cuối:
Upvote 0
Bài viết rất hữu ích, tuy nhiên cách ghép dữ liệu như code đã nêu là ghép theo kiểu "nối tiếp". Giờ mình muốn ghép theo kiểu lọc dữ liệu (giống như VLOOKUP) từ nhiều file do nhiều người nhập vào 1 file tổng hợp có cấu trúc dữ liệu giống nhau, chỉ có nội dung là thay đổi thì phải làm sao, mình đã sửa lại code nhưng vẫn chưa chạy được. Rất mong các sư phụ giúp đỡ ! ThankS!
 
Upvote 0
Chào bác ndu96081631 , em có file này nhờ bác giúp cho ạ. Chả là em muốn tổng hợp dữ liệu ở sheet data của File có link sau ạ: http://www.mediafire.com/download/0rryyfr5ccu6b6q/CV.rar. Do là file CV do ứng viên gửi tới nên định dạng giống nhau bác ạ và do gửi cho ứng viên để ứng viên điền nên chỉ có sheet example là ko unhide thôi ạ. Bác giúp em với nhé. Em cảm ơn bác nhiều ạ.

 
Upvote 0
Tổng hợp dữ liệu từ nhiều file giống nhau vào 1 file (mỗi file có 4 sheet)

Mọi người ơi em là thành viên mới, hay phải làm báo cáo thống kê nhưng em lại không hiểu nhiều về excel nên rất mất thời gian và vất vả. Mọi người giúp em với. Cụ thể bây giờ em có 16 file giống nhau của 16 trường, muốn tổng hợp thành 1 file để gửi Sở GD, sheet của Sở lại khóa nên em chẳng biết phải làm sao. Mọi người giúp em nhanh nhanh với! Em có gửi kèm tạm 8 file của 8 trường và file em tổng hợp đây ạ.
 

File đính kèm

  • 8 trường.rar
    801.3 KB · Đọc: 38
  • Yen Phong.xls
    122.5 KB · Đọc: 27
Upvote 0
Lấy dữ liệu từ nhiều file khác nhau mà không cần mở file

Xin chào mọi người
Xin mọi người giúp mình code lấy dữ liệu từ các file nhưng không cần mở file lên
yêu cầu mình đã ghi trong file LAY DL theo file đính kèm
Cám ơn mọi người rất nhiều
 

File đính kèm

  • LAY DL TU NHIEU FILE.rar
    344.5 KB · Đọc: 72
Upvote 0
Xin chào mọi người
Xin mọi người giúp mình code lấy dữ liệu từ các file nhưng không cần mở file lên
yêu cầu mình đã ghi trong file LAY DL theo file đính kèm
Cám ơn mọi người rất nhiều

Mình đang tập tành ADO , VBA thấy bài của bạn tải về cũng muốn vọc lắm... nhưng sau khi đọc yêu cầu của bạn có tới 10 mấy mục ...
và cách sắp xếp dữ liệu ... ngại ghê... chạy mất dép..hahahaha
 
Upvote 0
Mình đang tập tành ADO , VBA thấy bài của bạn tải về cũng muốn vọc lắm... nhưng sau khi đọc yêu cầu của bạn có tới 10 mấy mục ...
và cách sắp xếp dữ liệu ... ngại ghê... chạy mất dép..hahahaha

Cám ơn bạn kieu manh đã xem qua file mình gửi
 
Upvote 0
Xin chào mọi người
Xin mọi người giúp mình code lấy dữ liệu từ các file nhưng không cần mở file lên
yêu cầu mình đã ghi trong file LAY DL theo file đính kèm
Cám ơn mọi người rất nhiều

http://php-dukkha.rhcloud.com/excel/demo/th.php

Bạn thử xem qua cái mình làm theo đường link trên, mình không dùng excel, nhưng bạn có thể copy qua lai với excel được, mới cả mình cũng vẫn chưa hiểu rõ ý của bạn cho lắm, mình hiểu đến đâu thì làm đến đó. Cách mình làm thì tuyệt đối là nhanh, bạn không phải làm một thao tác gì cả tất cả đều tự động cho bạn. Theo sự tưởng tượng và suy đoán của mình, sẽ có rất nhiều người làm một file excel của họ, so đó họ gửi về để bạn tổng hợp lại. Thay vì làm theo excel của riêng họ, thì họ có thể làm trực tiếp luôn, và nó tự động tổng hợp luôn, điều này cũng có nghĩa là bạn sẽ không còn việc để làm ... Mình mới chỉ làm được phần tổng hợp theo mã hàng, nói chung thì chỉ là demo nen chưa sát với ý bạn cho lắm...

Bạn có thể dùng phím ctrl +c và ctrl + v để copy và paste qua lại với excel.
Ưu điểm của nó là có thể copy và paste cả mảng .
Ở phần cột check có 3 chức năng insert : dùng để insert thêm một dòng mới.
update: sửa dòng.
và del là xóa dòng.
bạn muốn sửa xóa dòng nào thì ở cột check chọn chức năng tương ứng.
 
Lần chỉnh sửa cuối:
Upvote 0
http://php-dukkha.rhcloud.com/excel/demo/th.php

Bạn thử xem qua cái mình làm theo đường link trên, mình không dùng excel, nhưng bạn có thể copy qua lai với excel được, mới cả mình cũng vẫn chưa hiểu rõ ý của bạn cho lắm, mình hiểu đến đâu thì làm đến đó. Cách mình làm thì tuyệt đối là nhanh, bạn không phải làm một thao tác gì cả tất cả đều tự động cho bạn. Theo sự tưởng tượng và suy đoán của mình, sẽ có rất nhiều người làm một file excel của họ, so đó họ gửi về để bạn tổng hợp lại. Thay vì làm theo excel của riêng họ, thì họ có thể làm trực tiếp luôn, và nó tự động tổng hợp luôn, điều này cũng có nghĩa là bạn sẽ không còn việc để làm ... Mình mới chỉ làm được phần tổng hợp theo mã hàng, nói chung thì chỉ là demo nen chưa sát với ý bạn cho lắm...

Bạn có thể dùng phím ctrl +c và ctrl + v để copy và paste qua lại với excel.
Ưu điểm của nó là có thể copy và paste cả mảng .
Ở phần cột check có 3 chức năng insert : dùng để insert thêm một dòng mới.
update: sửa dòng.
và del là xóa dòng.
bạn muốn sửa xóa dòng nào thì ở cột check chọn chức năng tương ứng.

Cám ơn bạn pvh2007
Ý tưởng của bạn rất hay nhưng các file excel mà mình muốn tổng hợp được lấy từ báo cáo của phần mềm cty mình, có nghĩa là mọi người nhập trên phần mềm này và mình xuất ra file Excel để tổng hợp (file mình gửi kèm theo ở bài trên là mình chỉ mô phỏng theo công việc mình muốn làm thôi chứ thực tế dữ liệu còn nhiều hơn). đại loại công việc của mình thế này:
Bước 1: khi mình xuất báo cáo từ phần mềm kế toán của cty mình sẽ có rất nhiều file excel có cùng cấu trúc (theo vd file đính kèm là File 1, File 2, File A, File B nằm trong thư mục File), mình muốn tổng hợp các file này lại thành một file với mã hàng là duy nhất và số lượng bán được sum lại theo mã hàng đồng thời thêm một cột thể hiện tên file đã lấy và số lượng bán để trong ngoặc theo mã hàng (vd: File 1 (2), File A (1) với vd này mình sẽ hiểu là với cùng một mã đã lấy trong File 1 với số lượng bán là 2, và trong file A với sl bán là 1)
Bước 2: do file này không có tên hàng, phân nhóm, ghi chú... nên mình muốn lấy hết dữ liệu này theo mã hàng từ dm khác qua (theo vd file đính kèm là file DM nằm trong thư mục DM) file này hơi khủng có tới 11 sheet và số dòng thì... rất nhiều
Bước 3: do file tổng hợp này có c/khấu là 0 nên mình muốn lấy c/khấu từ file khác theo mã hàng (theo vd file đính kèm là file CK nằm trong thư mục CK)


Nếu tổng hợp bằng thủ công + Hàm thì tất nhiên là mình làm được rồi nhưng công việc này cứ lập đi lập lại nhiều lần mình thấy chán quá nên mình có ý tưởng viết thủ tục trên VBA để thực hiện khi cần nhưng kiến thức về VBA của mình còn hạn chế chủ yếu là tự học trên diễn đàn này và tham khảo sách của tác giả Phan Tự Hướng và Tác giả Nguyễn Khắc Duy, nhưng một tuần nay vẫn chưa đâu vào đâu


một lần nữa xin cám ơn bạn pvh2007 và toàn thể mọi người trên diễn đàn
 
Lần chỉnh sửa cuối:
Upvote 0
dạ kính gửi các anh chị
Em có nội dung cũng theo chủ đề gộp flie, gộp sheet
Nhưng có hơi gút mắt hơn tí nhờ các anh hướng dẫn
1. Trong file có nhiều sheet (10 sheet )nhưng chỉ cần lấy ra 1 sheet (vì có rất nhiều flie - khaong 100)
2. sau khi có được Sheet thì đem tổng hợp thành 1 sheet "TH"
* Form của sheet là giống nhau, cách gộp chủ yếu là Cộng (dữ liệu dạnh sanh sách - không cần tính toán)

em gửi mẫu flie ví dụ
Trong các file có các sheet chỉ lấy sheet "CSTD" rùi đem đi tổng hợp

Mong nhận được hướng dẫn của diễn đàn
cảm ơn
 

File đính kèm

  • Tong tu file va sheet.7z
    85.2 KB · Đọc: 43
Upvote 0
Đây là file được lưu với định dạng "xa xưa": Microsoft Excel 4.0 ---> Bạn Save As nó thành Microsoft Excel 79-Excel 2003 là được

Chào anh, em cũng gặp trường hợp như bạn này, số lượng file xuất từ hệ thống rất nhiều. Em dùng code convert của anh nhưng file vẫn y nguyên, vì thế không dùng code ghép file được.

Nhờ anh xem giúp em.
Sub ConvertToExl2003()

quần áo trẻ em | quan ao tre em | quần áo sơ sinh | quần áo bé trai | quần áo bé gái | bodysuit carter | quan ao so sinh | quan ao tre em nhap khau
 

File đính kèm

  • 1 (2).xls
    658 bytes · Đọc: 9
Lần chỉnh sửa cuối:
Upvote 0
Dùng ADO sẽ không cần mở file:
Mã:
Function GetData(ByVal FileName As String, ByVal SheetName As String, ByVal RangeAddress As String, _
            ByVal HasTitle As Boolean, ByVal UseTitle As Boolean)
            
  Dim rsCon As Object, rsData As Object, cat As Object, tbl As Object
  Dim tmpArr, Arr()
  Dim szConnect As String, szSQL As String, tmp As String
  Dim lCount As Long, lR As Long, lC As Long, lVer As Long
  lVer = Val(Application.Version)
  Set rsCon = CreateObject("ADODB.Connection")
  Set rsData = CreateObject("ADODB.Recordset")
  Set cat = CreateObject("ADOX.Catalog")
  
  If lVer < 12 Then
    szConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & FileName & ";" & _
                "Extended Properties=""Excel 8.0;HDR=" & IIf(HasTitle, "Yes", "No") & """;"
  Else
    szConnect = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & FileName & ";" & _
                "Extended Properties=""Excel 12.0;HDR=" & IIf(HasTitle, "Yes", "No") & """;"
  End If
  If SheetName = "" Then
    Dim Dbs  As Object, db As Object
    Set Dbs = CreateObject("DAO.DBEngine." & IIf(lVer < 12, "36", "120"))
    Set db = Dbs.OpenDatabase(FileName, False, False, "Excel 8.0;")
    tmp = db.TableDefs(0).Name
    tmp = Replace(tmp, " ", "?")
    tmp = Replace(tmp, "'", " ")
    tmp = WorksheetFunction.Trim(tmp)
    tmp = Replace(tmp, " ", "'")
    tmp = Replace(tmp, "?", " ")
    SheetName = tmp
    db.Close
    Set Dbs = Nothing: Set db = Nothing
  End If
  If Right(SheetName, 1) <> "$" Then SheetName = SheetName & "$"
  rsCon.Open szConnect
  cat.ActiveConnection = rsCon
  
  szSQL = "SELECT * FROM [" & SheetName & RangeAddress & "];"
  rsData.Open szSQL, rsCon, 0, 1, 1
  tmpArr = rsData.GetRows
  ReDim Arr(UBound(tmpArr, 2) - UseTitle, UBound(tmpArr, 1) + 1)
  If UseTitle Then
    For lC = LBound(tmpArr, 1) To UBound(tmpArr, 1)
      Arr(0, lC) = rsData.Fields(lC).Name
    Next
  End If
  For lR = LBound(tmpArr, 2) To UBound(tmpArr, 2)
    For lC = LBound(tmpArr, 1) To UBound(tmpArr, 1)
      Arr(lR - UseTitle, lC) = tmpArr(lC, lR)
    Next
  Next
  rsData.Close: Set rsData = Nothing
  rsCon.Close: Set rsCon = Nothing
  GetData = Arr
End Function

Sub Main()
  Dim vFile, FileItem, aRes, Target As Range
  Dim FileName As String, SheetName As String, RangeAddress As String
  On Error Resume Next
  vFile = Application.GetOpenFilename("Excel File, *.xls; *.xlsx; *.xlsm", , , , True)
  If TypeName(vFile) = "Variant()" Then
    SheetName = "Sheet1": RangeAddress = "A8:V10000"
    For Each FileItem In vFile
      FileName = CStr(FileItem)
      If UCase(FileName) <> UCase(ThisWorkbook.FullName) Then
        aRes = GetData(FileName, SheetName, RangeAddress, False, False)
        If IsArray(aRes) Then
          Set Target = Sheet1.Range("A60000").End(xlUp).Offset(1)
          Target.Resize(UBound(aRes, 1) + 1, UBound(aRes, 2) + 1).Value = aRes
        End If
      End If
    Next
    MsgBox "Done!"
  End If
End Sub
Cách dùng:
- Cho code trên vào Module
- Chạy sub Main
- Cửa sổ Open File hiện ra, dùng chuột chọn file đầu, bấm giữ phím Shift rồi còn file cuối ---> Bấm nút Open
- Chờ trong giây lát, khi MsgBox hiện ra báo hiệu hoàn tất, kiểm tra lại dữ liệu trong file hiện hành xem đã cập nhật chưa
-------------
Lưu ý: File TongHop phải được lưu theo định dạng XLSM (nếu lưu bằng XLSX sẽ mất sạch code)
Em có file đính kèm , muốn tổng hợp hai workbook sheet xuất kho vào sheet xuất kho TH, ko biết file có vấn đề gì ko, em thử áp dụng như code của Thầy nó ko chạy, Nhờ Thầy và các anh chị giúp đỡ ( Em đã activeX ADO rồi)
 

File đính kèm

  • Xuatkho.rar
    336 KB · Đọc: 19
Upvote 0
Các thánh ơi!
Giúp e vụ này với. hic hic :((
Em có 1 file mấu đính kèm như dưới, em muốn tổng hợp kết quả của các ngày vào 1 sheet or 1 fie riêng để có kết qảu tổng hợp cho 1 tháng
Thánh nào biết chiêu trò, chỉ or làm giúp e với
em đọc mấy bài đăng trên kia nhưng vẫn chưa hiểu cách làm ạ
Thánh nào giúp được e thì gửi lại file kết quả vào mail này giúp e nhớ
nguyenha100393@gmail.com
Cảm ơn nhiều nhiều
 

File đính kèm

  • BCKQSX THÁNG 3.xlsx
    469 KB · Đọc: 10
Upvote 0
Em có file đính kèm , muốn tổng hợp hai workbook sheet xuất kho vào sheet xuất kho TH, ko biết file có vấn đề gì ko, em thử áp dụng như code của Thầy nó ko chạy, Nhờ Thầy và các anh chị giúp đỡ ( Em đã activeX ADO rồi)
Em thử đoạn này báo lỗi ở open, code trên cũng là sưu tầm trên GPE
Mã:
Sub ADO()
    Dim lsSQL As String, Cnn As Object, Fso As Object, Fi As Object, lrs As Object
    Set Fso = CreateObject("Scripting.FileSystemObject")
    Set Cnn = CreateObject("ADODB.Connection")
    Set lrs = CreateObject("ADODB.Recordset")
    With Fso
        For Each Fi In .GetFolder(ThisWorkbook.Path).Files
            If Fi.Name <> ThisWorkbook.Name Then
                MsgBox Fi.Path
                With Cnn
                    If Val(Application.Version) < 12 Then
                        .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Fi.Path & ";Extended Properties=""Excel 8.0;HDR=No"";"
                    Else
                        .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Fi.Path & ";Extended Properties=""Excel 12.0;HDR=No"";"
                    End If
                    .Open
                End With
                lsSQL = "Select * From [Sheet1$B3:Z65536]"
                lrs.Open lsSQL, Cnn
                Range("B65536").End(3).Offset(1, 0).CopyFromRecordset lrs
                Cnn.Close
            End If
        Next
    End With
    Set lrs = Nothing
    Set Cnn = Nothing
    Set Fso = Nothing
End Sub
Anh chị nào có giải pháp hay thì giúp em
 
Upvote 0
file của em có mấy sheet ẩn, em không để ý, em xóa bớt sheet, đổi lại tên code Thầy ndu chạy ngon rồi,
Cảm ơn mọi người đã quan tâm
 
Upvote 0
Chào Thầy và các anh chi !
Em muốn
tổng hợp du lieu từ tất cả các sheet trong nhiều file vào một sheet tổng hợp. vậy code này phải sửa như thế nào?
nhờ
Thầy và các anh chi giúp.

Xinh chân thành cảm ơn !!
 

File đính kèm

  • TONG HOP BAO CAO.rar
    769.4 KB · Đọc: 71
Upvote 0
Web KT
Back
Top Bottom