Hàm trả về kết quả giới tính theo Căn cước công dân

  • Thread starter Thread starter 70211119
  • Ngày gửi Ngày gửi
Liên hệ QC

70211119

Thành viên mới
Tham gia
10/10/12
Bài viết
27
Được thích
5
Em chào anh chị.
Em cần xây dựng hàm tự tạo bằng VBA.
Thông tin đưa vào là chuỗi ký tự số căn cước công dân 12 chữ số, kết quả trả ra là giới tính Nam hay Nữ.
Quy tắc xác định theo bài viết sau: https://luatvietnam.vn/tin-phap-lua...-the-can-cuoc-cong-dan-230-17670-article.html
Kính nhờ Anh/Chị hướng dẫn giúp em ạ.
Em xin cảm ơn./.
Vì sao phải dùng hàm tự tạo mà không dùng công thức, công thức bài này cũng rất nhẹ nhàng
 
Em chào anh chị.
Em cần xây dựng hàm tự tạo bằng VBA.
Thông tin đưa vào là chuỗi ký tự số căn cước công dân 12 chữ số, kết quả trả ra là giới tính Nam hay Nữ.
Quy tắc xác định theo bài viết sau: https://luatvietnam.vn/tin-phap-lua...-the-can-cuoc-cong-dan-230-17670-article.html
Kính nhờ Anh/Chị hướng dẫn giúp em ạ.
Em xin cảm ơn./.
Dùng thử công thức, chuỗi căn cước tại A1
Mã:
=IF(MOD(MID(A1,4,1)*1,2)=0,"Nam","Nữ")
 
Chắc bạn ấy muốn lập công thức tổng quát tức giới tính có giá trị "0", "1", ..., "9" (tức từ thế kỷ 20 đến thế kỷ 24) theo đường dẫn đã đưa ở #1
Mình đang rãnh tay nên lập file có bảng tra bên dưới
Có gì bạn xem đúng ý chưa nhé
 

File đính kèm

Nhưng thớt lại đăng trong box Hàm và công thức @!>><
(/ậy ai trả lời khi bài chưa được MODs dời về đúng chỗ cũng là chưa thuộc nội 2ui tại thời điểm đăng bài!
$$$$@

(/ậy những người chưa phân biệt được giới tính khi sinh ra thì sao đây ta, ông Nhà nước ới ơi!
 

File đính kèm

  • C0404.jpg
    C0404.jpg
    58 KB · Đọc: 4
Em xin lỗi vì đăng bài nhầm box. Do em biết là VBA nhưng nó cũng liên quan đến hàm (tự tạo) nên em mới chọn box này...
Cảm ơn Anh/Chị đã hỗ trợ nhiệt tình.
 
Lần chỉnh sửa cuối:
...
(/ậy những người chưa phân biệt được giới tính khi sinh ra thì sao đây ta, ông Nhà nước ới ơi!
Thì đoán đại một giới tính. Chừng rõ thì đổi.
Mấy người đổi giới tính thì cũng vậy thội.
Mình hơi thắc mắc là mấy người lúc đi Thái là một giới tính, về là giới tính khác thì Hải quan xử sao ta? Có lẽ trước khi đi, người ta phải xin trước "chứng minh đổi giống"
 
Mình hơi thắc mắc là mấy người lúc đi Thái là một giới tính, về là giới tính khác thì Hải quan xử sao ta? Có lẽ trước khi đi, người ta phải xin trước "chứng minh đổi giống"
Họ chuyển giới nhưng ăn mặc, tóc tai,... như giới trước kia thì hải quan đâu nhận thấy sự khác biệt. Tôi nghĩ vậy.
 
Mã:
Function GIOITINH_CCCD(cccd As String)
    cccd = WorksheetFunction.Substitute(Trim(cccd), ".", "")
    namsinh = Mid(cccd, 5, 2) * 1
    gioitinh = Mid(cccd, 4, 1) * 1
    If Len(cccd) = 12 Then
        Select Case gioitinh
            Case 0, 2, 4, 6, 8: GIOITINH_CCCD = "Male"
            Case 1, 3, 5, 7, 9: GIOITINH_CCCD = "Female"
        End Select
    Else: GIOITINH_CCCD = "Khong phai CCCD 12 so"
    End If
End Function
Nhờ tham khảo Anh/Chị em đã làm được rùi ạ. Cách thức em làm như trên ạ! ^_^
E cảm ơn mọi người đã hỗ trợ./.
 
Mã:
Function GIOITINH_CCCD(cccd As String)
    cccd = WorksheetFunction.Substitute(Trim(cccd), ".", "")
    namsinh = Mid(cccd, 5, 2) * 1
    gioitinh = Mid(cccd, 4, 1) * 1
    If Len(cccd) = 12 Then
        Select Case gioitinh
            Case 0, 2, 4, 6, 8: GIOITINH_CCCD = "Male"
            Case 1, 3, 5, 7, 9: GIOITINH_CCCD = "Female"
        End Select
    Else: GIOITINH_CCCD = "Khong phai CCCD 12 so"
    End If
End Function
Mấy công thức hướng dẫn bên trên đều dùng đặc thù chẳn/lẻ của số để xác định giới tính đó bạn. Nó sẽ gọn hơn Select case.
 
Mã:
Function GIOITINH_CCCD(cccd As String)
    cccd = WorksheetFunction.Substitute(Trim(cccd), ".", "")
    namsinh = Mid(cccd, 5, 2) * 1
    gioitinh = Mid(cccd, 4, 1) * 1
    If Len(cccd) = 12 Then
        Select Case gioitinh
            Case 0, 2, 4, 6, 8: GIOITINH_CCCD = "Male"
            Case 1, 3, 5, 7, 9: GIOITINH_CCCD = "Female"
        End Select
    Else: GIOITINH_CCCD = "Khong phai CCCD 12 so"
    End If
End Function
Nhờ tham khảo Anh/Chị em đã làm được rùi ạ. Cách thức em làm như trên ạ! ^_^
E cảm ơn mọi người đã hỗ trợ./.
E với ấp. Code luộm thuộm lắm.
namsinh = Mid(cccd, 5, 2) * 1 ---> cái này không dùng, tính chi vậy?
gioitinh = Mid(cccd, 4, 1) * 1 ---> cái này chỉ đề cập một lần, đăt vao biến mất công
Select Case gioitinh ---> Select Case Mid(cccd, 4, 1) * 1
* 1 ---> đổi chuỗi ra số thì dùng hamf CLng hay Val chứ VBA đâu có như bảng tính mà ép kiểu.

02468 là số chẵn, 13579 là số lẻ. Trong VBA để xét chẵn lẻ, người ta xét cái bit 1.

GIOITINH_CCDD = IIF(CLng(Mid(cccd, 4, 1)) And 1, "Nam", "Nữ")

Meo với Phi meo. Chuyện căn cước cũng bày đặt dùng tiếng Tây.
 
02468 là số chẵn, 13579 là số lẻ. Trong VBA để xét chẵn lẻ, người ta xét cái bit 1.
...
Meo với Phi meo. Chuyện căn cước cũng bày đặt dùng tiếng Tây.
"bit 1" nó hàn lâm quá ít người biết, nếu là tôi thì dùng mod = 0
Nếu làm công ty nước ngoài, hoặc file gởi đối tác nước ngoài thì sẽ buộc phải dùng Meo, phi meo.
 
"bit 1" nó hàn lâm quá ít người biết, nếu là tôi thì dùng mod = 0
Nếu làm công ty nước ngoài, hoặc file gởi đối tác nước ngoài thì sẽ buộc phải dùng Meo, phi meo.
Test chẵn lẻ là căn bản lập trình. Bất cứ học ngôn ngữ mới nào cũng nên biết.
Meo, phi meo:
1. ở bài #1, thớt có nói "kết quả trả ra là giới tính Nam hay Nữ". Tự nhiên đến bài #14, làm được rồi hứng chí xổ Tây.
2. căn cước công dân thì là công dân việt, mặc định tiếng Việt. Lúc nào làm cbo Mẽo thì nêu rõ làm cho Mẽo.
 
Xài cái này cho lạ mắt nè:
=IIF(A/2=A\2, "Yes", "No")
 
Web KT

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

Back
Top Bottom