Xu Hướng 2/2023 # Cách Ghép Nhiều File Excel Thành 1 File # Top 4 View | Rafs.edu.vn

Xu Hướng 2/2023 # Cách Ghép Nhiều File Excel Thành 1 File # Top 4 View

Bạn đang xem bài viết Cách Ghép Nhiều File Excel Thành 1 File được cập nhật mới nhất trên website Rafs.edu.vn. Hy vọng những thông tin mà chúng tôi đã chia sẻ là hữu ích với bạn. Nếu nội dung hay, ý nghĩa bạn hãy chia sẻ với bạn bè của mình và luôn theo dõi, ủng hộ chúng tôi để cập nhật những thông tin mới nhất.

Link hướng dẫn bằng video: https://www.youtube.com/watch?v=bazqfJGwLTM&t=130s

Giả sử mình có 2 danh sách nhân viên như hình dưới, bạn nên cho vào cùng 1 thư mục để dễ thao tác.

Danh sách 1

Danh sách 2

Cách 1: Sử dụng code VBA

Bước 1: Bạn tạo thêm 01 file đặt tên là Danh sách tổng, mở file đó ra, bấm tổ hợp phím Alt + F11 (đối với Laptop là Fn + Alt +F11). Chọn tab Insert rồi chọn Module.

Bước 2: Bạn dán đoạn code sau vào Module đó rồi Save lại.

Sub GopFileExcel() Dim FilesToOpen Dim x As Integer On Error GoTo ErrHandler Application.ScreenUpdating = False FilesToOpen = Application.GetOpenFilename _ (FileFilter:="Microsoft Excel Files (*.xlsx), *.xlsx", MultiSelect:=True, Title:="Files to Merge") If TypeName(FilesToOpen) = "Boolean" Then MsgBox "No Files were selected" GoTo ExitHandler End If x = 1 While x <= UBound(FilesToOpen) chúng tôi Filename:=FilesToOpen(x) Sheets().Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count) x = x + 1 Wend ExitHandler: Application.ScreenUpdating = True Exit Sub ErrHandler: MsgBox Err.Description Resume ExitHandler End Sub

Sub gopsheet() Dim J As Integer On Error Resume Next Sheets(1).Select Worksheets.Add Sheets(1).Name = "Combined" Sheets(2).Activate Range("A1").EntireRow.Select chúng tôi Destination:=Sheets(1).Range("A1") For J = 2 To Sheets.Count Sheets(J).Activate Range("A1").Select Selection.CurrentRegion.Select Selection.Offset(1, 0).Resize(Selection.Rows.Count - 1).Select chúng tôi Destination:=Sheets(1).Range("A65536").End(xlUp)(2) Next End Sub

– Hệ thống sẽ gộp các file Excel con vào các Sheet trong file Tổng. 

Cách 2: Sử dụng tính năng Move or copy

Với cách này bạn có thể sao chép Sheet từ file này thành 1 Sheet của file khác. Ví dụ mình sẽ sao chép Sheet 1 của Danh sách 2 Vào file Danh sách 1. 

Bước 2: 

– Tại dòng To book, chọn Danh sach 1

– Trong phần Before sheet thì bạn chọn vị trí Sheet 

Sau khi gộp thì các file Excel sẽ thành các Sheet trong file Tổng. Bạn có thể áp dụng code gộp sheet vào cách 2 cho hoàn thiện.

SHARE THIS

Tổng Hợp Dữ Liệu Từ Nhiều File Excel Vào 1 File Không Cần Mở File

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.

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 đề trong 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.

Công Thức Chuyển 1 Cột Thành Nhiều Cột Trong Excel

CÔNG THỨC

Cách đầu tiên bạn sẽ dùng OFFSET với các bước như sau:

Bước 1: Tại ô C1, bạn tiến hành điền công thức: =OFFSET($A$1,COLUMNS($A1:A1)-1+(ROWS(A$1:A1)-1)*5,0)

Bước 2: Sử dụng thao tác fill để thực hiện kéo thả thành mảng 5×3.

GIẢI THÍCH

Ở ví dụ này, bạn không tạo ra một mảng 5×3 mà thay vào đó là thực hiện lập một công thức mà khi fill xuống sẽ có thể tự tham chiếu tới 1 ô trong cột mà bạn có thể kiểm soát được khoảng cách giữa các ô với nhau. Ví dụ như, trong mảng 5×3 này, khi thực hiện fill xuống thì khoảng cách là 5 đơn vị. Trong khi đó nếu là mảng 3×5 thì sẽ là 3 đơn vị.

Hàm OFFSET trong trường hợp này sẽ hoạt động như sau:

Bước 1: Tiến hành chọn ô đầu tiên của cột (A1).

Bước 2: Tại dòng tham chiếu (rows), hãy xác định ô để tham chiếu đầu tiên. Lúc này, toàn bộ vùng rows sẽ được thể hiện bằng công thức sau: =COLUMNS($A1:A1)-1+(ROWS(A$1:A1)-1)*số cột. Logic ở đây sẽ là:

Khi đi trong 1 hàng từ trái sang phải, tăng 1 đơn vị. Khi đi trong 1 cột từ trên xuống dưới, tăng theo khoảng cách đơn vị.

Hàm OFFSET (giá trị dùng để tham chiếu, lệch mấy hàng, lệch mấy cột) được sử dụng trong trường hợp này, bởi vì ta tra cứu trong cùng cột, giá trị cột để 0.

Đối với giá trị hàng:

Để đi từ trái sang phải chỉ tăng 1 đơn vị, bạn tiến hành thiết lập công thức dùng hàm COLUMNS – hàm trả về số cột của một vùng dữ liệu. Tại ô đầu tiên, lấy chính ô đấy, bạn bắt đầu với COLUMNS($A1:A1)=0, nhưng bởi COLUMNS sẽ trả về 1 nên bạn cần thêm vào -1. Một cách cơ bản để bạn hiểu như sau:

Đối với giá trị cột:

Sau khi thực hiện thiết lập đi từ trái sang phải chỉ tăng một đơn vị, bạn sẽ tiếp tục thiết lập đi theo cột. Nói cách khác là mỗi lần xuống dòng, bạn sẽ nhân khoảng cách lên một số lần tương ứng.

Vậy công thức bạn cần thiết lập sẽ tuân theo nguyên tắc sau: đi từ trên xuống tăng 1 đơn vị, sau đó nhân với số lần. Hay nói cách khác, công thức ở đây sẽ là: =ROWS(A$1:A1)-1)*số lần.

Cuối cùng, bạn thực hiện cộng hai giá trị COLUMNS và ROWS lại với nhau. Kết quả sẽ thể hiện như trên đầu bài.

GIỚI HẠN CỘT

Tuy nhiên, khi bạn thực hiện kéo cột quá tay theo hàng, lúc này có thể thấy rằng các giá trị sẽ vẫn tiếp tục hiện ra tăng tiến 1 đơn vị

Theo đúng như mục đích bạn cần là tách từ một cột thành nhiều cột, để giới hạn cột (Ví dụ bảng 3×5) bạn có thể làm theo các bước sau: Bước 1: Chèn giới hạn bảng:

Tùy vào cách nhập loại bảng mà bạn có thể so sánh bằng các công thức khác nhau. Ở đây chúng tôi sử dụng hàm Left để lấy ra giá trị 5 từ 5×3.

Công thức cụ thể trong trường hợp này sẽ là:

Vậy là bạn đã hoàn thành xong việc tách một cột thành nhiều cột trong đó sự nhảy đơn vị diễn ra ở các hàng rồi đấy!

Lần này, chúng tôi sẽ dùng ví dụ được ứng dụng nhiều hơn trong thực tế: Trình bày lại một bảng dữ liệu copy về từ trên mạng.

CHUYỂN MỘT CỘT THÀNH NHIỀU CỘT BẰNG CÔNG THỨC OFFSET TRONG BÀI HỌC TRƯỚC

Đối với dữ liệu lần này, bạn sẽ thay vì đi từ trái sang phải tăng 1 đơn vị, đi từ trên xuống nhảy đơn vị thì hãy làm ngược lại: đi từ trái sang phải nhảy đơn vị, đi từ trên xuống tăng 1 đơn vị.

Ta sử dụng công thức đơn giản hơn rất nhiều như sau:

=OFFSET($A$1,COLUMNS($A1:A1)-1+(ROWS(A$1:A1)-1)*5,0)

Để đảo lại, bạn không đổi vị trí ROWS và COLUMNS, mà thay vào đó là thực hiện thay đổi chỉ số hệ số, tiếp tục chuyển *5 sang COLUMNS. Khi đó, công thức mới sẽ thành:

=OFFSET($A$1,(COLUMNS($A1:A1)-1)*5+(ROWS(A$1:A1)-1),0)

Áp dụng vào bài này, thay đổi tọa độ, thay đổi hệ số, bạn sẽ có kết quả như sau:

CHUYỂN MỘT CỘT THÀNH NHIỀU CỘT BẰNG CÔNG THỨC INDEX

Ngoài cách làm với OFFSET, chúng tôi xin giới thiệu đến các bạn ứng dụng của hàm INDEX trong trường hợp này như sau:

Để tiến hành chuyển một cột thành nhiều cột mà sự nhảy đơn vị diễn ra theo hàng ngang, tại ô C1 bạn có thể dùng INDEX kết hợp ROWS và COLUMNS như công thức sau:

=INDEX($A$1:$A$15,ROW(C1)+(5*(COLUMNS($C$1:C$1)-1)))

Với 5 là số dòng.

Đánh giá bài viết

Cách Mở File Excel Bị Khóa Đơn Giản 100% Thành Công

Cách mở file excel bị khóa chi tiết đơn giản nhất.

Chẳng may một hôm bạn download bài tập excel,… gì đó trên mạng về mà tác giả chỉ cho phép bạn xem thôi chứ không cho phép bạn thay đổi nội dung hay chỉnh sửa bất kỳ điều gì trong file đó nhằm tăng tính bảo mật do đó tác giả để đặt mật khẩu file excel vì thế bạn không có quyền để truy xuất chỉnh sửa hay thay đổi. Vậy để mở khóa file excel khi bạn không biết mật khẩu thì hãy làm như sau:

Bước 1: Đầu tiên bạn mở Visual Basic Editor excel lên:

Sub PasswordBreaker() If ActiveSheet.ProtectContents = False Then MsgBox "Sheet '" & chúng tôi & "' is unprotected!", vbInformation Else If MsgBox("Sheet '" & chúng tôi & "' is protected, do you want to unprotect it?", _ vbYesNo + vbQuestion, "Unprotect Active Sheet") = vbNo Then Exit Sub Dim i As Integer, j As Integer, k As Integer Dim l As Integer, m As Integer, n As Integer Dim i1 As Integer, i2 As Integer, i3 As Integer Dim i4 As Integer, i5 As Integer, i6 As Integer On Error Resume Next For i = 65 To 66: For j = 65 To 66: For k = 65 To 66 For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66 For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66 For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126 ActiveSheet.Unprotect Chr(i) & Chr(j) & Chr(k) & _ Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _ Chr(i4) & Chr(i5) & Chr(i6) & Chr(n) Next: Next: Next: Next: Next: Next Next: Next: Next: Next: Next: Next If ActiveSheet.ProtectContents = False Then MsgBox "Sheet '" & chúng tôi & "' is unprotected!", vbInformation End If End Sub

Cập nhật thông tin chi tiết về Cách Ghép Nhiều File Excel Thành 1 File trên website Rafs.edu.vn. Hy vọng nội dung bài viết sẽ đáp ứng được nhu cầu của bạn, chúng tôi sẽ thường xuyên cập nhật mới nội dung để bạn nhận được thông tin nhanh chóng và chính xác nhất. Chúc bạn một ngày tốt lành!