[Nhờ giúp] Lọc và tạo danh sách (list). (2 người xem)

  • Thread starter Thread starter M@trixs
  • Ngày gửi Ngày gửi
Liên hệ QC

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

M@trixs

Thành viên thường trực
Tham gia
3/3/11
Bài viết
257
Được thích
336
Hiện tại mình có bảng tính (gởi kèm bên dưới). Nhờ Anh/Chị giúp giùm vấn đề: Tạo ra một danh sách (List) mà chỉ có những người thỏa mãn điều kiện là "x" ở cột "có tham gia" .

Xin cảm ơn nhiều !
 

File đính kèm

Bạn xem File này đúng ý không
 

File đính kèm

Hiện tại mình có bảng tính (gởi kèm bên dưới). Nhờ Anh/Chị giúp giùm vấn đề: Tạo ra một danh sách (List) mà chỉ có những người thỏa mãn điều kiện là "x" ở cột "có tham gia" .

Xin cảm ơn nhiều !
Thêm 1 cách cho bạn tham khảo:
PHP:
Sub abc()
    Dim a
    Application.ScreenUpdating = False
    With Range("B4")
        .AutoFilter Field:=2, Criteria1:="=x"
        .CurrentRegion.SpecialCells(12).Select
    End With
    
    Selection.Copy Range("H4")
    a = Range("H4").CurrentRegion
    Range("H4").CurrentRegion.ClearContents
    Application.CutCopyMode = False

    Selection.AutoFilter
    Range("H4").Resize(UBound(a), 2).Value = a
    Application.ScreenUpdating = True
End Sub
 

File đính kèm

Cảm ơn các bạn đã giúp nhưng mọi người chưa hiểu ý của mình. Thật ra thì mọi người mới chỉ làm được có 1/2 nội dung yêu cầu thôi.

Ý của mình là tạo một danh sách dạng LIST lựa chọn sổ xuống (Data Validation) từ những người được đánh dấu "x".
 
Lần chỉnh sửa cuối:
Như tiêu đề mình có ghi rõ là Lọc và Tạo danh sách, nếu chỉ lọc không thì mình đã ghi là lọc dữ liệu. Nếu có gì đó làm bạn không hài lòng thì mình xin lỗi nha.

Còn việc đặt Data Validation ở đâu cũng được bạn. Vì mình muốn biết cách làm thôi, còn thực tế áp dụng thì mình làm trên dữ liệu khác.
 
Bạn ơi, khi mình đặt "x" vào các dòng khác thì list nó không tự cập nhập, mong bạn giúp giùm với
 
Vậy làm sao cho nó tự động hả bạn, mình kém quá nhờ bạn giúp cho trót với !
 
OK, đã được rồi bạn ơi. Xin cảm ơn bạn nhiều nha...
 
Xin chào các bạn,
Mình cũng có một câu hỏi tương tự muốn hỏi như sau, mong nhận được sự giúp đỡ của các bạn:
Mình đang có một số vướng mắc về cách lọc thông tin trong macro như sau: Mình có một bảng dữ liệu đấu nguồn gồm nhiều cột mình muốn lọc như sau:[TABLE="width: 500"]
[TR]
[TD]Ngõ vào[/TD]
[TD]CB_nguồn[/TD]
[/TR]
[TR]
[TD]A[/TD]
[TD]RNAC[/TD]
[/TR]
[TR]
[TD]A[/TD]
[TD]RNBC[/TD]
[/TR]
[TR]
[TD]B[/TD]
[TD]RNAC[/TD]
[/TR]
[TR]
[TD]B[/TD]
[TD]RNBC[/TD]
[/TR]
[/TABLE]
Vậy làm cách nào để mình có thể lọc được từng trường hợp, cụ thể là:A với RNAC, A với RNBC, B với RNAC, B với RNBC. Vì mình muốn sau khi lọc ra từng trường hợp sẽ dùng bảng tính sau khi lọc copy ra một sheet khác để xử lý. Thêm nữa, hiện mình đang post câu hỏi này lên diễn đàn cụ thể tiêu đề là:[h=3]Nhờ giúp đỡ thực hiện: Biên dịch bảng dữ liệu đấu nối thành hình vẽ đơn giản[/h]Nên khi nào các bạn có thời gian rảnh, xin vui lòng hướng dẫn giúp mình nhé. Mình cảm ơn!
 

File đính kèm

Xin chào các bạn,
Mình cũng có một câu hỏi tương tự muốn hỏi như sau, mong nhận được sự giúp đỡ của các bạn:
Mình đang có một số vướng mắc về cách lọc thông tin trong macro như sau: Mình có một bảng dữ liệu đấu nguồn gồm nhiều cột mình muốn lọc như sau:[TABLE="width: 500"]
[TR]
[TD]Ngõ vào[/TD]
[TD]CB_nguồn[/TD]
[/TR]
[TR]
[TD]A[/TD]
[TD]RNAC[/TD]
[/TR]
[TR]
[TD]A[/TD]
[TD]RNBC[/TD]
[/TR]
[TR]
[TD]B[/TD]
[TD]RNAC[/TD]
[/TR]
[TR]
[TD]B[/TD]
[TD]RNBC[/TD]
[/TR]
[/TABLE]
Vậy làm cách nào để mình có thể lọc được từng trường hợp, cụ thể là:A với RNAC, A với RNBC, B với RNAC, B với RNBC. Vì mình muốn sau khi lọc ra từng trường hợp sẽ dùng bảng tính sau khi lọc copy ra một sheet khác để xử lý. Thêm nữa, hiện mình đang post câu hỏi này lên diễn đàn cụ thể tiêu đề là:Nhờ giúp đỡ thực hiện: Biên dịch bảng dữ liệu đấu nối thành hình vẽ đơn giản

Nên khi nào các bạn có thời gian rảnh, xin vui lòng hướng dẫn giúp mình nhé. Mình cảm ơn!

Thì dùng Advanced Filter, bạn nên hỏi tiếp tại Topic của bạn, không nên chen ngang bài viết của người khác.
 
Paste vào sheet1

Mã:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Not Intersect(Target, Range("C5:C" & Range("B65000").End(3).Row)) Is Nothing Then
Dim Arr, Tem, dArr, I As Long, K As Long
Arr = Range("B4").CurrentRegion.Value
.....
Chủ topic cẩn thận với thực phẩm chức năng CurrentRegion này nha. Rất LỢI HẠI đó...
 
Xin chào các bạn,
Mình cũng có một câu hỏi tương tự muốn hỏi như sau, mong nhận được sự giúp đỡ của các bạn:
Mình đang có một số vướng mắc về cách lọc thông tin trong macro như sau: Mình có một bảng dữ liệu đấu nguồn gồm nhiều cột mình muốn lọc như sau:[TABLE="width: 500"]
[TR]
[TD]Ngõ vào[/TD]
[TD]CB_nguồn[/TD]
[/TR]
[TR]
[TD]A[/TD]
[TD]RNAC[/TD]
[/TR]
[TR]
[TD]A[/TD]
[TD]RNBC[/TD]
[/TR]
[TR]
[TD]B[/TD]
[TD]RNAC[/TD]
[/TR]
[TR]
[TD]B[/TD]
[TD]RNBC[/TD]
[/TR]
[/TABLE]
Vậy làm cách nào để mình có thể lọc được từng trường hợp, cụ thể là:A với RNAC, A với RNBC, B với RNAC, B với RNBC. Vì mình muốn sau khi lọc ra từng trường hợp sẽ dùng bảng tính sau khi lọc copy ra một sheet khác để xử lý. Thêm nữa, hiện mình đang post câu hỏi này lên diễn đàn cụ thể tiêu đề là:Nhờ giúp đỡ thực hiện: Biên dịch bảng dữ liệu đấu nối thành hình vẽ đơn giản

Nên khi nào các bạn có thời gian rảnh, xin vui lòng hướng dẫn giúp mình nhé. Mình cảm ơn!
Chào bạn,
bạn nên tạo một topic mới để hỏi.
tuy nhiên bài toán này có rất nhiều trên gpe rồi.
có những tài liệu rất ngắn gọn và hữu ích.
bạn gõ vào ô tìm kiếm trên gpe từ khoá advance filter -> sẽ ra rất nhiều kết quả cho bạn. Có 1 tài liệu của tác giả hoamattroicoi rất bổ ích.
bạn thử tìm hiểu, tự học là cách tốt nhất để hiểu sâu 1 vấn đề.
chúc bạn thành công!
 
Có ACE nào đi ngang giúp mình thêm ít nữa nhé. Mình muốn tạo một cái NAME cho cái danh sách này thì phải làm sửa đoạn code trên lại như thế nào ?
 
Ý mình là bạn đã đưa giá trị vào E5 rồi. Nhưng giờ mình hỏi là có cách nào đưa cái danh sách đã lọc đó vào một Name không. Mình cũng thấy có Name là LIST. Thế nhưng mình vào phần quản lý Name (Ctrl + F3) thì không thấy LIST

Vì nhu cầu của mình hiện nay không muốn trả kết quả về E5 mà mình muốn đem đi qua sheet khác (không cố định) nên là mình nghĩ đặt NAME cho cái kết quả trả về sẽ tiện cho thao tác sau này.
 
Anh Chị nào đi qua giúp mình một tay với. Xin cảm ơn !
 
Xin cảm ơn đã giúp đỡ, mình đã sửa đoạn code ở bài 12 lại là dùng được rồi. Xin trân thành cảm ơn mọi người đã giúp đỡ
 
Lần chỉnh sửa cuối:
Khi áp dụng đoạn code tại bài #12. Mình xóa hết các giá trị "x" tại cột C thì bị báo lỗi:

Mã:
Run-time error 1004 : Application - defined or object-defined error

và báo lỗi tại dòng

Mã:
Range("AA5").Resize(K).Value = dArr

Mong mọi người giải quyết lỗi giùm mình với. Xin cám ơn !
 
Khi áp dụng đoạn code tại bài #12. Mình xóa hết các giá trị "x" tại cột C thì bị báo lỗi:

Mã:
Run-time error 1004 : Application - defined or object-defined error

và báo lỗi tại dòng

Mã:
Range("AA5").Resize(K).Value = dArr

Mong mọi người giải quyết lỗi giùm mình với. Xin cám ơn !
Giá trị của k mặc định là = 0, khi có dấu "X" thì nó mới được tăng giá trị. nên khi bạn xóa hết "X" thì k = 0, ko có kiểu resize (0) cả. Bạn thêm dòng if k > 0 then ... là xong
 
Cụ thể hơn, bạn nên sửa lại là vầy:

PHP:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
 Application.ScreenUpdating = False
 Dim Rws As Long, I As Long, K As Long
 Dim Arr, Tem, dArr
 
 Rws = [B5].CurrentRegion.Rows.Count
If Not Intersect(Target, [c5].Resize(Rws)) Is Nothing Then
    Arr = Range("B4").CurrentRegion.Value
    ReDim dArr(1 To UBound(Arr), 1 To 1)
    For I = 1 To UBound(Arr)
        If Arr(I, 2) = "x" Then
            K = K + 1
            dArr(K, 1) = Arr(I, 1)
        End If
    Next I
    Range("AA5:AA1000").ClearContents
    Range("E5").Validation.Delete
    If K < 1 Then Exit Sub
    Range("AA5").Resize(K).Value = dArr
    Range("AA5").Resize(K).Name = "LIST"
    Range("E5").Validation.Add 3, , , "=LIST"
End If
Application.ScreenUpdating = True
End Sub
 
Web KT

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

Back
Top Bottom