Các bác cho em hỏi về các lọc tên bằng các kí tự đầu (1 người xem)

Liên hệ QC

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

kegiaumat

Thành viên mới
Tham gia
6/7/08
Bài viết
34
Được thích
0
Em cần phải nhập lương cho một bảng lương của công ty (khoảng mấy chục nhân viên). Khi Em tra được chứng từ xong tên bà NGUYỄN THỊ LIÊN thì em lại tìm trên bảng excel rất mất thời gian. Bây giờ em muốn đánh vào ô A1 "NTL" ấn enter thì các dòng chứa tên người khác sẽ ẩn đi chỉ hiện lại bà Nguyễn thị liên, hoặc đánh vào ô A1 "NT" ấn enter thì nó sẽ chỉ hiện những người có tên Nguyễn Thị ... hay Nguyễn Thi ... hay Nguyễn Thoa ....... Kiểu như mình chọn bài hát trong KARAOKE đó các bác. Mong được sự chỉ giáo của các bác
 

File đính kèm

Em cần phải nhập lương cho một bảng lương của công ty (khoảng mấy chục nhân viên).

Có mấy chục nhân viên thì dùng Filter đi bạn nhé, chứ đừng nghĩ đến giải pháp khác cho mất thời gian.
 
Upvote 0
Có cách này nè, không tùy thuộc vô ít hay nhiều nhân viên:
Bạn tạo mã nhân viên theo 1 khuôn fép/qui luật nhất định; Mà khuôn fép này cho fép bạn hay người có mã đều nhớ mã của mình; Khi đó, lúc cần bạn cứ lọc theo mã của nhân viên đó sẽ ra ngay người đó hay nhóm nhỏ xíu đó;
Tôi ví dụ như sau
PHP:
        Tên       | Mã
Bùi Thị Kim Triều |BKT00
Cao Thị Hồng Vân  |CHV00
Dương Lê          |DJL00
Đỗ Dương Hà       |FDH00
Huỳnh Thị Tuyết Nhi|HTN00
Huỳnh Thị Nhàn    |HTN01
Lê Thị Hòa Linh   |LHL00
Lý Thị Hoài Lynh  |LHL01
  . . .           | . . .

(Mình đã thử với 1 trường có 1.500 HS chỉ số fần mà mình gọi là 'fần định trị' dưới 18.
Có nghĩa là danh sách lọc cùng lắm có 18 em HS mà thôi.)
 
Upvote 0
Đã viết xong cảm ơn các bác đã quan tâm
Mã:
 Function Cat(str, stt)
    str = Trim(str)
    mlen = Len(str)
    k = 0
    If stt = 1 Then
    kitudau = 1
    End If
    For j = 1 To mlen
        If Mid(str, j, 1) = " " Then
        k = k + 1
            If stt = k + 1 Then
                kitudau = j
            End If
            If stt = k Then
                kitusau = j
            Exit For
            End If
        End If
    Next
    If j = mlen + 1 Then: kitusau = mlen
    If stt > k + 1 Then
        Cat = "KOTIMTHAY"
    Else
        Cat = Trim(Mid(str, kitudau, kitusau - kitudau + 1))
    End If
End Function

Sub Tim()
Application.ScreenUpdating = False
matra = ActiveSheet.Cells(2, 1).Value
nhanvien = Application.CountIf(ActiveSheet.Range(Cells(4, 1), Cells(53, 1)), "<>")
Range("4:53").Select
    Selection.EntireRow.Hidden = False
For i = 1 To nhanvien
    kiemtraok = True
    For j = 1 To Len(matra)
        kiemtraok = kiemtraok And Mid(matra, j, 1) = Left(Cat(Cells(3 + i, 1).Value, j), 1)
    Next
        If Not (kiemtraok) Then
            Cells(3 + i, 1).Select
            Selection.EntireRow.Hidden = True
        End If
Next
Application.ScreenUpdating = True
End Sub
Có mấy chục nhân viên thì dùng Filter đi bạn nhé, chứ đừng nghĩ đến giải pháp khác cho mất thời gian.
Đó là em ví dụ thôi chứ phòng mà cả trăm nhân viên thì em toi bác à:-=
 
Lần chỉnh sửa cuối:
Upvote 0

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

Back
Top Bottom