Xem Nhiều 4/2024 # Cách Tổng Hợp Dữ Liệu Từ Nhiều File Excel Về Một File Excel # Top 0 Yêu Thích

Trong công việc hàng ngày, các bạn sẽ gặp trường hợp nhận được rất nhiều file Excel từ nhiều nguồn, hoặc phòng ban khác gửi để cập nhập trong báo cáo, hoặc phải tổng hợp báo cáo tháng theo từng ngày.

Vậy, làm sao để cập nhật dữ liệu từ nhiều file excel về một file excel duy nhất một cách tự động. Bài viết này sẽ chia sẻ giúp các bạn một trong những cách làm đơn giản nhất. Thay vì phải viết code VBA phức tạp, thì chỉ với vài thao tác thiết lập ban đầu với Power Query bạn có thể dự động toàn bộ file dữ liệu cho các lần tiếp theo.

Lấy dữ liệu từ file Excel khác thông qua VBA

Thông thường, đối với nhiều người sử dụng Excel lâu năm sẽ nghĩ ngay đến VBA để giải quyết tình huống ghép nhiều hoặc ghép 2 file excel thành 1. VBA là một ngôn ngữ lập trình trên Excel, mục đích của VBA nhằm tự động hóa các thao tác mà người dùng Excel bằng cách viết một đoạn code.

Tuy nhiên, điểm yếu của VBA đó là người dùng rất khó tiếp cận. Bản chất của VBA là một ngôn ngữ lập trình, yêu cầu sự logic và người học vô cùng cần mẫn, chuyên sâu mới có thể viết được. Thông thường ít nhất mất 3 tháng để các bạn có thể viết được ngôn ngữ này, nhưng chỉ sau 1 tháng không sử dụng bạn có thể quên luôn cách viết.

Bên cạnh đó các file cần tổng hợp cần có cấu trúc giống nhau về tên cột, số lượng cột, dòng và vùng dữ liệu. Nếu file khác số lượng cột thì code VBA sẽ không hiểu và báo lỗi không thực hiện được.

Phía dưới là đoạn code VBA dành cho bạn nào mong muốn được biết:

Sub merge_all()

    Dim cnn As ADODB.Connection

    Dim rst As ADODB.Recordset

    Dim s As Worksheet

    Dim I As Long, d As Long, CountFiles As Long, J As Long

    SheetName = “Sheet1” & “$”  — Sheet1 là tên sheet của file bạn cần tổng hợp

    RangeAddress = “A1:U1000” — đây là vùng dữ liệu của sheet mà bạn cần tổng hợp

    Dim files As Variant

    files = Application.GetOpenFilename(, , , , True)

    If VarType(files) = vbBoolean Then Exit Sub

    Set s = Sheets(“Master”) – tên sheet này tuy bạn chọn

    For d = LBound(files) To UBound(files)

        Set cnn = GetConnXLS(files(d))

        If cnn Is Nothing Then

            MsgBox “kiem tra lai du lieu file: ” & files(d)

            Exit Sub

        End If

        Set rst = cnn.Execute(“SELECT *,””” & files(d) & “”” as [From File] FROM [” & SheetName & RangeAddress & “]”)

        CountFiles = CountFiles + 1

        If CountFiles = 1 Then

            For J = 0 To rst.Fields.Count – 1

                s.Cells(3, J + 1).Value = rst.Fields(J).Name

            Next J

        End If

        I = I + s.Range(“A” & 4 + I).CopyFromRecordset(rst) – A4 hiện tại là ô dán dữ liệu vào, sửa nếu thay đổi

        rst.Close

        Set rst = Nothing

        cnn.Close

        Set cnn = Nothing

    Next d

    MsgBox “hoan thanh”

End Sub

Không dễ để viết được đoạn code phía trên, ghi nhớ cho lần sau đúng không các bạn! Do vậy, trong bài viết này mình sẽ chia sẻ các bạn thêm cách đơn giản hơn. Bạn sẽ biết cách tổng hợp dữ liệu từ nhiều file Excel bằng Power Query. Bạn có thể ghép 2 file excel thành 1 hoặc nhiều hơn một cách dễ dàng.

Power Query là một công cụ mới được phát triển bởi Microsoft trong khoảng 5 năm gần đây. Tuy nhiên, ở Việt Nam việc được nhắc đến, hay sử dụng còn rất hạn chế. Các tài liệu về Power Query chủ yếu là bằng tiếng anh.

Do vậy, một số lượng lớn người sử dụng chưa tiếp cận được.

Giống với VBA, thì Power Query giúp người dùng có thể tự động hóa dữ liệu thông qua việc thiết lập duy nhất 1 lần ban đầu.

Điểm khác của Power Query đó là người dùng không cần biết viết ngôn ngữ lập trình khó hiểu như VBA, bạn chỉ cần thao tác chọn – thả vô cùng đơn giản, tiết kiệm thời gian, đơn giản dễ học. Đây chính là điểm ưu việt của Power Query so với VBA.

Với cách làm này, bạn có thể xử lý rất nhiều tình huống cụ thể trong công việc mà không cần biết đến coding.

Cách tổng hợp dữ liệu từ nhiều file Excel về một sheet Excel duy nhất

Trường hợp đầu tiên mình muốn giới thiệu các bạn cách tổng hợp dữ liệu từ các nguồn khác nhau với template của mỗi file là giống nhau. Mục tiêu của các bạn đó là tất cả các file nhận được sẽ tự động trở thành một sheet tổng hợp cho mục đích cá nhân, ví dụ như dùng để tổng hợp danh sách nhân viên theo từng tháng, hoặc báo cáo doanh số theo từng tháng, năm.

Bước đầu tiên: tổng hợp, download toàn bộ các file mà các bạn nhận được bỏ chung vào 1 folder. Đối với cách này, sẽ không phân biệt tên của file, quan trọng các file có chung template, tức là có tiêu đề giữa các file giống nhau là được.

Bước 2:Mở 1 file excel mới dùng để tổng hợp toàn bộ các file mà các bạn nhận được và thao tác lần lượt như sau:

Bước 3: Chọn nguồn dữ liệu folder mà các bạn đã bỏ tất cả các file cần cập nhập theo các thao tác

Sau khi chọn Transform data, thì bạn sẽ vào bên trong môi trường của Power Query.

Tiếp sau đó mình sẽ lấy data của tất cả các file vào cùng 1 sheet bằng cách sau:

Bước 5: Sau đó bạn tìm cột có tên là Custom thực hiện các bước như hình vẽ phía dưới để kéo data về.

Lý do vì sao chọn sheet, vì một số file bạn nhận được trong tương lai của các phòng ban không được định dạng table. Do vậy, tên sheet gần như không thay đổi theo thời gian. Nên đây là cách để tránh trường hợp dữ liệu không hiểu.

Bước 8: Sau đó bạn xổ data từ con trỏ ngay tại B1 trong hình vẽ và ấn OK. Mục đích bước này để trích xuất toàn bộ dữ liệu từ tất cả các file theo các cột cần lấy. Bạn có thể bỏ chọn những cột mà bạn nghĩ không cần thiết, hoặc có thể remove column ở bước tiếp theo

Bước 9: Sau đó dữ liệu được lấy ra, bạn cần đưa dòng đầu tiên của dữ liệu thành cột tiêu đề. Bạn thực hiện các bước như trong hình.

Vậy là toàn bộ dữ liệu các bạn cần tổng hợp đã nằm trong 1 sheet. Bây giờ mình cần đưa ra giao diện Excel thuần túy.

Cách tổng hợp dữ liệu từ nhiều file Excel thành một file Excel có nhiều sheet

Trường hợp thứ 2: Tổng hợp dữ liệu từ các nguồn khác nhau với template mỗi file là khác nhau. Mục tiêu nhằm thiết lập công thức giữa các file với nhau để ra mục tiêu cụ thể.

Bước 1: Download file mà các bạn nhận được, bỏ chung vào 1 folder nhằm mục đích dễ quản lý. Các file download này phải thống nhất tên file để phần mềm có thể nhận diện cho lần tiếp theo

Bước 2. Mở file mà bạn cần tổng hợp toàn bộ các file mà bạn nhận được thành các sheet khác nhau để thiết lập công thức:

Bước 3: Chọn tên file mà bạn muốn cập nhập hàng ngày. Lưu ý, tên file không thay đổi giữa các lần cập nhập. Nếu file mới được bỏ vào folder thì file cũ phải xóa đi. Đồng thời tên của file phải giữa nguyên so với lần đầu tiên thiết lập.

Bước 4. Thực hiện thao tác load file ra sheet. Lưu ý, các file bạn chọn có thể file được định dạng table hoặc không, do đó nên chọn tên sheet để load ra. Như hình phía dưới thì table sẽ có ký hiệu như Table1 và tên sheet sẽ có ký hiệu như DATA.

Dữ liệu các bạn chọn được load ra sheet của file Excel.

Lặp lại các thao tác trên tương ứng với số lượng file cần cập nhập vào 1 sheet. Các bước trên chỉ thực hiện 1 lần. Ngày hôm sau, nếu có các file mới. Các bạn chỉ việc download và bỏ vào folder với tên file không đổi so với ngày hôm trước, xóa file cũ đi. Để báo cáo được cập nhập.

Bước 5: Cập nhập các file mới nhận được hàng ngày bằng cách

Vậy là toàn bộ các file mà hàng ngày bạn phải copy thủ công vào từng sheet đã được cập nhập tự động. Các thao tác thiết lập ban đầu chỉ làm 1 lần duy nhất. Việc này sẽ tiết kiệm được rất nhiều thời gian cho các bạn

Các cách làm việc trên ứng dụng Power Query trong Excel để tự động hóa dữ liệu. Vậy để học Power Query ở đâu? Tại Uniace chúng tôi có các khóa học từ cơ bản đến nâng cao cho các bạn, nhằm tự động hóa dữ liệu. Vui lòng tham khảo khóa học nền tảng của chúng tôi.

Làm sao để học power, học power bi ở đâu hiệu quả

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

Tham khảo các bài viết hữu ích khác của Uniace tại Chuyên Đề Excel: