Excel VBA之日期篇 4.5 HR專場 充分利用身份證獲取員工信息

2021-01-11 Excel和VBA

場景模擬

今天的這些方法,主要集中在員工個人信息方面的一些處理,比方說性別,年齡,出生年月日等,同時順帶分享一個我收藏了好久的大招,籍貫的處理,這個需求是非常的偏門少見的,所以我當初也是百度了很久,翻遍了N多資料才找到的,今天分享給大家。今天主要涉及的一些文本方面的處理,大家可以趁機複習下文本方面的處理方法,同時也可以了解到簡單的函數在工作中扮演的重要作用。

場景分析

假設我們手上的這份表是這樣子的,我們有了公司現在的部分員工的數據,這些數據都是從員工的簡歷上面獲取的,這兩個數據是肯定不會不錯的,現在HR需要做一份全公司所有的員工的信息表,比方說獲得對方的年齡,性別,生日,籍貫,那麼我們需要如何用VBA來一步步實現呢?

我們來看看代碼

Sub test()

Dim i&, sth As Worksheet, arr

arr = Range(Cells(2, 2), Cells(5404, 2))

arr = WorksheetFunction.Transpose(arr)

For i = 2 To 11

BOG = Right(Cells(i, "e"), 1) Mod 2

Bir = Mid(Cells(i, "e"), 7, 8)

SixNum = Int(Left(Cells(i, "e"), 6))

If BOG = 0 Then

Cells(i, "f") = "女"

Else

Cells(i, "f") = "男"

End If

Cells(i, "g") = WorksheetFunction.text(Bir, "0-00-00")

Cells(i, "h") = DateDiff("yyyy", Cells(i, "g"), Now)

r = Application.WorksheetFunction.Match(SixNum, arr, 0)

Cells(i, "i") = Cells(r + 1, 3)

Next i

End Sub

來看看看效果

是不是很完美呢

代碼解析

今天的代碼看起來比較的長,但是其實也沒有多少太複雜的東西,都非常的簡單,都是我們之前學習或者分享過的知識點,我們大致來說下

arr = Range(Cells(2, 2), Cells(5404, 2))

arr = WorksheetFunction.Transpose(arr)

這段代碼的意思是獲得一個數組,數組的方法雖然沒有詳細的說明,但是我們已經在之前分享過很多次數組的構造方法了,相信大家已經會了。

然後我們開始進行遍歷

BOG = Right(Cells(i, "e"), 1) Mod 2

這裡有一個方法需要大家學習下,我們通過身份證判斷性別的時候,通常都是判斷證件最後一位數是奇數還是偶數的,這個奇偶數的判斷,就可以通過mod來實現,mod在其他的語言中也存在,是整除的意思,比方說python語句中也有這樣的方法,能夠被2整除,那就是偶數,代表是女性,不能被2整除那就是男性。這裡我們先得到身份證最後最後一數除以2的結果,保存下來

Bir = Mid(Cells(i, "e"), 7, 8)

然後獲得生日的8位數,這個用mid函數就可以了。

SixNum = Int(Left(Cells(i, "e"), 6))

因為我們後面需要獲得員工的籍貫的歸屬地,而籍貫都是通過前面6位數來獲得分析的,而籍貫表也是小編千辛萬苦找了很久才找到的,這裡就直接分享給大家了,需要的童鞋可以成為我的粉絲,然後私信我

之後就是簡單的text函數,datediff函數了,這兩個都非常的簡單。

重點來說下最後一個match方法,這是數組中快速尋找對應匹配值的方法,他能夠找到對應的數字在數字中的位置,注意,這裡放回的結果是位置,我們來調試看看結果

r = Application.WorksheetFunction.Match(SixNum, arr, 0)

110101在數組中是第一個位置,是不是這樣呢,來看看數組

經過驗證時沒有錯的

有了位置之後我們就可以得到對應的區域了,因為標題行本身佔了一行,所以我們得到位置之後加1,就是區域所在的單元格位置了。

Cells(i, "i") = Cells(r + 1, 3)

相關焦點

  • Excel VBA之日期篇 4.1 在職時間計算 專為HR量身打造
    前景提要我們終於完成了VBA函數篇的分享,在函數篇中,我們需要的都是一些非常基礎的知識,這些非常基礎的知識,可能大家並不是很感興趣,畢竟能夠解決的問題並不是很多,後面我將會儘量將知識點和實際的場景相結合,儘量幫助大家解決更多的問題,本篇章我們主要分享的是一些日期和時間相關的知識,希望可以解決大家在日常工作中在時間處理上面的一些問題,如果大家有什麼相關的問題,也可以提出來
  • Excel VBA之日期篇 4.4合同到期時間計算 HR必備方法
    前景提要今天我們繼續來分享一些日期方面的問題,今天公司的HR過來找我,向我請教有沒有什麼好的方法能夠快速的計算出合同到期的時間,他說之前我雖然分享過一篇關於計算員工在職時間方面的文章,他也看過,但是他覺得並不適合他的工作場景,因為那個只能計算兩個時間之間差距,現在他反而是有了合同的時效
  • HR常用的Excel函數公式大全(共21個),幫你整理齊了!
    蘭色進行了整理編排,於是有了這篇本平臺史上最全HR的Excel公式+數據分析技巧集。  一、員工信息表公式  退休日期 (I列)  =TEXT(EDATE(G3,12*(5*(F3="男")+55)),"yyyy/mm/dd aaaa")  5、籍貫(M列)  =VLOOKUP(LEFT
  • 掌握這7條excel函數,自動化生成數據周報上篇
    excel的二八原則曾經在面試時候被問到VLOOKUP和HLOOKUP有什麼區別,我回答的是前者是以列匹配,後者是以行匹配。面試完我一個勁兒後悔沒有回答好,對這個函數不熟悉,回答太簡單。諷刺的是已經過去好幾年,我卻一次未用到過HLOOKUP。所以真的沒必要抱著一本excel大全在那挨個學函數,浪費時間。
  • 身為會計不得不知的Excel公式,整理全了!收藏!
    在會計的電腦中,經常看到海量的Excel表格,員工基本信息、提成計算、考勤統計、合同管理....看來再完備的會計系統也取代不了Excel表格的作用。於是,儘可能多的收集會計工作中的Excel公式,所以就有了這篇Excel公式+數據分析技巧集。
  • 最常用日期函數匯總excel函數大全收藏篇
    輸入公式: =EDATE(B2,C2)-1 4、EOMONTH 函數EOMONTH:返回一串日期,表示指定月數之前或之後的月份的最後一天。
  • Excel VBA之日期篇 4.6 輕鬆獲得月末日期 財務結算無壓力
    前景提要臨近年關,又來到了每年公司人員流動最大的時候了,尤其是今年受到疫情的影響,很多人都打算提前回家,害怕晚走就不能回家了,但是工作還是要有人做的,那麼公司就不得不請臨時工來幫忙了,臨時工之所謂臨時工,因為都是臨時的,說走就走,來的快走的也快,財務核算全年財務數據的時候就很頭疼了,尤其是月末日期的確定,不方,今天我們來繼續嘗試用VBA獲得準確的月末日期
  • 用excel製作文件管理器,所有版本皆可使用
    Hello,大家好,之前跟大家分享了使用excel中的power query功能製作一個文件管理器,但是很多分析反應自己的excel版本不夠高,無法使用,今天就跟大家分享如何使用宏表函數製作文件管理器,他也是可以實現文件刷新的,這個的操作也不難,下面就讓我們來看下他是如何設置的一、什麼是宏表函數以及FILES函數宏表函數是早期低版本excel的產物
  • Excel VBA之函數篇-3.5時間錄入無煩惱
    今天就繼續分享一個在數據錄入過程中,能夠欄位登記日期的方法。 函數說明 今天我們的功能還是通過VBA自帶的函數來實現,日期函數:date(),很簡單的日期函數,返回的結果就是今天的日期,考慮到錄入數據的過程中,可能某些場景我們也可需要精確到具體的時間,時分秒,所以今天一起介紹下另外一個時間函數,time(),他返回的是現在的時間,時分秒。
  • Excel利用MID函數提取出生年月日
    小編今天要為大家分享的是如何利用MID函數來提取身份證號上的出生年月日如下圖所示,是員工的身份證號碼通過MID函數,我們可以看到結果已經計算出來了。接下來小編就為大家分析MID函數=MID(b2,7,8),其中b2是你所需要求的數據文本,7表示身份證號的第七位開始,8表示的是我們要提取8位數,也就是說我們需要從第七位數開始,提取8位數字。
  • WPS Excel: 從身份證中提取生日、年齡、性別、籍貫、生肖、星座
    從一串身份證號碼中,可以1秒提取出這個號碼對應的生日、年齡、性別、籍貫、生肖、星座。作為一名HR,需要登記員工的許多信息,如果學會了怎麼從身份證號碼中提取這些信息,可以節省許多時間。提取年齡公式:「=DATEDIF(B2,TODAY(),"Y")」B2單元格是我們提取到的生日,DATEDIF函數中前兩個表示日期,最後一個參數表示計算方式,「Y」表示計算這兩個日期之間相差多少年。
  • 會計、人事專員一定學的Excel函數公式:員工信息與數據分析
    職場中,人事專員、會計經常面臨製作員工信息表、工資表等,這時候你要是會下面的函數公式,不僅表格製作上得心應手,最重要的是數據分析,如員工學歷分析、各年齡段人數佔比等等,今天小編統統把這些公式列出來,工作中直接套用即可,具體多少個公式還是自己看吧!
  • 職場達人必備:HR常用的Excel函數公式大全
    2017年08月15日13:36 來源:職場指南 在HR同事電腦中經常看到海量的Excel表格,員工基本信息、提成計算
  • 人事用Excel從身份證號裡面自動計算年齡,一個公式實現!
    在人事工作中,對員工的身份證信息處理是經常要做的事,如何快速從身份證號中計算年齡呢?僅根據年份計算年齡如下所示,是員工的身份證信息(數據模擬,最後四位對案例沒有影響,都顯示為X)我們知道身份證號的第7至14位,代表著出生的年,月,日,現在我們僅需要根據出生的年份來計算年齡,如呂布是1993年的,我們只需要用2019-1993=26來計算年齡,所以首先要把身份證號中的第7位至10位提取出來:
  • excel日期函數技巧:到期時間提醒的幾種設置方法
    關於這些何時到期的自動提醒,我們可以使用excel中的到期提醒功能實現。今天將給大家提供5種製作到期提醒的方法,第一種最簡單,最後一種最人性化並且能實現篩選控制。學習更多技巧,請收藏關注部落窩教育excel圖文教程。
  • excel數字結構解析:日期和時間的自動識別規則
    如在單元格中輸入「00/5/30」,則顯示「2000/5/30」;在單元格中輸入「40/5/30」,則顯示「1940/5/30」。3.輸入的日期如果只有「年月」,而沒有「日」,excel會自動以此月的1日作為其日期。如在單元格中輸入「2020/1」,則顯示「2020/1/1」。
  • 15個excel常用函數,可直接套用,幾乎每天都用得到,收藏備用吧
    身份證號碼提取出生日期公式:=--TEXT(MID(B3,7,8),"0000-00-00")在這裡我們使用mid函數提取身份中號碼中的出生日期,然後使用text函數設置數字的格式,因為text是一個文本函數,所以它輸出的結果是一個文本,我們在公式的最前面輸入兩個減號,將文本格式的數值轉換為常規格式的設置
  • excel根據出生日期自動計算(年齡、星座、生肖)的方法
    在工作辦公中,我們基本都會使用到excel軟體編輯表格,excel軟體中的函數公式可以快速的對表格裡的內容進行計算,從而大大的減輕了我們的工作量。這次小編給大家分享下,根據excel表格裡的出生日期,自動計算年齡、生肖和星座的方法。
  • 如何從身份證號碼中提取出生年月日及性別
    在工作單位有許多的員工需要填寫身份證,到辦公室又要一個一個的輸入,太麻煩了,我們如何用一個簡單的方法填寫呢,下面就介紹一下, 打開excel表格,如圖,輸入身份證號碼, 如果想提取全部的 ****年**月**日,只要在身份證的後面框內輸入=MID(A1,7,8),
  • 「Excel技巧」Excel快速輸入當前日期時間的快捷法及函數法
    常年接觸excel,肯定會跟日期時間打交道。掌握一些關於日期和時間的輸入方法和技巧,可以幫助你快速完成工作。現在就來看看關於日期時間的輸入技巧及函數輸入法。一、快速獲取當前日期時間1、返回當前日期和時間函數法:在目標單元格裡輸入公式:=now()。快捷鍵法:在鍵盤上先按下【Ctrl+;】,然後再按下【Ctrl+Shift+;】,即插入了當前的日期和時間。