Tổng hợp dữ liệu các bảng không giống nhau

Liên hệ QC

vanaccex

Thành viên tiêu biểu
Tham gia
8/7/18
Bài viết
454
Được thích
305
Giới tính
Nữ
Em có 1 file dữ liệu cần tổng hợp dữ liệu từ các sheet T1. T2. T3 lên sheet TH. Tuy nhiên các bảng ở sheet T1, T2, T3 lại không giống nhau giữa các vùng dữ liệu trong đó, Em muốn hỏi anh chị là có cách nào tổng hợp dữ liệu các sheet T1, T2, T3 lên sheet TH theo điều kiện là các cột tiêu đề ở bảng dữ liệu trong sheet T1, T2, T3. Em cảm ơn các anh (chị ) ạ !
 

File đính kèm

  • File Hoi Van De.xlsm
    29.2 KB · Đọc: 49
Em có 1 file dữ liệu cần tổng hợp dữ liệu từ các sheet T1. T2. T3 lên sheet TH. Tuy nhiên các bảng ở sheet T1, T2, T3 lại không giống nhau giữa các vùng dữ liệu trong đó, Em muốn hỏi anh chị là có cách nào tổng hợp dữ liệu các sheet T1, T2, T3 lên sheet TH theo điều kiện là các cột tiêu đề ở bảng dữ liệu trong sheet T1, T2, T3. Em cảm ơn các anh (chị ) ạ !
Tôi thấy thiết kế như thế này thì rất khó chuyển sang dữ liệu (sheet TH) mới, các cột có thể khác nhau như tiêu đề ở các sheet nên thiết kế nó có số dòng như nhau, ví dụ sheet T1 dữ liệu bắt đầu từ A17 thì cấc sheet còn lại dữ liệu cũng nên như vậy (Nếu các sheet dữ liệu tiêu đề khác nhau mình có thể bỏ trống hoặc ẩn đi, để dữ liệu cần lấy phải bắt đầu như nhau A17), còn các ký hiêu [2], [3] giống nhau tại sao không [2a], [2b]... làm vậy khó cho mình thôi.
À bạn còn nợ tôi một lời hứa chổ này.
https://www.giaiphapexcel.com/diend...016-32bit-và-64bit.106992/page-17#post-876858
 
Upvote 0
Tôi thấy thiết kế như thế này thì rất khó chuyển sang dữ liệu (sheet TH) mới, các cột có thể khác nhau như tiêu đề ở các sheet nên thiết kế nó có số dòng như nhau, ví dụ sheet T1 dữ liệu bắt đầu từ A17 thì cấc sheet còn lại dữ liệu cũng nên như vậy (Nếu các sheet dữ liệu tiêu đề khác nhau mình có thể bỏ trống hoặc ẩn đi, để dữ liệu cần lấy phải bắt đầu như nhau A17), còn các ký hiêu [2], [3] giống nhau tại sao không [2a], [2b]... làm vậy khó cho mình thôi.
À bạn còn nợ tôi một lời hứa chổ này.
https://www.giaiphapexcel.com/diendan/threads/add-ins-cho-excel-2007-2016-32bit-và-64bit.106992/page-17#post-876858
Dạ Vâng, Em cần chuẩn hóa các File này Tuy nhiên nó nhiều quá anh ạ. Còn bên kia em up ảnh thông báo rồi anh nhé . Em cảm ơn anh !
 
Upvote 0
Em có 1 file dữ liệu cần tổng hợp dữ liệu từ các sheet T1. T2. T3 lên sheet TH. Tuy nhiên các bảng ở sheet T1, T2, T3 lại không giống nhau giữa các vùng dữ liệu trong đó, Em muốn hỏi anh chị là có cách nào tổng hợp dữ liệu các sheet T1, T2, T3 lên sheet TH theo điều kiện là các cột tiêu đề ở bảng dữ liệu trong sheet T1, T2, T3. Em cảm ơn các anh (chị ) ạ !
Bài này dùng Power Query là đỉnh luôn. Với điều kiện là bạn phải đặt tiêu đề không trùng. Tiêu đề nằm lộn xộn cũng được nhưng nhất định không được có 2 tiêu đề trùng nhau. Trong file của bạn có 2 tiêu đề [2], 2 tiêu đề [3] và 2 tiêu đề [8]
Thật ra nếu có chuyện tiêu đề trùng xảy ra thì Power Query vẫn xử lý được, có điều khi đó bạn sẽ bị rối vì các tiêu đề bị đặt lại tên khác (có hậu tố phía sau) khiến cho bạn lúng túng không biết cái nào là.. cái nào
 
Upvote 0
Bài này dùng Power Query là đỉnh luôn. Với điều kiện là bạn phải đặt tiêu đề không trùng. Tiêu đề nằm lộn xộn cũng được nhưng nhất định không được có 2 tiêu đề trùng nhau. Trong file của bạn có 2 tiêu đề [2], 2 tiêu đề [3] và 2 tiêu đề [8]
Thật ra nếu có chuyện tiêu đề trùng xảy ra thì Power Query vẫn xử lý được, có điều khi đó bạn sẽ bị rối vì các tiêu đề bị đặt lại tên khác (có hậu tố phía sau) khiến cho bạn lúng túng không biết cái nào là.. cái nào
Vậy ạ ! em chưa thử với cái Power Query bao giờ anh ạ !. Chắc em tìm hiểu tài liệu về nó !
 
Upvote 0
Vậy ạ ! em chưa thử với cái Power Query bao giờ anh ạ !. Chắc em tìm hiểu tài liệu về nó !
Hướng dẫn sơ bộ
- Tại các sheet T1, T2 và T3 bạn quét chọn dữ liệu từ dòng có tiêu đề [1], [2]... xuống đến hết rồi vào tab Data, chọn From Table, check mục "My table has headers"
- Khi cửa số Power Query Editor hiện ra. Bấm mũi tên xổ xuống ở mục Close & Load, chọn Close & Load to.... Check mục "Only create connection" rồi bấm nút Load
- Làm tương tự thế với 2 table còn lại
- Sau khi xong việc với 3 table, vào tab Data, chọn New Query\Combine Queries\Append. Check mục "three or more tables". Chọn từng table ở bảng bên dưới rồi bấm Add, OK. Cửa sổ Power Query Editor sẽ hiện lần nữa với dữ liệu gồm 3 tables. Tại đây bạn tùy ý xóa những cột không cần thiết, merge những cột bị trùng tiêu đề (mà lúc này đã bị xem là 2 tiêu đề khác nhau và đặt tên khác nhau) cũng như filter bỏ bớt những records không cần thiết
- Sau khi vừa ý mọi việc, bấm mũi tên xổ xuống ở mục Close & Load, chọn Close & Load... để load dữ liệu xuống sheet
Phương pháp này có cái lợi là mỗi khi dữ liệu thay đổi, kết quả của bạn cũng thay đổi theo (bằng cách Refesh giống PivotTable)
-----------------------------------
Hướng dẫn dựa trên Excel 2016. Nếu bạn dùng phiên bản khác thì các mục có thể khác (tôi không biết)
 
Upvote 0
Hướng dẫn sơ bộ
- Tại các sheet T1, T2 và T3 bạn quét chọn dữ liệu từ dòng có tiêu đề [1], [2]... xuống đến hết rồi vào tab Data, chọn From Table, check mục "My table has headers"
- Khi cửa số Power Query Editor hiện ra. Bấm mũi tên xổ xuống ở mục Close & Load, chọn Close & Load to.... Check mục "Only create connection" rồi bấm nút Load
- Làm tương tự thế với 2 table còn lại
- Sau khi xong việc với 3 table, vào tab Data, chọn New Query\Combine Queries\Append. Check mục "three or more tables". Chọn từng table ở bảng bên dưới rồi bấm Add, OK. Cửa sổ Power Query Editor sẽ hiện lần nữa với dữ liệu gồm 3 tables. Tại đây bạn tùy ý xóa những cột không cần thiết, merge những cột bị trùng tiêu đề (mà lúc này đã bị xem là 2 tiêu đề khác nhau và đặt tên khác nhau) cũng như filter bỏ bớt những records không cần thiết
- Sau khi vừa ý mọi việc, bấm mũi tên xổ xuống ở mục Close & Load, chọn Close & Load... để load dữ liệu xuống sheet
Phương pháp này có cái lợi là mỗi khi dữ liệu thay đổi, kết quả của bạn cũng thay đổi theo (bằng cách Refesh giống PivotTable)
-----------------------------------
Hướng dẫn dựa trên Excel 2016. Nếu bạn dùng phiên bản khác thì các mục có thể khác (tôi không biết)
Dạ vâng em cảm ơn anh ạ !. Em đang định áp dụng bài này với hàm Getdata của anh nhưng thấy không được. Cách này của anh hay quá !. Em cảm ơn anh ạ !
 
Upvote 0
Hướng dẫn sơ bộ
- Tại các sheet T1, T2 và T3 bạn quét chọn dữ liệu từ dòng có tiêu đề [1], [2]... xuống đến hết rồi vào tab Data, chọn From Table, check mục "My table has headers"
- Khi cửa số Power Query Editor hiện ra. Bấm mũi tên xổ xuống ở mục Close & Load, chọn Close & Load to.... Check mục "Only create connection" rồi bấm nút Load
- Làm tương tự thế với 2 table còn lại
- Sau khi xong việc với 3 table, vào tab Data, chọn New Query\Combine Queries\Append. Check mục "three or more tables". Chọn từng table ở bảng bên dưới rồi bấm Add, OK. Cửa sổ Power Query Editor sẽ hiện lần nữa với dữ liệu gồm 3 tables. Tại đây bạn tùy ý xóa những cột không cần thiết, merge những cột bị trùng tiêu đề (mà lúc này đã bị xem là 2 tiêu đề khác nhau và đặt tên khác nhau) cũng như filter bỏ bớt những records không cần thiết
- Sau khi vừa ý mọi việc, bấm mũi tên xổ xuống ở mục Close & Load, chọn Close & Load... để load dữ liệu xuống sheet
Phương pháp này có cái lợi là mỗi khi dữ liệu thay đổi, kết quả của bạn cũng thay đổi theo (bằng cách Refesh giống PivotTable)
-----------------------------------
Hướng dẫn dựa trên Excel 2016. Nếu bạn dùng phiên bản khác thì các mục có thể khác (tôi không biết)
Em sử dụng Office 2013 không thấy mục From Table (Thẻ Data) vậy anh? Chỉ thấy như hình dưới thôi.
Hinh.png
Còn bên kia em up ảnh thông báo rồi anh nhé .
Bạn up chổ nào sao tôi không thấy vậy?
 
Lần chỉnh sửa cuối:
Upvote 0
Em sử dụng Office 2013 không thấy mục From Table (Thẻ Data) vậy anh? Chỉ thấy như hình dưới thôi.
View attachment 202619

Bạn up chổ nào sao tôi không thấy vậy?
Vậy thì tôi không biết đâu (chưa dùng Excel 2013 lần nào cả). Bạn có thể search google để hỏi.
Nhớ không lầm thì phải cài Power Query, lúc đó sẽ có tab Power Query trên thanh Ribbon và bên trong tab này sẽ có mục From Table
Vậy mới thấy rằng: version càng cao thì càng có nhiều tính năng "độc chiêu" hơn. Tuy lâu lâu mới dùng đến nhưng lúc cần không có cũng... bực
 
Upvote 0
Em có 1 file dữ liệu cần tổng hợp dữ liệu từ các sheet T1. T2. T3 lên sheet TH. Tuy nhiên các bảng ở sheet T1, T2, T3 lại không giống nhau giữa các vùng dữ liệu trong đó, Em muốn hỏi anh chị là có cách nào tổng hợp dữ liệu các sheet T1, T2, T3 lên sheet TH theo điều kiện là các cột tiêu đề ở bảng dữ liệu trong sheet T1, T2, T3. Em cảm ơn các anh (chị ) ạ !
Cột mặt hàng trong sheet TH phải để trống hay là lấy từ cột Ghi Chú vậy bạn?
 
Upvote 0
Dạ với trường hợp cả 2 cột đều để là [8] thì cột mặt hàng Dữ liệu sẽ được ghép vào cột mặt hàng tương ứng và cột ghi chú sẽ ghép dữ liệu vào cột ghi chú tương ứng anh @Hai Lúa Miền Tây
 
Upvote 0
Dạ với trường hợp cả 2 cột đều để là [8] thì cột mặt hàng Dữ liệu sẽ được ghép vào cột mặt hàng tương ứng và cột ghi chú sẽ ghép dữ liệu vào cột ghi chú tương ứng anh @Hai Lúa Miền Tây
Bạn chạy code sau thử nhé:

Mã:
Sub GopDL_HLMT()
    Dim strSQL As String
    strSQL = "Select F1,F4,F5,F6,F7,F8,F9,F10 & ' ' & F14,F11,F13,F14,'T1' From [T1$A19:N] " & _
             "Union All Select F1,F3,F6,F7,F8,F9,F10,F11 & ' ' & F14,F12,F13,F14,'T2' From [T2$A19:N] " & _
             "Union All Select F1,F3,F4,F5,F6,F7,F8,F9 & ' ' & F14,F12,F13,F14,'T3' From [T3$A7:N]"
    With CreateObject("ADODB.Connection")
        .Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0;HDR=No"""
        Sheet4.Range("A5").CopyFromRecordset .Execute(strSQL)
    End With
    
End Sub
 
Upvote 0
Bạn chạy code sau thử nhé:

Mã:
Sub GopDL_HLMT()
    Dim strSQL As String
    strSQL = "Select F1,F4,F5,F6,F7,F8,F9,F10 & ' ' & F14,F11,F13,F14,'T1' From [T1$A19:N] " & _
             "Union All Select F1,F3,F6,F7,F8,F9,F10,F11 & ' ' & F14,F12,F13,F14,'T2' From [T2$A19:N] " & _
             "Union All Select F1,F3,F4,F5,F6,F7,F8,F9 & ' ' & F14,F12,F13,F14,'T3' From [T3$A7:N]"
    With CreateObject("ADODB.Connection")
        .Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0;HDR=No"""
        Sheet4.Range("A5").CopyFromRecordset .Execute(strSQL)
    End With
   
End Sub
Dạ em Vân cảm ơn anh @Hai Lúa Miền Tây
 
Upvote 0
Web KT
Back
Top Bottom