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

Đối với các bạn làm trong các phòng ban kinh doanh, admin, kế toán hay kiểm toán tài chính. Hàng ngày chắc hẳn các bạn sẽ nhận được rất nhiều file Excel từ các bộ phận liên quan gửi đến để tổng hợp dữ liệu. Do vậy làm cách nào để tổng hợp dữ liệu từ nhiều file Excel vào 1 file không cần mở file là câu hỏi mà mình tin rằng đa số các bạn đều đặt ra. Dưới dây mình sẽ chia sẻ cho các bạn một số cách cơ bản để ứng dụng trong công việc.

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 trên. 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.

Điểm mạnh của code VBA đó là người dùng chỉ viết 1 lần duy nhất để thiết lập ban đầu, sau đó chỉ cần click một nút được thiết lập để run – chạy đoạn code đã thiết lập sẵn đó.

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 thứ 2 đơn giản hơn.

Cách tổng hợp dữ liệu từ nhiều file Excel bằng Power Query

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.

Để giải quyết vấn đề trên, các bạn có thể tham khảo bài viết Cách cập nhật dữ liệu từ nhiều file Excel về một file Excel duy nhất mình có chia sẻ trên website. 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. Microsoft Power Query phát triển trong thời gian gần đây, nhằm giúp đại đa số người dùng có thể tăng hiệu quả công việc, thay vì lặp lại các thao các hàng ngày. Thì bạn có thể sử dụng Power Query như một công cụ cứu cánh, tiết kiệm thời gian.

Vậy học Power Query ở đâu?

Hiện tại Uniace, website của chúng mình có các cấp độ giúp các bạn tăng hiệu quả làm việc. Việc học Power Query cần được tiếp cận bao gồm lý thuyết và bài tập. Các bài tập của Uniace thiết kế giúp các bạn học viên có thể giải quyết gần như tất cả các vấn đề mà bạn gặp phải trong công việc.

Bên cạnh đó, chúng tôi là một đội ngũ làm việc nhiều năm trong lĩnh vực phân tích dữ liệu, dự báo trong kinh doanh. Do vậy, khi tham gia đăng ký học các khóa học của chúng tôi, bạn có cơ hội tham gia vào cộng đồng phân tích – nhằm giúp đỡ, giải quyết các vấn đề tỏng công việc mà các bạn gặp phải trong ngày.

Các bạn có thể tham khảo khóa học nền tảng để bắt đầu ngay việc nâng cấp giá trị của bạn đối với doanh nghiệp, đồng thời tăng hiệu suất trong công việc hàng ngày.

Trả lời