XIn giúp đỡ câu lệnh VBA tìm dư liệu giống nhau ạ

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

kiendaide1

Thành viên chính thức
Tham gia
3/4/13
Bài viết
93
Được thích
4
Em có bảng chấm công có dư liệu tại cột B. em muốn tìm nhưng người có họ và tên trùng nhau và gán cho nó giá trị A, B, C... để phân biệt nhưng người đó. Xin các bác giúp hộ em ạ. em gửi kèm dư liệu ( giá trị trả về mong muốn em có bôi mầu vàng ạ)
 

File đính kèm

Em có bảng chấm công có dư liệu tại cột B. em muốn tìm nhưng người có họ và tên trùng nhau và gán cho nó giá trị A, B, C... để phân biệt nhưng người đó. Xin các bác giúp hộ em ạ. em gửi kèm dư liệu ( giá trị trả về mong muốn em có bôi mầu vàng ạ)
Chọn cột B. Vào Thẻ Home/Conditional Formatting/ Highlight Cells Rules/ Duplicate Value rồi định dạng màu cho nó.
Xong đâu đó rồi thì lọc theo cái màu vừa định dạng
Sẽ là tổng của những Người có tên trùng nhau
Sau đó Lọc tiếp theo từng người rồi thêm A, B, C như bạn muốn.Do lượng người trùng không phải là nhiều. Nên khỏi cần cô de cô dẹo gì cho mất công ra
 
Làm thì được theo iêu cầu của bạn, nhưng về lâu dài thiếu căn cơ;
Chi bằng ta tạo mỗi cá nhân 1 mã duy nhất (na ná như CCCD í!)
vÍ DỤ:

Ho & TenMã NV
Đặng Thị Minh TrangFMT00
Đinh Thị ThànhFTT00
Đỗ Tiến HanhFTH00
Đỗ Văn SinhFVS00
Đoàn Thị BáchFTB00
Hoàng Đình MinhHFM00
Hoàng Thị Thúy HuyềnHTH00
Lê HiếuLJH00
Lương Thị KhươngLTK00
Lương Thị KhươngLTK01
Lương Thị KhươngLTK02
Lương Văn SơnLVS00
Du Tiến ĐạtDTF00

Còn như bạn thì chỉ xài trong nội bộ cơ quan mà thôi; Tính thuế thu nhập mà trình danh sách kiểu bạn có mà ăn cám hẩm
 
Chọn cột B. Vào Thẻ Home/Conditional Formatting/ Highlight Cells Rules/ Duplicate Value rồi định dạng màu cho nó.
Xong đâu đó rồi thì lọc theo cái màu vừa định dạng
Sẽ là tổng của những Người có tên trùng nhau
Sau đó Lọc tiếp theo từng người rồi thêm A, B, C như bạn muốn.Do lượng người trùng không phải là nhiều. Nên khỏi cần cô de cô dẹo gì cho mất công ra
Da cái này em lấy ví dụ thoi ạ. chứ công ty em hơn 900 còn người mà 12 tháng em làm cả bảng lương và công nữa rất mong mọi người giúp đỡ ạ
Bài đã được tự động gộp:

Làm thì được theo iêu cầu của bạn, nhưng về lâu dài thiếu căn cơ;
Chi bằng ta tạo mỗi cá nhân 1 mã duy nhất (na ná như CCCD í!)
vÍ DỤ:

Ho & TenMã NV
Đặng Thị Minh TrangFMT00
Đinh Thị ThànhFTT00
Đỗ Tiến HanhFTH00
Đỗ Văn SinhFVS00
Đoàn Thị BáchFTB00
Hoàng Đình MinhHFM00
Hoàng Thị Thúy HuyềnHTH00
Lê HiếuLJH00
Lương Thị KhươngLTK00
Lương Thị KhươngLTK01
Lương Thị KhươngLTK02
Lương Văn SơnLVS00
Du Tiến ĐạtDTF00

Còn như bạn thì chỉ xài trong nội bộ cơ quan mà thôi; Tính thuế thu nhập mà trình kiểu bạn có mà ăn cám hẩm
da em chỉ sài nội bộ cơ quan và phục vụ công việc của em thoi ạ. rất mong bác hỗ trợ em cái code ạ
 
Da cái này em lấy ví dụ thoi ạ. chứ công ty em hơn 900 còn người mà 12 tháng em làm cả bảng lương và công nữa rất mong mọi người giúp đỡ ạ
Vậy là cuối cùng là vẫn muốn sử dụng VBA à. hơn 900 con người chứ chẳng lẽ 900 con người có tên giống nhau sao?
 
dạ ko nhất thiết abc ạ. miễn là sao phân biết là được. em dùng abc là thói quen thoi ạ
Này thì code VBA. Tự kiểm chứng kết quả
Mã:
Option Explicit
Sub ABC()
    Dim Dic As Object, Arr(), Res(), i&
    Set Dic = CreateObject("scripting.dictionary")
    With Sheets("1- 2022")
        Arr = .Range("B3:B" & .Range("B" & Rows.Count).End(3).Row).Value
        ReDim Res(1 To UBound(Arr), 1 To 1)
        For i = 1 To UBound(Arr)
            If Dic.exists(Arr(i, 1)) = False Then
                Dic.Add Arr(i, 1), 1
                Res(i, 1) = Arr(i, 1)
            Else
                Dic(Arr(i, 1)) = Dic.Item(Arr(i, 1)) + 1
                Res(i, 1) = Arr(i, 1) & " " & Dic.Item(Arr(i, 1))
            End If
        Next
        .Range("B3").Resize(UBound(Arr), 1).Value = Res
    End With
End Sub
 
Công ty 900 người mà làm việc kiểu này thì có ngày công đoàn nó nện cho nát.
Nhưng mà chắc có bi phòng thì cũng qua thôi.

Thắc mắc:
Sao trên GPE này toàn công ty hằng ngàn công nhân mà quản lý lỏng lẻo vậy ta? Tôi từng làm nhiều hệ thống, cứ 100 công nhân là bắt đầu phải thiết kế hoàn chỉnh rồi.
Trên GPE này cũng toàn doanh nghiệp buôn bán hằng triệu phát sinh, ERP peo, SAP siếc tùm lum mà thiết kế những bảng ghi phát sinh như hạch.
 
dạ ko nhất thiết abc ạ. miễn là sao phân biết là được. em dùng abc là thói quen thoi ạ
Bổ sung thêm code. Mà cũng chẳng hiểu cứ code để làm gì? 900 người thì lọc tay cũng ra được số người trùng tên. Quản lý nhân sự thế này thì chắc có ngày công nhân nó đâp vỡ alo vì nhầm lẫn công cán các kiểu.
Rich (BB code):
Sub ABC()
    Dim ws As Worksheet
    Dim rg As Range
    Dim lr, i, j, k As Long

    Set ws = ActiveSheet
    lr = ws.Cells(Rows.count, "B").End(xlUp).Row
    Set rg = ws.Range("B1:B" & lr)
    
    For i = 1 To lr
        k = 0
        For j = i + 1 To lr
            If rg.Cells(i).Value = rg.Cells(j).Value Then
                k = k + 1
                rg.Cells(j).Value = rg.Cells(j).Value & " " & Chr(64 + k)
            End If
        Next j
    Next i
    MsgBox "OK! Xong!"
End Sub
 
. . . . ví dụ thoi ạ. chứ công ty em hơn 900 còn người mà 12 tháng em làm cả bảng lương và công nữa rất mong mọi người giúp đỡ ạ

da em chỉ sài nội bộ cơ quan và phục vụ công việc của em thoi ạ. rất mong bác hỗ trợ em cái code ạ
Công ti có khoảng 9OO nhân mạng mà CSDL không có lấy mã NV thì bạn nên xin đi chỗ khác mà làm tốt hơn
Còn chần chờ thì có ngày:
→ Công nhân viên họ xé xác bạn vì sai lằm ngớ ngẫn nào đó trong tính toán của bạn;
→ Tòa sẽ gởi trác đòi bạn hầu vì ngu ngơ giúp cho người lao động trốn thuế thu nhập cá nhân
→ Lãnh đạo CTi cho rằng bạn là nguyên nhân gây lỗi rối loạn trong hệ thống điều hành của họ;
Vì lẽ là danh sách nhân sự của bạn (phụ trách - do có thêm a bờ, cờ,. . .) không khớp với danh sách của phòng kế toán, . . .
. . . . .
 
. . . . . Nếu có quá 29 người cùng tên thì hết bảng chữ cái à
Hết ký tự thì mần ký số; Mà cần thiết thì thêm ký tự đặc biệt (như @, #, $ , %,. . . . )



@Chủ bài đăng: Nếu bạn cần tạo giúp bộ mã như #3 thì gởi file (giả lập cũng được) mình sẽ tạo mã cho.
[File chỉ cần cột [Họ & Tên] & thay đối tên hay thường gặp như Hoa, Hông, Hương, Hoàn, Hùng => H
Thay Dũng, Dung, Dùng, Dụng . . . => D
Nguyễn, Nguyên, nguyện, Ngô, Nhâm, Nhữ, . . . => N
. . . .]
 
Em cam ơn các bác đa giúp đỡ em ạ
 
Công ti có khoảng 9OO nhân mạng mà CSDL không có lấy mã NV thì bạn nên xin đi chỗ khác mà làm tốt hơn
Còn chần chờ thì có ngày:
→ Công nhân viên họ xé xác bạn vì sai lằm ngớ ngẫn nào đó trong tính toán của bạn;
→ Tòa sẽ gởi trác đòi bạn hầu vì ngu ngơ giúp cho người lao động trốn thuế thu nhập cá nhân
→ Lãnh đạo CTi cho rằng bạn là nguyên nhân gây lỗi rối loạn trong hệ thống điều hành của họ;
Vì lẽ là danh sách nhân sự của bạn (phụ trách - do có thêm a bờ, cờ,. . .) không khớp với danh sách của phòng kế toán, . . .
. . . . .
1. Công nhân xé xác: Nhiều bảng chấm công trên đưa lên GPE này dùng công thức khủng thay vì cột phụ. Công nhân không giỏi toán không theo nổi, sẽ bị bên quản lý dùng chính sách "cả vú lấp miệng em" (bác không biết tính đấy thôi, chứ máy vi tính làm sa tính sai được)
Muốn giải quyết chỉ có thể đưa lên công đoàn. Và về cầu nguyện là công đoàn không ăn phong bì của chủ.
2. Tòa: Như trên, hễ công đoàn chịu mở túi cho nhét vào thì êm hết.
3. Lãnh đạo: Cái này thì do số kiếp con người thôi. Khi công ty làm ăn bê bối thì bạn có làm cách nào lãnh đạo công ty cũng vẫn quy tội được.
 
1. Công nhân xé xác: Nhiều bảng chấm công trên đưa lên GPE này dùng công thức khủng thay vì cột phụ. Công nhân không giỏi toán không theo nổi, sẽ bị bên quản lý dùng chính sách "cả vú lấp miệng em" (bác không biết tính đấy thôi, chứ máy vi tính làm sa tính sai được)
Muốn giải quyết chỉ có thể đưa lên công đoàn. Và về cầu nguyện là công đoàn không ăn phong bì của chủ.
2. Tòa: Như trên, hễ công đoàn chịu mở túi cho nhét vào thì êm hết.
3. Lãnh đạo: Cái này thì do số kiếp con người thôi. Khi công ty làm ăn bê bối thì bạn có làm cách nào lãnh đạo công ty cũng vẫn quy tội được.
Em cam ơn các bác đa giúp đỡ em ạ
Em thấy riêng đoạn quản lý mà chữ nghĩa như dòng màu đỏ trên dòng này là anh em công nhân sẽ vô cùng khổ cực vì quá ẩu rồi.
 
Web KT

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

Back
Top Bottom