Trích dữ liệu từ bảng chính theo danh sách

Liên hệ QC

anh79_ct

Thành viên chính thức
Tham gia
23/5/07
Bài viết
60
Được thích
1
Mình có 1 bảng tính gồm 2 sheet:
- Sheet "Source" là bảng dữ liệu nguồn, gồm nhiều cột:
+ Cột đầu tiên gọi là: "ParentPart",
+ Cột D có thông tin của các chi tiết nằm trong bộ "ParentPart" và số lượng, đơn vị tính (UOM) kèm theo. Một "ParentPart" sẽ gồm nhiều "ChildItem" cấu thành nên.
- Sheet "Filter" là bảng mình cần rút trích dữ liệu ra. Mình chỉ muốn 1 vài "ParentPart", nên sẽ gõ mã số của "ParentPart" vào cột A, và muốn dữ liệu được cập nhập từ sheet "Source" sang đây nhưng chỉ với danh sách ở cột A.

Cám ơn các thành viên nhiều!
 

File đính kèm

  • Rut trich du lieu.xlsx
    12 KB · Đọc: 17
Mình có 1 bảng tính gồm 2 sheet:
- Sheet "Source" là bảng dữ liệu nguồn, gồm nhiều cột:
+ Cột đầu tiên gọi là: "ParentPart",
+ Cột D có thông tin của các chi tiết nằm trong bộ "ParentPart" và số lượng, đơn vị tính (UOM) kèm theo. Một "ParentPart" sẽ gồm nhiều "ChildItem" cấu thành nên.
- Sheet "Filter" là bảng mình cần rút trích dữ liệu ra. Mình chỉ muốn 1 vài "ParentPart", nên sẽ gõ mã số của "ParentPart" vào cột A, và muốn dữ liệu được cập nhập từ sheet "Source" sang đây nhưng chỉ với danh sách ở cột A.

Cám ơn các thành viên nhiều!
Filter rồi copy qua cho nó nhanh :)
 
Mình có 1 bảng tính gồm 2 sheet:
- Sheet "Source" là bảng dữ liệu nguồn, gồm nhiều cột:
+ Cột đầu tiên gọi là: "ParentPart",
+ Cột D có thông tin của các chi tiết nằm trong bộ "ParentPart" và số lượng, đơn vị tính (UOM) kèm theo. Một "ParentPart" sẽ gồm nhiều "ChildItem" cấu thành nên.
- Sheet "Filter" là bảng mình cần rút trích dữ liệu ra. Mình chỉ muốn 1 vài "ParentPart", nên sẽ gõ mã số của "ParentPart" vào cột A, và muốn dữ liệu được cập nhập từ sheet "Source" sang đây nhưng chỉ với danh sách ở cột A.

Cám ơn các thành viên nhiều!
Thử file này xem chắc bạn sẽ dùng được
 

File đính kèm

  • Rut trich du lieu.xlsx
    16.5 KB · Đọc: 21
Mình có 1 bảng tính gồm 2 sheet:
- Sheet "Source" là bảng dữ liệu nguồn, gồm nhiều cột:
+ Cột đầu tiên gọi là: "ParentPart",
+ Cột D có thông tin của các chi tiết nằm trong bộ "ParentPart" và số lượng, đơn vị tính (UOM) kèm theo. Một "ParentPart" sẽ gồm nhiều "ChildItem" cấu thành nên.
- Sheet "Filter" là bảng mình cần rút trích dữ liệu ra. Mình chỉ muốn 1 vài "ParentPart", nên sẽ gõ mã số của "ParentPart" vào cột A, và muốn dữ liệu được cập nhập từ sheet "Source" sang đây nhưng chỉ với danh sách ở cột A.

Cám ơn các thành viên nhiều!
1/ Tại các Cell A3, A4, A5 sheet Filter dùng Validation để chọn Cell nào không chọn thì nhớ gõ dấu chấm hay bất kỳ ký tự vào rồi nhấn nút Lọc.
2/ Sheet Source nếu gán thêm dữ liệu thì nó tự động lấy thêm.
 

File đính kèm

  • Rut trich du lieu.xlsm
    23 KB · Đọc: 14
Mình có 1 bảng tính gồm 2 sheet:
- Sheet "Source" là bảng dữ liệu nguồn, gồm nhiều cột:
+ Cột đầu tiên gọi là: "ParentPart",
+ Cột D có thông tin của các chi tiết nằm trong bộ "ParentPart" và số lượng, đơn vị tính (UOM) kèm theo. Một "ParentPart" sẽ gồm nhiều "ChildItem" cấu thành nên.
- Sheet "Filter" là bảng mình cần rút trích dữ liệu ra. Mình chỉ muốn 1 vài "ParentPart", nên sẽ gõ mã số của "ParentPart" vào cột A, và muốn dữ liệu được cập nhập từ sheet "Source" sang đây nhưng chỉ với danh sách ở cột A.

Cám ơn các thành viên nhiều!
Bạn thử:
PHP:
Option Explicit
Sub abc()
    With Sheets("Source")
        .AutoFilterMode = False
        With .Range("A1:G1")
            .AutoFilter
            .Range("$A$1:$G$52").AutoFilter field:=1, Criteria1:=Array( _
                                                                 "C-310920", "C-310925", "C-310930"), Operator:=xlFilterValues
            .Range("A1").CurrentRegion.Offset(1, 0).SpecialCells(xlCellTypeVisible).Copy Sheets("Filter").Range("D3")
            .AutoFilter
        End With
    End With
End Sub
 
Lần chỉnh sửa cuối:
Mình đang thử cách của bạn Phulien.
Cách của bạn be09 đúng ý mình cần, nhưng giờ mình muốn nhờ thêm là khi dữ liệu update thì có thể chèn thêm dòng mà không xóa dữ liệu nào đó bên dưới được không? Vì trong bảng tính, mình có thêm dữ liệu bên dưới nữa, nếu mỗi lần chèn thêm "parentpart" thì lại phải chèn dòng trống cho dữ liệu xuống dưới rồi mới "LỌC" thì hơi mất công :)
 
Mình đang thử cách của bạn Phulien.
Cách của bạn be09 đúng ý mình cần, nhưng giờ mình muốn nhờ thêm là khi dữ liệu update thì có thể chèn thêm dòng mà không xóa dữ liệu nào đó bên dưới được không? Vì trong bảng tính, mình có thêm dữ liệu bên dưới nữa, nếu mỗi lần chèn thêm "parentpart" thì lại phải chèn dòng trống cho dữ liệu xuống dưới rồi mới "LỌC" thì hơi mất công :)
Chẳnh hiểu bạn muốn cái gì?
1/ Sheet Source của File trên bạn cứ nhập thêm liên tục (nó tự lấy dữ liệu để lọc).
2/ Sheet Filter khi nhấn nút lọc là nó xóa cái cũ. và thay bằng cái mới.
 
:), xin lỗi vì giải thích yêu cầu không rõ ràng nhé.
Mình gởi lại file kèm theo. Khu vực màu vàng là dữ liệu rút trích từ sheet "source". Khu vực màu xanh bên dưới là dữ liệu có sẵn, do mình cần làm Pivot nên để chung 2 loại dữ liệu này để có thể làm Pivot.
Trong sheet "filter" khi nhập thêm mã số vào khu vực "parent part" thì dữ liệu sẽ cập nhập thêm vào khu vực màu vàng này thì dữ liệu khu vực màu xanh phải tự "chạy xuống" để không bị xóa. Theo code hiện tại thì sẽ xóa các dòng bên dưới (khu vực màu vàng) để chèn thêm dữ liệu lấy từ sheet "Source".
Hy vọng bạn hiểu mình lần này :)
 

File đính kèm

  • Rut trich du lieu.xlsm
    22.9 KB · Đọc: 4
Mình đang thử cách của bạn Phulien.
Cách của bạn be09 đúng ý mình cần, nhưng giờ mình muốn nhờ thêm là khi dữ liệu update thì có thể chèn thêm dòng mà không xóa dữ liệu nào đó bên dưới được không? Vì trong bảng tính, mình có thêm dữ liệu bên dưới nữa, nếu mỗi lần chèn thêm "parentpart" thì lại phải chèn dòng trống cho dữ liệu xuống dưới rồi mới "LỌC" thì hơi mất công :)
Vì trong bảng tính, mình có thêm dữ liệu bên dưới nữa
Đưa cái "bên dưới lu bu" đó sang chỗ khác, lọc xong rồi chép nó nối theo dữ liệu vừa lọc, khi đó sẽ hết "lu bu".
 

File đính kèm

  • Rut trich du lieu.xlsm
    28.2 KB · Đọc: 17
:), xin lỗi vì giải thích yêu cầu không rõ ràng nhé.
Mình gởi lại file kèm theo. Khu vực màu vàng là dữ liệu rút trích từ sheet "source". Khu vực màu xanh bên dưới là dữ liệu có sẵn, do mình cần làm Pivot nên để chung 2 loại dữ liệu này để có thể làm Pivot.
Trong sheet "filter" khi nhập thêm mã số vào khu vực "parent part" thì dữ liệu sẽ cập nhập thêm vào khu vực màu vàng này thì dữ liệu khu vực màu xanh phải tự "chạy xuống" để không bị xóa. Theo code hiện tại thì sẽ xóa các dòng bên dưới (khu vực màu vàng) để chèn thêm dữ liệu lấy từ sheet "Source".
Hy vọng bạn hiểu mình lần này :)
Bạn giải thích chẳng hiểu gì hết.
1/ Ý bạn muốn ở sheet Filter, mỗi lần lọc thì không xóa mà ghi liên tiếp xuống dưới.
2/ Mỗi lần lọc thì xóa và ghi vào sheet theo dõi rồi dùng dữ liệu của sheet này tạo PivotTable.
3/ Hay là lọc với nhiều tiêu chí thêm điều kiện lọc ở cột khác?
 
Mình gởi lại điều cần hỏi với hình minh họa để dễ hiểu hơn.
Khu vực màu vàng là dữ liệu lấy được do "Filter", màu xanh là dữ liệu có sẵn để mình kết hợp làm "Pivot" với bảng dữ liệu màu vàng bên trên.
Mình muốn là khi mình nhập thêm 1 "parentPart" sau đó "Filter" thì khu vực màu vàng sẽ được tự động chèn thêm dòng cho khu vực "filter" và dời nhóm màu xanh xuống dưới. Hiện tại code là đang xóa hết các dữ liệu bên dưới khi thêm 1 "parentpart" và nhấn "Filter".
Mình muốn làm như vậy để khỏi phải cắt nhóm màu xanh ra chỗ khác, cập nhập bảng Filter rồi lại cắt nhóm màu xanh quay lại bên dưới.
Và một điều mình muốn nhờ thêm là có cách nào chỉ lấy 1 số cột cần thiết chứ không cần lấy hết 7 cột khi nhấn "Filter" không? Ví dụ mình không cần 2 cột "ParentDescription" và "ParentUOM" chẳng hạn?
Cám ơn bạn trước nhé!

1527331297830.png

1527331367796.png
 

File đính kèm

  • Rut trich du lieu (4).xlsm
    22.2 KB · Đọc: 4
Mình gởi lại điều cần hỏi với hình minh họa để dễ hiểu hơn.
Khu vực màu vàng là dữ liệu lấy được do "Filter", màu xanh là dữ liệu có sẵn để mình kết hợp làm "Pivot" với bảng dữ liệu màu vàng bên trên.
Mình muốn là khi mình nhập thêm 1 "parentPart" sau đó "Filter" thì khu vực màu vàng sẽ được tự động chèn thêm dòng cho khu vực "filter" và dời nhóm màu xanh xuống dưới. Hiện tại code là đang xóa hết các dữ liệu bên dưới khi thêm 1 "parentpart" và nhấn "Filter".
Mình muốn làm như vậy để khỏi phải cắt nhóm màu xanh ra chỗ khác, cập nhập bảng Filter rồi lại cắt nhóm màu xanh quay lại bên dưới.
Và một điều mình muốn nhờ thêm là có cách nào chỉ lấy 1 số cột cần thiết chứ không cần lấy hết 7 cột khi nhấn "Filter" không? Ví dụ mình không cần 2 cột "ParentDescription" và "ParentUOM" chẳng hạn?
Cám ơn bạn trước nhé!

View attachment 196257

View attachment 196259
Tại sao dữ liệu có sẵn không đặt nằm ở đầu mà phải nằm ở cuối?
 
Tại sao dữ liệu có sẵn không đặt nằm ở đầu mà phải nằm ở cuối?
Ah, vì dữ liệu này cũng sẽ được cập nhật bằng cách tương tự như dữ liệu ở trên. Mình nghĩ sẽ copy các dòng code này ra thêm nhiều "nhóm" khác nhau .
Như vậy thì dữ liệu nào đứng trên hay dưới đều giống nhau.
 
Ah, vì dữ liệu này cũng sẽ được cập nhật bằng cách tương tự như dữ liệu ở trên. Mình nghĩ sẽ copy các dòng code này ra thêm nhiều "nhóm" khác nhau .
Như vậy thì dữ liệu nào đứng trên hay dưới đều giống nhau.
Xem file
 

File đính kèm

  • Rut trich du lieu (4).xlsm
    21.7 KB · Đọc: 10
Vì trong bảng tính, mình có thêm dữ liệu bên dưới nữa
Đưa cái "bên dưới lu bu" đó sang chỗ khác, lọc xong rồi chép nó nối theo dữ liệu vừa lọc, khi đó sẽ hết "lu bu".
Giờ mình mới xem file này, đúng là thứ mình cần :). Thanks bạn nhiều nhé!
Giờ mình cần hỏi thêm là: Do dữ liệu trong sheet "Source" là mình rút gọn từ dữ liệu xuất ra từ phần mềm hệ thống nên nó có nhiều cột (ví dụ mình thêm sheet "From System), nhưng để làm báo cáo thì mình chỉ cần vài cột nên mình để công thức: "=dia chi o". Khi đó CODE không còn làm việc nữa.
Nhưng nếu mình cũng thực hiện công thức tương tự bên sheet "Lubu" thì CODE lại lấy được dữ liệu. Mình kèm theo file minh họa nhé.
Xin hỏi có cách nào khắc phục không?

1527411651160.png

1527411663307.png

1527411816599.png
 

File đính kèm

  • Rut trich du lieu.xlsm
    47.2 KB · Đọc: 3
Giờ mình cần hỏi thêm là: Do dữ liệu trong sheet "Source" là mình rút gọn từ dữ liệu xuất ra từ phần mềm hệ thống nên nó có nhiều cột (ví dụ mình thêm sheet "From System), nhưng để làm báo cáo thì mình chỉ cần vài cột nên mình để công thức: "=dia chi o". Khi đó CODE không còn làm việc nữa.
- Tạo sheet Source chỉ để lập công thức lấy dữ liệu 1 số cột? Vậy thì bỏ luôn không cần sheet Source!
- Tiêu đề các cột Filter cần nhập (hoặc Copy) cho đúng với Bảng dữ liệu gốc, không nên dùng công thức (Có thể gây lu bu).
 

File đính kèm

  • Rut trich du lieu 2.xlsm
    38.4 KB · Đọc: 10
Mình đã bắt đầu áp dụng file và phát hiện ra là ở bảng filter thì code lấy luôn dữ liệu có chữ mình cần trong chuỗi text. Ví dụ hình kèm bên dưới. Mình muốn lấy theo chính xác chữ "SC468", chứ không cần "SC468 (SW1160)" khi nhấn "GPE".

Trong sheet "filter" và "From source" mình dùng chức năng filter của excel, sau khi nhấn "GPE" thì lại mất luôn, phải thiết lập lại để filter.

:) giờ nếu mình không cần sheet "lubu" nữa thì cứ xóa thoải mái phải không? :)

Cám ơn bạn trước nhé!

1528283141206.png
 

File đính kèm

  • Rut trich du lieu 3.xlsm
    2.2 MB · Đọc: 6
Mình đã bắt đầu áp dụng file và phát hiện ra là ở bảng filter thì code lấy luôn dữ liệu có chữ mình cần trong chuỗi text. Ví dụ hình kèm bên dưới. Mình muốn lấy theo chính xác chữ "SC468", chứ không cần "SC468 (SW1160)" khi nhấn "GPE".
Trong sheet "filter" và "From source" mình dùng chức năng filter của excel, sau khi nhấn "GPE" thì lại mất luôn, phải thiết lập lại để filter.
:) giờ nếu mình không cần sheet "lubu" nữa thì cứ xóa thoải mái phải không? :)
Cám ơn bạn trước nhé!
- Lấy chính xác chuỗi cần tìm: Xong.
- "mình dùng chức năng filter của excel, sau khi nhấn "GPE" thì lại mất luôn, phải thiết lập lại để filter." Đã giải quyết chuyện "làm biếng".
- Đã xóa sheets("LuBu").
 

File đính kèm

  • LuXuBu4.rar
    277 KB · Đọc: 14
Cám ơn bạn Ba Tê nhiều. Sau khi sử dụng mình thấy file mới (LuXuBu4) giải quyết được yêu cầu của mình nhưng lại phát sinh:
1. Do lấy chữ quá chính xác nên nó phân biệt luôn kiểu chữ hoa và thường, cũng hơi có tí bất tiện :). Trong khi file cũ (RutTrichDuLieu2) lại linh hoạt hơn. Nếu kết hợp cả 2 thì quá tốt :) .
2. Dữ liệu lấy được fix luôn theo cột cần tìm, chứ không linh động như file cũ, là chỉ cần ghi đúng tiêu đề là có thể lấy bất kỳ cột nào miễn là giống tiêu đề.

Chắc mình sẽ quay lại quay lại file cũ (RutTrichDuLieu2), chịu khó don dẹp dữ liệu trước khi filter, và không "làm biếng" nữa.

Ngoài ra cho mình hỏi là có thể copy nút lệnh "GPE" này ra thêm sheet khác không? Ý mình là cùng 1 file excel (RutTrichDuLieu2) nhưng 2 nút lệnh ở 2 sheet khác nhau. Ví dụ "Filter 1" lấy dữ liệu từ "Source 1, và kết hợp với LuXuBu theo file cũ để tạo bảng Pivot, trong khi đó LuXuBu sẽ lấy từ Source 2, v.v... và v.v...... (THAM QUÁ NHỈ) :).

Giải thích thêm yêu cầu cần làm: Mình cần so sánh giữa bảng vật tư chuẩn trong các đơn hàng; trong đó có nhiều Option do khách hàng chọn; với số liệu vật tư xuất thực tế cho các đơn hàng đó. Nên cần "Gom" dữ liệu lại thành 1 bảng và làm PIVOT.

Cám ơn nhé!
 
Web KT
Back
Top Bottom