Giúp lọc tìm dữ liệu (5 người xem)

Liên hệ QC

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

pillorchid

Thành viên mới
Tham gia
5/4/10
Bài viết
38
Được thích
0
Nghề nghiệp
Nghiên cứu viên
Xin nhờ các siêu excel, các member trong diễn đàn giúp cho mình lọc tìm dữ liệu trong file kèm theo.

Trong file có 2 sheet: mục đích và dữ liệu. Mình muốn tìm tên của một người ứng với những trang nào??????????

Ví dụ: Nguyễn Tiến Cường có 2 lần xuất hiện ở trang 19 và 27.

Cám ơn!
 

File đính kèm

Thử thế này xem thế nào


Code mình bị sai rồi, 2 người tên gần giống nhau sẽ bị sai kết quả. Đang nghiên cứu lại
 

File đính kèm

Lần chỉnh sửa cuối:
Cám ơn bac nhiều nhiều. E đã thử lại với dòng số liệu khác nhưng bị sai 1 người (e mới chỉ kiểm tra được 1 người). Không biết cách nào tải file khác lên bây giờ
Thử thế này xem thế nào

E up được rồi đây. Người bị sai e đã ghi trong file rồi nhé. E cám ơn
 

File đính kèm

Lần chỉnh sửa cuối:
Hơ, e gọi điện thoại cho bác theo chữ ký ở phía dưới mà ko gọi được. Là thế nào nhể??????????? :(
 
Bạn định dạng cột C là text chắc là ok

Ah điện thoai hôm nay bỏ quên ở nhà rùi
 
Lần chỉnh sửa cuối:
Cám ơn bac nhiều nhiều. E đã thử lại với dòng số liệu khác nhưng bị sai 1 người (e mới chỉ kiểm tra được 1 người). Không biết cách nào tải file khác lên bây giờ

E up được rồi đây. Người bị sai e đã ghi trong file rồi nhé. E cám ơn
Tham khảo thêm 1 code, xin mượn file có code của quanghai1969 luôn nhé.
 

File đính kèm

Cách anh dùng Like thật là hay. Mình học thêm được cú pháp này.
 
Cách anh dùng Like thật là hay. Mình học thêm được cú pháp này.
Híc, hãy cẩn thận khi dùng Like trong bài này
Trong file của Ba Tê:
- Nếu có người tên Nguyên Văn Anh Hùng ==> nó sẽ "phang" luôn cho Nguyễn Văn Anh lẫn Nguyên Văn Anh Hùng
- Nếu có người tên Nguyễn Thị Bảy Ba Tê ==> nó sẽ tính cho Nguyễn Thị Bảy Ba Tê đồng thời sẵn trớn "phang" cho Nguyễn Thị Bảy luôn
:=\+Híc:=\+
 
Ơ vậy code của mình cũng sai bét rồi.
 
Híc, hãy cẩn thận khi dùng Like trong bài này
Trong file của Ba Tê:
- Nếu có người tên Nguyên Văn Anh Hùng ==> nó sẽ "phang" luôn cho Nguyễn Văn Anh lẫn Nguyên Văn Anh Hùng
- Nếu có người tên Nguyễn Thị Bảy Ba Tê ==> nó sẽ tính cho Nguyễn Thị Bảy Ba Tê đồng thời sẵn trớn "phang" cho Nguyễn Thị Bảy luôn
:=\+Híc:=\+
Chít chít chít!!!
Hổng để ý chuyện này, rắc rối nhỉ?
Bi giờ chắc phải làm từng bước như vầy:
1. Ở sheet <dulieu>tách ra từng tên đưa vào 1 mảng , lấy dấu phẩy + 1 khoảng trắng làm chuẩn (cái này không chuẩn thì tèo)
2. "Quất" cho nó 1 cái "Đíc to" ở sheet <mucdich>
3. Dò trong mảng nếu có trong Dic thì gán thêm số trang vào mảng khác
4. O bế dữ liệu trong mảng khác này rồi ghi vào sheet <mucdich>
5. Chờ tác giả phát biểu + Cò già xuất chiêu.
Híc!
 

File đính kèm

Mình chưa đủ sức viết code như anh Bate nhưng loay hoay cũng muốn góp vui 1 cách, mặc dù code chay. hơi châm nhưng cũng là 1 cách hén.
 

File đính kèm

Mình chưa đủ sức viết code như anh Bate nhưng loay hoay cũng muốn góp vui 1 cách, mặc dù code chay. hơi châm nhưng cũng là 1 cách hén.
Không biết chậm chỗ nào, có lẽ do text to columns, còn lại vẫn dùng mảng mà.
Thử sheet <dulieu> 1000 dòng, code quanghai1969 chạy khoảng 5,2 giây.
Code của mình dài thoòng nhưng chỉ khoảng 0,04 giây, nhanh hơn 130 lần.
Cũng có dịp so sánh thử tốc độ của nhiều cách lập trình.
Hên xui hén!
 
Không biết chậm chỗ nào, có lẽ do text to columns, còn lại vẫn dùng mảng mà.
Thử sheet <dulieu> 1000 dòng, code quanghai1969 chạy khoảng 5,2 giây.
Code của mình dài thoòng nhưng chỉ khoảng 0,04 giây, nhanh hơn 130 lần.
Cũng có dịp so sánh thử tốc độ của nhiều cách lập trình.
Hên xui hén!
Thật ra bài này mình làm cho bạn í lâu rồi, nửa này nửa kia ( ba rọi), hổng biết tốc độ ra sao nữa
Mã:
Public Sub KhoNhai()
    Dim d, I, Vung, VungDo, Mg, Tach, Cll
    Set d = CreateObject("scripting.dictionary")
    Set Vung = Sheets("dulieu").Range(Sheets("dulieu").[B2], Sheets("dulieu").[B10000].End(xlUp))
    Set VungDo = Range([B2], [B10000].End(xlUp))
        For Each Cll In Vung
            Tach = Split(Cll, ",")
                For I = LBound(Tach) To UBound(Tach)
                    If Not d.exists(Trim(Tach(I))) Then
                        d.Add Trim(Tach(I)), Cll.Offset(, 1)
                    Else
                        d.Item(Trim(Tach(I))) = d.Item(Trim(Tach(I))) & ", " & Cll.Offset(, 1)
                    End If
                Next I
        Next Cll
            ReDim Mg(1 To VungDo.Rows.Count, 1 To 1)
            For I = 1 To VungDo.Rows.Count
                If d.exists(Trim(VungDo(I))) Then Mg(I, 1) = d.Item(Trim(VungDo(I)))
            Next I
    [I2].Resize(VungDo.Rows.Count, 1) = Mg
End Sub
Mà công nhận Ba Tê chơi nhiều mảng & nhiều For thật
:=\+Híc:=\+
 
Thật ra bài này mình làm cho bạn í lâu rồi, nửa này nửa kia ( ba rọi), hổng biết tốc độ ra sao nữa
......................
Mà công nhận Ba Tê chơi nhiều mảng & nhiều For thật
:=\+Híc:=\+
Tại chưa biết cái Split như Cò.
Híc! Híc! Híc!
Cái Split của Cò chỉ 0.03 giây, nhanh hơn 4 cái For của mình 1%
 
Thật ra bài này mình làm cho bạn í lâu rồi, nửa này nửa kia ( ba rọi), hổng biết tốc độ ra sao nữa

Bác ơi, e đã gặp vấn đề này bao giờ đâu ạ. :( Thế này là sao nhể???????????????????? Anyway, rất thanks bác! :)
Hình như nó là bài này hay sao í:
http://www.giaiphapexcel.com/forum/showthread.php?65659-Tách-cột-số-liệu-theo-field-định-sẵn
Thân
Híc
 
à, yes sir. E lập mấy cái top vì ko biết là box nào mí đúng. ^_^
 
Nhân tiện nói về lọc dử liệu, nhờ các pác cao thủ excel xem giùm e cái file này chút (file đính kèm).
File này là một từ điển tiếng Anh, mỗi ô (cell) của nó có chứa cả từ tiếng Anh, nghĩa tiếng Việt, phiên âm,....
Bây giờ e muốn tách phần nào ra phần đó, từ ra từ, nghĩa ra nghĩa, phiên âm và các thứ khác củng vậy. Mục đích là để cho nó chạy random một từ nào đó để mình kiểm tra lại kiến thức rồi sau đó mới cho hiện nghĩa để check lại.
(Đây là 3000 từ thông dụng theo oxford)
 

File đính kèm

Web KT

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

Back
Top Bottom