Cách lọc dữ liệu từ sheet này sang sheet khác có điều kiện (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

hoavinh84

Thành viên mới
Tham gia
25/9/13
Bài viết
13
Được thích
1
Đề bài: Có 2 Sheet. Sheet 1 là danh sách khách hàng lọc bằng Validation. Sheet 2 là các Hồ sơ về khách hàng. Câu hỏi là khi ấn tên khách hàng bất kỳ bên sheet 1 thì các thông tin về Hồ sơ của khách hàng bên sheet 2 sẽ nhảy ra đầy đủ. Cụ thể như file đính kèm. Cám ơn các ace rất nhiều./.
 

File đính kèm

Đề bài: Có 2 Sheet. Sheet 1 là danh sách khách hàng lọc bằng Validation. Sheet 2 là các Hồ sơ về khách hàng. Câu hỏi là khi ấn tên khách hàng bất kỳ bên sheet 1 thì các thông tin về Hồ sơ của khách hàng bên sheet 2 sẽ nhảy ra đầy đủ. Cụ thể như file đính kèm. Cám ơn các ace rất nhiều./.
1. Sửa lại cấu trúc một chút cho dễ làm nhé: Di chuyển ô B1 xuống ô B2, thêm cho ô B1 một cái tiêu đề trùng với tiêu đề ô A3 bên Sheet2 ("Tên" chẳng hạn).
2. Sử dụng code sau cho Sheet1:
[GPECODE=vb]Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$B$2" Then Exit Sub
Sheet2.[A3].CurrentRegion.AdvancedFilter 2, [B1:B2], [A4:C4]
End Sub[/GPECODE]
 

File đính kèm

Cám ơn anh rất nhiều. Cho em hỏi thêm một chút. Nếu em để cái tiêu đề tên ở ô A2 để cho thẩm mỹ gióng sang B2 là tên luôn thì sẽ ko khớp với bên kia. Nếu làm thế thì phải sửa thế nào ạ.
 
Cám ơn anh rất nhiều. Cho em hỏi thêm một chút. Nếu em để cái tiêu đề tên ở ô A2 để cho thẩm mỹ gióng sang B2 là tên luôn thì sẽ ko khớp với bên kia. Nếu làm thế thì phải sửa thế nào ạ.
Muốn dùng AdvancedFilter trong trường hợp vùng tiêu chuẩn không sử dụng công thức thì bắt buộc phải có tiêu đề (ô B1) trùng với tiêu đề bên bảng dữ liệu gốc. Do đó, nếu vì tính thẩm mỹ này thì bạn cứ để kệ ô B1 có tiêu đề như vậy nhưng ẩn nó đi (bằng cách Format Cells thành dạng ;;; hoặc định dạng màu chữ) hoặc phải sử dụng công thức cho vùng tiêu chuẩn.
Một cách sử dụng công thức có thể tham khảo là thế này: Bạn sử dụng công thức sau cho ô A5 của Sheet1 và fill cho vùng cần chứa kết quả (3 cột, còn hàng thì bao nhiêu tùy bạn):
Mã:
=IF(ROW(1:1)>COUNTIF(Sheet2!$A:$A,$B$2),"",OFFSET(Sheet2!$A$3,MATCH($B$2,Sheet2!$A$4:$A$65536,0)+ROW(1:1)-1,COLUMN(A:A)))
Nếu bạn nhìn thấy các con số 0 tại cột B, C khó ưa thì bạn có thể bỏ tùy chọn Show zero values hoặc thay công thức trên bởi công thức này:
Mã:
=IF(ROW(1:1)>COUNTIF(Sheet2!$A:$A,$B$2),"",[COLOR=#ff0000]IF(OFFSET(Sheet2!$A$3,MATCH($B$2,Sheet2!$A$4:$A$65536,0)+ROW(1:1)-1,COLUMN(A:A))="","",[/COLOR]OFFSET(Sheet2!$A$3,MATCH($B$2,Sheet2!$A$4:$A$65536,0)+ROW(1:1)-1,COLUMN(A:A))))
 
Cám ơn anh đá giúp :). Em tìm cái này mãi để làm giờ mới có người giúp, thế này thì tốt rồi :D. Cho em hỏi một chút nữa. Nếu Danh sách khách hàng nằm ở sheet khác mình lấy sang sheet 1 và bị trùng lặp và có khoảng trống. Làm sao để dùng validation thì ko bị trùng (chỉ hiện 1 tên) và ko có khoảng trống. Em đã xem nhiều code trên diễn đàn nhưng khi áp dụng vào sheet của mình lại ko được anh có thể hướng dẫn giúp em với nhé. Cám ơn anh nhiều./.
 
Cám ơn anh đá giúp :). Em tìm cái này mãi để làm giờ mới có người giúp, thế này thì tốt rồi :D. Cho em hỏi một chút nữa. Nếu Danh sách khách hàng nằm ở sheet khác mình lấy sang sheet 1 và bị trùng lặp và có khoảng trống. Làm sao để dùng validation thì ko bị trùng (chỉ hiện 1 tên) và ko có khoảng trống. Em đã xem nhiều code trên diễn đàn nhưng khi áp dụng vào sheet của mình lại ko được anh có thể hướng dẫn giúp em với nhé. Cám ơn anh nhiều./.
Thông thường trong trường hợp này nếu dùng code thì người ta hay sử dụng cách AdvancedFilter với tùy chọn Unique:=True để loại bỏ trùng, còn muốn không có khoảng trống thì thiết lập vùng tiêu chuẩn cho phù hợp là được, chẳng hạn vùng tiêu chuẩn có thể là thế này:
Tiêu đề cột
*
Cách thức là như thế, còn cụ thể ra sao thì lại phải tùy thuộc từng trường hợp. Bạn đưa file lên thì sẽ dễ nghiên cứu hơn.
 
Ví dụ Sheet 1 mình Validation từ Danh sách sheet3 (rất nhiều tên trùng nhau và khoảng trống), để validation ko có tên trùng và khoảng trắng mình sẽ làm thế nào ạ. Chi tiết file đính kèm.
 

File đính kèm

Ví dụ Sheet 1 mình Validation từ Danh sách sheet3 (rất nhiều tên trùng nhau và khoảng trống), để validation ko có tên trùng và khoảng trắng mình sẽ làm thế nào ạ. Chi tiết file đính kèm.
Cái vụ này mà nhờ em "Đít to" ra tay thì tuyệt vời: Bạn sử dụng code sau cho Sheet1
[GPECODE=vb]Private Sub Worksheet_Activate()
Dim Tmp, i As Long, S As String
Tmp = Sheet3.Range(Sheet3.[A1], Sheet3.[A65000].End(xlUp))
With CreateObject("Scripting.Dictionary")
For i = 1 To UBound(Tmp)
If Not IsEmpty(Tmp(i, 1)) Then
S = Tmp(i, 1)
If Not .Exists(S) Then .Add S, ""
End If
Next
[B2].Validation.Delete
[B2].Validation.Add xlValidateList, , , Join(.Keys, ",")
End With
End Sub[/GPECODE]
Bây giờ bạn thử thêm danh sách vào Sheet3, có thể trùng, có thể cách quãng rồi chọn lại Sheet1, nhấn vào ô B2 xem sao.
 

File đính kèm

Cám ơn anh rất nhiều, làm phiền anh đêm hôm vẫn chưa được ngủ. Chúc anh ngủ ngon. Mai em sẽ làm phiền anh tiếp :)
 
Cho em hỏi: file Excel mình có sử dụng VBA. Để trên một máy chủ và share cho mọi người nhập dữ liệu và sử dụng, nhưng trên máy khác ko gọi được code VBA đã làm trong máy chủ ra để thực hiện. Anh có code nào để giúp máy con có thể dùng được VBA như máy chủ không ạ. Em cám ơn nhiều :)
 
Thân gửi anh nghiaphuc (Hoàng Nghĩa Phúc) cùng các ace diễn đàn. Em có thêm một câu hỏi nhỏ tiếp theo trong chủ đề này mà anh nghiaphuc đã trả lời cho em. Câu hỏi trước là cách lọc dữ liệu từ sheet này sang sheet khác, vậy để lọc dữ liệu từ các sheet sang một sheet thì làm thế nào ạ. Anh chị vui lòng xem file đính kèm với ạ. Em cám ơn rất nhiều./.
 

File đính kèm

May mắn quá, em không phải dân chuyên nành nên lâu nay cứ copy từ sheet2 sang paste vào sheet1.
Giờ gặp đúng cái mình muốn tìm mà không tài nào hiểu được :'( Nhờ các bác giúp em với. Em có đính kèm file đây ạ:

Ô C15 của sheet1 tương ứng Cột C:C của sheet2.
Từ ô C23 của sheet1 tương ứng phần mô tả bên cột D:D của Sheet2.

Mong các bác giúp em với. Cám ơn các bác.}}}}}}}}}}
 

File đính kèm

May mắn quá, em không phải dân chuyên nành nên lâu nay cứ copy từ sheet2 sang paste vào sheet1.
Giờ gặp đúng cái mình muốn tìm mà không tài nào hiểu được :'( Nhờ các bác giúp em với. Em có đính kèm file đây ạ:

Ô C15 của sheet1 tương ứng Cột C:C của sheet2.
Từ ô C23 của sheet1 tương ứng phần mô tả bên cột D:D của Sheet2.

Mong các bác giúp em với. Cám ơn các bác.}}}}}}}}}}

Bạn xem file này nè:
 

File đính kèm

Lần chỉnh sửa cuối:
Ngàn lời nói không dấu nổi niềm vui. Đa tạ bác rất nhiều }}}}} -=.,,
 
Bác @Ba Tê ơi, em muốn lọc như code của bác @nghiaphuc cơ ạ, sáng nay em thử thì cách lọc đó mới edit nội dung của vùng mô tả bên sheet2 được. Còn giải pháp của bác thì chịu :'(
Thank bác

Thế thì bạn chờ đi, tui có biết gì đâu, làm thí thí thôi mà. Không xài được thì coi như "gió sông"
 
Lần chỉnh sửa cuối:
Thế thì bạn chờ đi, tui có biết gì đâu, làm thí thí thôi mà. Không xài được thì coi như "gió sông"
Khà khà --=0--=0

Anh phải dùng thơ và nhạc nữa à!

Nếu là Cẩm Ly thì có bài "Gió bấc", nhạc dân ca thì có "Qua cầu Gió bay", còn tiền chiến thì có "Gửi Gió cho mây ngàn bay"...

Còn có cái "Gió..." nữa, khi nào anh em mình có dịp "cạn bôi" thì sẽ nói cho anh nghe.

Chúc anh cuối tuần thiệt vui. }}}}}}}}}}}}}}}
 
Hàng ngày em có nhập liệu các xe vận chuyển vào 1 file tên "tonghop cac xe"; em muốn mỗi lần nhập liệu xong thì các xe tự động nhảy qua các sheet "xe672" hoặc "xe683" theo từng xe nhưng em ko đặt được công thức ạ. Xin các bác cho em ít thời gian với !!!
Bài đã được tự động gộp:

Muốn dùng AdvancedFilter trong trường hợp vùng tiêu chuẩn không sử dụng công thức thì bắt buộc phải có tiêu đề (ô B1) trùng với tiêu đề bên bảng dữ liệu gốc. Do đó, nếu vì tính thẩm mỹ này thì bạn cứ để kệ ô B1 có tiêu đề như vậy nhưng ẩn nó đi (bằng cách Format Cells thành dạng ;;; hoặc định dạng màu chữ) hoặc phải sử dụng công thức cho vùng tiêu chuẩn.
Một cách sử dụng công thức có thể tham khảo là thế này: Bạn sử dụng công thức sau cho ô A5 của Sheet1 và fill cho vùng cần chứa kết quả (3 cột, còn hàng thì bao nhiêu tùy bạn):
Mã:
=IF(ROW(1:1)>COUNTIF(Sheet2!$A:$A,$B$2),"",OFFSET(Sheet2!$A$3,MATCH($B$2,Sheet2!$A$4:$A$65536,0)+ROW(1:1)-1,COLUMN(A:A)))
Nếu bạn nhìn thấy các con số 0 tại cột B, C khó ưa thì bạn có thể bỏ tùy chọn Show zero values hoặc thay công thức trên bởi công thức này:
Mã:
=IF(ROW(1:1)>COUNTIF(Sheet2!$A:$A,$B$2),"",[COLOR=#ff0000]IF(OFFSET(Sheet2!$A$3,MATCH($B$2,Sheet2!$A$4:$A$65536,0)+ROW(1:1)-1,COLUMN(A:A))="","",[/COLOR]OFFSET(Sheet2!$A$3,MATCH($B$2,Sheet2!$A$4:$A$65536,0)+ROW(1:1)-1,COLUMN(A:A))))
 

File đính kèm

Hàng ngày em có nhập liệu các xe vận chuyển vào 1 file tên "tonghop cac xe"; em muốn mỗi lần nhập liệu xong thì các xe tự động nhảy qua các sheet "xe672" hoặc "xe683" theo từng xe nhưng em ko đặt được công thức ạ. Xin các bác cho em ít thời gian với !!!
Bài đã được tự động gộp:
Bạn tham khảo mí bài tách sheet theo cột rồi xào nấu lại thành món mới mà xài nha ;)
 
Em xin chào các anh chị tiền bối,
Em đang có một file dữ liệu, sheet2 theo hàng ngang, và bây giờ muốn chuyển dữ liệu đó sang hàng dọc, ở sheet1, có điều kiện loại đánh giá gồm 4 phần đc lặp đi lặp lại cho các trung tâm đánh giá.
Em gửi kèm theo file excel, nhờ các anh chị xem và hương dẫn xem em sẽ dùng hàm, công thức, hoặc là code gì giúp em với.
Em xin cảm ơn nhiều lắm

P/s: Lần đầu em tham gia diễn đàn, nếu có post sai chỗ, các anh chị hương dẫn giúp em luôn nhé.
Xin đa tạ cả nhà <3
 

File đính kèm

Chào các bạn!
mình có 1 file nhờ giúp v.
mình muốn lọc dữ liệu theo từng sheet như trong file.
vì dữ liệu mình rất dài, sd hàm thì wa nặng, máy chạy k nổi.
Code thì mình muốn học viết n chưa hiểu & để viết ntn.
mong các bạn giúp đỡ!
Trân trọng cảm ơn các bạn!
 

File đính kèm

bạn xem file này mình nhé.
file này có chứa các hàm chạy file.
mình muốn chạy như vậy n với code.
Bài đã được tự động gộp:
 

File đính kèm

Lần chỉnh sửa cuối:
Em xin chào các anh chị tiền bối,
Em đang có một file dữ liệu, sheet2 theo hàng ngang, và bây giờ muốn chuyển dữ liệu đó sang hàng dọc, ở sheet1, có điều kiện loại đánh giá gồm 4 phần đc lặp đi lặp lại cho các trung tâm đánh giá.
Em gửi kèm theo file excel, nhờ các anh chị xem và hương dẫn xem em sẽ dùng hàm, công thức, hoặc là code gì giúp em với.
Em xin cảm ơn nhiều lắm

P/s: Lần đầu em tham gia diễn đàn, nếu có post sai chỗ, các anh chị hương dẫn giúp em luôn nhé.
Xin đa tạ cả nhà <3
Góp ý cho bạn:
1/ Bạn nên đăng bài trong Box Lập trình với Excel để sử dụng code sẽ thuận tiện hơn.
2/ Tiêu đề nên là "Giúp chuyển dữ liệu từ hàng của Sheet2 sang cột ở Sheet1 theo điều kiện", đính kèm File trên và diễn giải nội dung cho cụ thể, rõ ràng.
 
Lần chỉnh sửa cuối:
Mến chào các Anh Chị!
Em cần xuất dữ liệu sang sheet khác, lấy theo tên nhân viên, từ đó sẽ ra các mã công việc theo level 2 và level3. (Mã nhân viên chọn xuất là G1 tại sheet XUAT)
Tuy nhiên, công thức kết hợp row, index, match lại bị lỗi đối với nhân viên có công việc nhiều (Cụ thể là Mã Nhân viên 018). Lỗi là nhóm công việc M7-4 => M7-6 là của Nhân viên 011. Nhưng khi chọn Nhân viên 018 thì vẫn ra loạt mã này và bị thiếu những mã công việc khác phía sau.
Em gửi file đính kèm nhờ các cao thủ hỗ trợ ạ!
Em chân thành cảm ơn!
 

File đính kèm

Em chào anh !
Hiện tại em đang làm file thống kê dữ liệu cho chất lượng, nhưng bị vướng một chỗ. Em có dữ liệu nhập ở sheet 1, ở sheet 2 em muốn lấy dữ liệu ở cột M tự động chuyển sang từ sheet 1 nhưng không được trùng dữ liệu. Anh có cách nào có thể tự vấn giúp e được không ah. Em xin cảm ơn.
 

File đính kèm

Em chào anh !
Hiện tại em đang làm file thống kê dữ liệu cho chất lượng, nhưng bị vướng một chỗ. Em có dữ liệu nhập ở sheet 1, ở sheet 2 em muốn lấy dữ liệu ở cột M tự động chuyển sang từ sheet 1 nhưng không được trùng dữ liệu. Anh có cách nào có thể tự vấn giúp e được không ah. Em xin cảm ơn.
Góp ý bạn nên lập chủ đề mới cho riêng bạn, với lại nên cho ví dụ kết quả sheet 2 bạn muốn, nếu xét cột M thì mình thấy hiện tại 14 tên của dữ liệu không thấy trùng.
 
Sheet2.[A3].CurrentRegion.AdvancedFilter 2, [B1:B2], [A4:C4]
Bác gì đó ơi cho mình hỏi ý nghĩa các thông số sao để làm cho bảng của mình
AdvancedFilter 2: số 2 lÀ GÌ VÂY?
[B1:B2] LÀ CỦA sheet nào
[A4:C4] là của sheet nào?
Bài đã được tự động gộp:

1. Sửa lại cấu trúc một chút cho dễ làm nhé: Di chuyển ô B1 xuống ô B2, thêm cho ô B1 một cái tiêu đề trùng với tiêu đề ô A3 bên Sheet2 ("Tên" chẳng hạn).
2. Sử dụng code sau cho Sheet1:
[GPECODE=vb]Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$B$2" Then Exit Sub
Sheet2.[A3].CurrentRegion.AdvancedFilter 2, [B1:B2], [A4:C4]
End Sub[/GPECODE]
Sheet2.[A3].CurrentRegion.AdvancedFilter 2, [B1:B2], [A4:C4]
Bác gì đó ơi cho mình hỏi ý nghĩa các thông số sao để làm cho bảng của mình
AdvancedFilter 2: số 2 lÀ GÌ VÂY?
[B1:B2] LÀ CỦA sheet nào
[A4:C4] là của sheet nào?
 

Bài viết mới nhất

Back
Top Bottom