Gộp nhiều file thành file tổng và chèn thêm 1 cột là tên file !

Liên hệ QC

Loan Châu

Thành viên hoạt động
Tham gia
17/6/17
Bài viết
136
Được thích
39
Giới tính
Nữ
Kính chào quý anh, chị !
Hiện em có một khó khăn trong công việc, em rất mong nhận được sự giúp đỡ của quý anh chị !
Khó khăn của em đó là em có rất nhiều file có cấu trúc giống nhau em muốn gộp thành file tổng ( cái này em tìm trên diễn đàn đã có code gộp tổng) nhưng cái khó là khi gộp thành file tổng em muốn biết là dữ liệu thuộc file nào. Vì thế em muốn khi gộp tổng thì chèn them 01 cột nữa là lấy luôn tên file.
em đã nêu cụ thể trong file đính kèm. em rất mong quý anh chị giúp đỡ cho em với ạ !
em cảm ơn quý anh chị nhiều nhiều trước !
Trân trọng,
Loan Châu
 

File đính kèm

  • Help.rar
    1.6 MB · Đọc: 71
Lần chỉnh sửa cuối:
Kính chào quý anh, chị !
Hiện em có một khó khăn trong công việc, em rất mong nhận được sự giúp đỡ của quý anh chị !
Khó khăn của em đó là em có rất nhiều file có cấu trúc giống nhau em muốn gộp thành file tổng ( cái này em tìm trên diễn đàn đã có code gộp tổng) nhưng cái khó là khi gộp thành file tổng em muốn biết là dữ liệu thuộc file nào. Vì thế em muốn khi gộp tổng thì chèn them 01 cột nữa là lấy luôn tên file.
em đã nêu cụ thể trong file đính kèm. em rất mong quý anh chị giúp đỡ cho em với ạ !
em cảm ơn quý anh chị nhiều nhiều trước !
Trân trọng,
Loan Châu
Bạn thử cái này xem sao:
Tách, gộp dữ liệu trên nhiều file
 
Upvote 0
Kính chào quý anh, chị !
Hiện em có một khó khăn trong công việc, em rất mong nhận được sự giúp đỡ của quý anh chị !
Khó khăn của em đó là em có rất nhiều file có cấu trúc giống nhau em muốn gộp thành file tổng ( cái này em tìm trên diễn đàn đã có code gộp tổng) nhưng cái khó là khi gộp thành file tổng em muốn biết là dữ liệu thuộc file nào. Vì thế em muốn khi gộp tổng thì chèn them 01 cột nữa là lấy luôn tên file.
em đã nêu cụ thể trong file đính kèm. em rất mong quý anh chị giúp đỡ cho em với ạ !
em cảm ơn quý anh chị nhiều nhiều trước !
Trân trọng,
Loan Châu
Bạn chạy code sau thử nhé:

Mã:
Sub Gop_HLMT()
    Dim cn As Object
    Set cn = CreateObject("ADODB.connection")
    Dim strPath As String
    strPath = SuaDuongDanDenFolderChuaFileCanGop
    Dim fso, folder, file, files
    Dim iRw As Integer
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set folder = fso.GetFolder(strPath)
    Set files = folder.files
    For Each file In files
        cn.Open ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & file.Path & ";Extended Properties=""Excel 12.0;HDR=No""")
        iRw = Sheet1.Range("A65000").End(xlUp).Row + 1
        Sheet1.Range("A" & iRw).CopyFromRecordset cn.Execute("select F1,F2,F3,'" & file.Name & "' from [A1:C65000] where F1 is not null")
        cn.Close
    Next
End Sub
 
Upvote 0
Mà cho xin được hỏi: Sao cần tạo ra nhiều file làm vậy?
:eek::eek:
Chào bạn Hoang2013,
Cái này là do mấy anh trong cty dùng phần mềm xuất ra nhiều file .TXT rồi bảo em gộp file lại file Excel rồi yêu cầu như vậy.
Em phải ngồi chuyển từng file .TXT sang Excel rồi gộp từng file từng file. Sau đó em làm mãi làm mãi mõi tay quá. hu hu nên em mới lên đây nhờ các anh chị và các bạn giúp đỡ.
Các anh chị và các bạn trên này tuyệt vời quá đã giúp em nhiệt tình nhiệt tình
 
Upvote 0
Bạn chạy code sau thử nhé:

Mã:
Sub Gop_HLMT()
    Dim cn As Object
    Set cn = CreateObject("ADODB.connection")
    Dim strPath As String
    strPath = SuaDuongDanDenFolderChuaFileCanGop
    Dim fso, folder, file, files
    Dim iRw As Integer
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set folder = fso.GetFolder(strPath)
    Set files = folder.files
    For Each file In files
        cn.Open ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & file.Path & ";Extended Properties=""Excel 12.0;HDR=No""")
        iRw = Sheet1.Range("A65000").End(xlUp).Row + 1
        Sheet1.Range("A" & iRw).CopyFromRecordset cn.Execute("select F1,F2,F3,'" & file.Name & "' from [A1:C65000] where F1 is not null")
        cn.Close
    Next
End Sub

Thưa anh Hai Lúa Miền Tây !
Trước hết em cảm ơn anh that nhiều về sự nhiệt tình giải quyết khó khan cho em.
Không biết có phải em thao tác không đúng không mà code của anh không chạy được.
em đã để cùng vào các file cần tổng hợp rồi Alt +F11 và insert code của anh vào nhưng vẫn không chạy được anh à.
 
Upvote 0
Chạy thử xong nên đưa luôn kết quả. :)
Anh Befaint ơi,
em cảm ơn anh nhiều nhiều luôn anh nhé! vì khó khăn nào của em anh cũng đã rất nhiệt tình giúp em.
Code của anh chạy rất đúng ý em luôn nhưng có điều là khi em tổng hợp khoảng vài tram file nó chạy hơi chầm chậm một tí, không biết có phải do máy em " cùi bắp" không nữa. hihi
Code của anh rất là quý giá với em .
 
Upvote 0
Chào bạn Hoang2013,
Cái này là do mấy anh trong cty dùng phần mềm xuất ra nhiều file .TXT rồi bảo em gộp file lại file Excel rồi yêu cầu như vậy.
Em phải ngồi chuyển từng file .TXT sang Excel rồi gộp từng file từng file. Sau đó em làm mãi làm mãi mõi tay quá. hu hu nên em mới lên đây nhờ các anh chị và các bạn giúp đỡ.
Các anh chị và các bạn trên này tuyệt vời quá đã giúp em nhiệt tình nhiệt tình
Thế tại sao không đưa mấy cái pay tê ích tê mẫu của mấy anh dỡ hơi xuất ra lên đây -> ra kết quả luôn. Không đỡ mỏi tay hơn à?
 
Upvote 0
Thưa anh Hai Lúa Miền Tây !
Trước hết em cảm ơn anh that nhiều về sự nhiệt tình giải quyết khó khan cho em.
Không biết có phải em thao tác không đúng không mà code của anh không chạy được.
em đã để cùng vào các file cần tổng hợp rồi Alt +F11 và insert code của anh vào nhưng vẫn không chạy được anh à.
Bạn phải sửa đường dẫn đến folder chứa các file Excel nhé.
Ví dụ:
strPath = "D:\Gop\Help" 'SuaDuongDanDenFolderChuaFileCanGop
 
Upvote 0
add in của bạn chỉ hoạt động được trên excel 32 bit, còn trên excel 64 bit không hoạt động được, bạn có thể sửa lại để hoạt động trên 64 không vậy.
File này không có hàm API nào hết làm gì có chuyện Excel 64 bit không hoạt động. Mà mã nguồn mở ai muốn làm gì lam.
 
Upvote 0
em cảm ơn anh nhiều trước nhé! em áp dung vào khó khan của em, có gì em lại nhờ anh giúp anh nhé!
F
File
Bạn phải sửa đường dẫn đến folder chứa các file Excel nhé.
Ví dụ:
em cảm ơn anh Hai Lúa Miền Tây nhiều nhiều nhé! em chạy được rồi code rồi .
 
Upvote 0
Chào bạn Hoang2013,
Cái này là do mấy anh trong cty dùng phần mềm xuất ra nhiều file .TXT rồi bảo em gộp file lại file Excel rồi yêu cầu như vậy.
Em phải ngồi chuyển từng file .TXT sang Excel rồi gộp từng file từng file. Sau đó em làm mãi làm mãi mõi tay quá. hu hu nên em mới lên đây nhờ các anh chị và các bạn giúp đỡ.

Anh Befaint ơi,
em cảm ơn anh nhiều nhiều luôn anh nhé! vì khó khăn nào của em anh cũng đã rất nhiệt tình giúp em.
Code của anh chạy rất đúng ý em luôn nhưng có điều là khi em tổng hợp khoảng vài tram file nó chạy hơi chầm chậm một tí, không biết có phải do máy em " cùi bắp" không nữa. hihi
Code của anh rất là quý giá với em .

Nếu con số tới mấy trăm mà bắt người ta làm bằng tay thì là do mấy thằng cha đó mắc bệnh sa đít (sadistic).
Cách làm đúng đắn là người làm chịu khó ghi luôn tên file thành 1 cột. Bạn chỉ việc dùng lệnh DOS để gộp các files lại thành 1 rồi import vào excel.
Nếu cơ quan bạn có một người làm mạng hoặc hệ thống thì nhờ ngừoi ta viết cho 1 cái script (VBScript, JavaScript, hoặc Powershell) tổng hợp files rồi bạn import.

Bài này dùng code như anh HLMT (bài #5) cũng được. Nhưng đó là giải pháp của dân chuyên nghiệp. Cái trách nhiệm gộp files đúng ra không nên gán cho ngừoi không biết code.
Nếu bạn phải lãnh trách nhiệm này thì nên đòi tăng lương. Công việc chuyển đổi dữ liệu (Data Migration) là công việc tương đối cao cấp.
 
Upvote 0
Nếu con số tới mấy trăm mà bắt người ta làm bằng tay thì là do mấy thằng cha đó mắc bệnh sa đít (sadistic).
Cách làm đúng đắn là người làm chịu khó ghi luôn tên file thành 1 cột. Bạn chỉ việc dùng lệnh DOS để gộp các files lại thành 1 rồi import vào excel.
Dạ tại em tưởng diễn đàn này chỉ có chức năng tổng hợp dữ liệu từ file Excel thôi, nên em mới cố gắng import mấy trăm tét files vào mấy trăm files excel ạ.
 
Upvote 0
Anh Befaint ơi,
do máy tính của em cũ quá rồi, chứ code của anh đưa qua máy mấy anh cùng cty code chạy mấy tram file cứ vèo vèo.
Một lần nữa em cảm ơn anh rất nhiều anh nhé!
Lưu ý 1 File Excel 2003 chỉ lưu với số lượng dòng là 65.536 dòng thôi nhé. File kết quả của bạn lưu ở dạng 2003 nên sẽ bị vấn đề nếu hàng trăm file đó cộng lại vượt quá số dòng trên.
 
Upvote 0
Thế tại sao không đưa mấy cái pay tê ích tê mẫu của mấy anh dỡ hơi xuất ra lên đây -> ra kết quả luôn. Không đỡ mỏi tay hơn à?
chào bạn Hpkhuong !
Mình cảm ơn nhã ý của bạn và sẽ rất biết ơn quý anh chị và các bạn giúp cho mình từ file TXT tổng hợp thành file Tổng excel có chèn thêm cột tên file.
Mình gởi kèm các file .TXT
 

File đính kèm

  • File_TXT.rar
    135.4 KB · Đọc: 39
Upvote 0
Web KT
Back
Top Bottom