官术网_书友最值得收藏!

2.2.5 從身份證號碼中提取出生日期和性別

如果工作表中已經包含身份證號碼的信息,可以通過公式和函數快速從身份證號碼中提取出生日期和性別。18位身份證號碼中的第7~14位數字標識一個人的出生日期。在這8位數字中,前4位表示出生年份,后4位表示出生的月和日。18位身份證號碼中的第17位數字標識一個人的性別,如果該數字為奇數,則為男性,否則為女性。

如圖2-18所示,從B列的身份證號碼中提取員工的出生日期和性別。在C2單元格中輸入下面的公式并按Enter鍵,然后將公式向下復制到其他單元格,得到每個員工的出生日期。

     =TEXT(MID(B2,7,8),"0000年00月00日")

圖2-18 提取出生日期

公式解析:使用MID函數從身份證號碼的第7位開始,連續提取8位數字。然后使用TEXT函數將提取出的數字格式設置為“年月日”的形式。TEXT函數的第二個參數中的0是數字占位符,其數量決定要設置的數字位數。在本例中,“0000年00月00日”是將8位數字中的前4位表示為年份,第5~6位表示為月份,最后兩位表示為具體的日期。

在D2單元格中輸入下面的公式并按Enter鍵,然后將公式向下復制到其他單元格,得到每個員工的性別,如圖2-19所示。

     =IF(MOD(MID(B2,17,1),2),"男","女")

圖2-19 提取性別

公式解析:使用MID函數提取身份證號碼中的第17位數字,然后使用MOD函數判斷該數字是否能被2整除,如果不能被2整除,說明該數字是奇數,MOD函數的返回值是1,由于非0數字等價于邏輯值TRUE,所以此時IF條件的判斷結果為TRUE,這樣就會返回IF函數條件為真時的部分,即為本例中的“男”。如果數字能被2整除,說明該數字偶數,MOD函數的返回值是0,相當于邏輯值FALSE,此時將返回IF函數條件為假時的部分,即本例中的“女”。

下面列出了本例中用到的幾個函數的語法格式。

1.MID函數

MID函數用于從文本中的指定位置開始,提取指定數量的字符,語法格式如下:

     MID(text,start_num,num_chars)

● text(必選):要從中提取字符的內容。

● start_num(必選):提取字符的起始位置。

● num_chars(可選):提取的字符數量,如果省略該參數,其值默認為1。

2.MOD函數

MOD函數用于計算兩個數字相除后的余數,語法格式如下:

     MOD(number,divisor)

● number(必選):表示被除數。

● divisor(必選):表示除數。如果該參數為0,MOD函數將返回#DIV/0!錯誤值。

3.TEXT函數

TEXT函數用于設置文本的數字格式,與在“設置單元格格式”對話框中自定義數字格式的功能類似,語法格式如下:

     TEXT(value,format_text)

● value(必選):要設置格式的內容。

● format_text(必選):自定義數字格式代碼,需要將格式代碼放到一對雙引號中。

4.IF函數

IF函數用于在公式中設置判斷條件,根據判斷結果得到的邏輯值TRUE或FALSE,來返回相應的內容,語法格式如下:

     IF(logical_test,[value_if_true],[value_if_false])

● logical_test(必選):IF函數的判斷條件,用于對值或表達式進行測試,如果條件成立,則返回TRUE,否則返回FALSE。例如,A1>16是一個表達式,如果單元格A1中的值為15,由于15大于16這個條件不成立,所以該表達式的結果為FALSE。如果logical_test參數不是表達式而是一個數字,那么所有非0數字等價于TRUE,0等價于FALSE。

● value_if_true(可選):當logical_test參數的結果為TRUE時所返回的值。如果logical_test參數的結果為TRUE且省略value_if_true參數的值,即該參數的位置為空,IF函數將返回0。例如,IF(A1>16,,"小于16"),當A1>16為TRUE時,該公式將返回0。

● value_if_false(可選):當logical_test參數的結果為FALSE時所返回的值。如果logical_test參數的結果為FALSE且省略value_if_false參數,即不為該參數保留其逗號分隔符,IF函數將返回FALSE而不是0。但是如果保留value_if_false參數的逗號分隔符,IF函數將返回0而不是FALSE。這說明省略參數的值與省略參數將會影響函數返回的最終結果。

主站蜘蛛池模板: 凉山| 嘉义市| 岑巩县| 息烽县| 黄陵县| 永春县| 陇南市| 德兴市| 邯郸县| 阜城县| 墨脱县| 雅安市| 平湖市| 阳朔县| 拉萨市| 蒙自县| 油尖旺区| 云霄县| 大冶市| 西昌市| 南江县| 罗平县| 嘉义县| 玉门市| 壤塘县| 泰来县| 苍山县| 松溪县| 会东县| 怀来县| 三台县| 大安市| 棋牌| 莱芜市| 合肥市| 新龙县| 平远县| 富顺县| 琼海市| 新营市| 桐梓县|