第一篇:SQLServer中獲取18位身份證號(hào)碼校驗(yàn)碼的函數(shù)
在SQL Server中編寫獲取18位身份證的校驗(yàn)碼函數(shù)
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER FUNCTION [dbo].[fn_getChkVal](@IDCardNo nvarchar(18))RETURNS nvarchar(1)AS BEGIN Declare @iSum integer,@iMod integer if len(@IDCardNo)<>18 return '' if LEFT(@IDCardNo,17)like '%[^0-9]%' RETURN ''--判斷1-17位是否為數(shù)字0-9,如果不是退出
set @iSum= cast(substring(@IDCardNo,1,1)as int)*7 set @iSum=@iSum+cast(substring(@IDCardNo,2,1)as int)*9 set @iSum=@iSum+cast(substring(@IDCardNo,3,1)as int)*10 set @iSum=@iSum+cast(substring(@IDCardNo,4,1)as int)*5 set @iSum=@iSum+cast(substring(@IDCardNo,5,1)as int)*8 set @iSum=@iSum+cast(substring(@IDCardNo,6,1)as int)*4 set @iSum=@iSum+cast(substring(@IDCardNo,7,1)as int)*2 set @iSum=@iSum+cast(substring(@IDCardNo,8,1)as int)*1 set @iSum=@iSum+cast(substring(@IDCardNo,9,1)as int)*6 set @iSum=@iSum+cast(substring(@IDCardNo,10,1)as int)*3 set @iSum=@iSum+cast(substring(@IDCardNo,11,1)as int)*7 set @iSum=@iSum+cast(substring(@IDCardNo,12,1)as int)*9 set @iSum=@iSum+cast(substring(@IDCardNo,13,1)as int)*10 set @iSum=@iSum+cast(substring(@IDCardNo,14,1)as int)*5 set @iSum=@iSum+cast(substring(@IDCardNo,15,1)as int)*8 set @iSum=@iSum+cast(substring(@IDCardNo,16,1)as int)*4 set @iSum=@iSum+cast(substring(@IDCardNo,17,1)as int)*2
set @iMod=@iSum % 11
return substring('10X98765432',@imod+1,1)END
第二篇:身份證號(hào)碼函數(shù)
用vlookup函數(shù),及其他各項(xiàng)功能,通過(guò)身份證號(hào)得出了出生日期、性別、戶籍所在地等多項(xiàng)信息,并加入了身份證號(hào)正確性驗(yàn)證機(jī)制和15位、18位號(hào)碼的轉(zhuǎn)換功能。
詳細(xì)制作步驟
要想了解身份證的秘密,首先讓我們了解一下我國(guó)現(xiàn)行的公民身份證標(biāo)準(zhǔn)。1.我國(guó)現(xiàn)行使用公民身份證號(hào)碼有兩種標(biāo)準(zhǔn)。2.15位身份證號(hào)碼(六位數(shù)字地址碼,六位數(shù)字出生日期碼,三位數(shù)字順序碼)。
3.18位身份證號(hào)碼(六位數(shù)字地址碼,八位數(shù)字出生日期碼,三位數(shù)字順序碼和
一位數(shù)字校驗(yàn)碼)。
4.5.地址碼表示編碼對(duì)象常住戶口所在縣(市、旗、區(qū))的行政區(qū)劃代碼。
6.日期碼表示編碼對(duì)象出生的年、月、日,其中年份用四位數(shù)字表示,年、月、日之間不用分隔符。
7.順序碼表示同一范圍內(nèi)對(duì)同年、月、日出生的人員編定的順序號(hào)。奇數(shù)分給男性,偶數(shù)分給女性。
8.校驗(yàn)碼是根據(jù)前面十七位數(shù)字碼計(jì)算出來(lái)的檢驗(yàn)碼。
復(fù)制代碼
了解了以上知識(shí)后,讓我們來(lái)制作Excel表。
1.新建一個(gè)Excel文檔,2.將Sheet1重命名為“身份證信息”,在第1行各列中依次輸入“身份證號(hào)碼、十五位身份證號(hào)碼、十八位身份證號(hào)碼、性別、出生日期、年齡、省份、市、區(qū)縣”等文字,并將“出生日期”列設(shè)置為日期(yyyy.mm.dd)格式,其余列
設(shè)置為文本格式。
3.將Sheet2重命名為“區(qū)域信息”,從國(guó)家統(tǒng)計(jì)局下載到最新縣及縣以上行政
區(qū)劃代碼,經(jīng)整理后分別導(dǎo)入到“區(qū)域信息”的A、B兩列中,以便查詢。
復(fù)制代碼
到此,Excel表框架搭建完成,我們來(lái)寫入函數(shù)完成查詢。
第一步 判斷號(hào)碼是否為正確的身份證號(hào)
一個(gè)正確的身份證號(hào)碼,要符合以下幾個(gè)標(biāo)準(zhǔn):
①應(yīng)為15位或18位;
②要包含數(shù)字(0-9)或字符(X);
③18位身份證號(hào)最后一位是真正的校驗(yàn)碼。
如果上面三個(gè)條件都滿足,則是正確的身份證號(hào)。
我們利用Excel單元格的“有效性”限制來(lái)完成校驗(yàn)。
具體方法是選擇“身份證信息”表,全選“身份證號(hào)碼”列,選擇“數(shù)據(jù)-有效性”菜單命令,在彈出的窗口“設(shè)置”標(biāo)簽中,將有效性條件的“允許”設(shè)置為“自定義”、“公式”
設(shè)置為
=
OR(LEN(A2)=15,IF(LEN(A2)=18,MID(“10X98765432”,MOD(SUM(MID(A2,ROW(INDIRECT(“1:17”)),1)*2^(18-ROW(INDIRECT(“1:17”)))),11)+1,1)=RIGHT(A2))),如圖一。
在“出錯(cuò)警告”標(biāo)簽中,設(shè)置出錯(cuò)提示信息,如圖二。
第二步 15位和18位身份證號(hào)碼的互換
具體方法是選擇“身份證信息”表,在B2單元格中輸入
=IF(LEN(A2)=15,A2,LEFT(REPLACE(A2,7,2,),15));
在C2單元格中輸入
{=IF(LEN(A3)=15,REPLACE(A3,7,19)&MID(“10X98765432”,MOD(SUM(MID(REPLACE(A3,7,19),ROW(INDIRECT(“1:17”)),1)*2^(18-ROW(INDIRECT(“1:17”)))),11)+1,1),A3)} 這里要注意是數(shù)組!
第三步 判斷性別
如果是15位的,則取最后一位;
如果是18位的號(hào),則取倒數(shù)第二位;
最后判斷該數(shù)值的奇偶性即可。
具體方法是選擇“身份證信息”表,在D2單元格中輸入
=IF(A2<>“",IF(MOD(RIGHT(LEFT(A2,17)),2),”男“,”女“),)
第四步 判斷出生日期
如果是15位的,則取第7至12位,在年份數(shù)前加上“19”;
如果是18位的,則直接取第7至14位;
具體方法是選擇“身份證信息”表,在E2單元格中輸入
=IF(A2<>”“,TEXT((LEN(A2)=15)*19&MID(A2,7,6+(LEN(A2)=18)*2),”#-00-00“)+0,)
第五步 判斷年齡
這里利用一個(gè)Excel的隱藏函數(shù) DATEDIF()
基本語(yǔ)法: =DATEDIF(開始日期,結(jié)束日期,單位代碼),用“Y”來(lái)表示年份。具體方法是選擇“身份證信息”表,在F2單元格中輸入
=IF(A2<>”“,DATEDIF(TEXT((LEN(A2)=15)*19&MID(A2,7,6+(LEN(A2)=18)*2),”#-00-00“),TODAY(),”Y“),)
第六步 判斷籍貫,包括省份、市、區(qū)縣
這是本期比賽最難的一部分,關(guān)鍵在于如何多重判斷省份、市、區(qū)縣信息。
首先要知道地址碼的構(gòu)成。代碼前兩位是省或直轄市代碼,中間兩位是市代碼,最后兩位是區(qū)縣代碼。
其次是數(shù)據(jù)存放。“區(qū)域信息”表中已經(jīng)存放了查詢所需的數(shù)據(jù),將數(shù)據(jù)區(qū)命名為“Code”以便查詢。如圖三
最后利用VLOOKUP函數(shù)來(lái)查詢數(shù)據(jù)。
基本語(yǔ)法:=VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
具體方法是選擇“身份證信息”表,在G2單元格中輸入=IF(A2<>”“,VLOOKUP(LEFT(A2,2)&”0000“,code,2,),)
在G2單元格中輸入=IF(A2<>”“,VLOOKUP(LEFT(A2,4)&”00“,code,2,),)
在G2單元格中輸入=IF(A2<>”",VLOOKUP(LEFT(A2,6),code,2,),)
最后一步 根據(jù)需要拖拽
剛才所寫的公式只是在第2行寫入的,大家可以根據(jù)需要向下拖拽,具體方法略去。
第三篇:身份證信息獲取函數(shù)
、根據(jù)身份證號(hào)碼求性別:=IF(LEN(B2)=15,IF(MOD(VALUE(RIGHT(B2,3)),2)=0,“女”,“男”),IF(LEN(B2)=18,IF(MOD(VALUE(MID(B2,15,3)),2)=0,“女”,“男”),“身份證錯(cuò)”))
2、根據(jù)身份證號(hào)碼求出生年月:=IF(LEN(B2)=15,CONCATENATE(“19”,MID(B2,7,2),“.”,MID(B2,9,2)),IF(LEN(B2)=18,CONCATENATE(MID(B2,7,4),“.”,MID(B2,11,2)),“身份證錯(cuò)”))
3、根據(jù)身份證號(hào)碼求年齡:=IF(LEN(B2)=15,year(now())-1900-VALUE(MID(B2,7,2)),if(LEN(B2)=18,year(now())-VALUE(MID(B2,7,4)),“身份證錯(cuò)”))
一、分析身份證號(hào)碼
其實(shí),身份證號(hào)碼與一個(gè)人的性別、出生年月、籍貫等信息是緊密相連的,無(wú)論是15位還是18位的身份證號(hào)碼,其中都保存了相關(guān)的個(gè)人信息。
15位身份證號(hào)碼:第7、8位為出生年份(兩位數(shù)),第9、10位為出生月份,第11、12位代表出生日期,第15位代表性別,奇數(shù)為男,偶數(shù)為女。
18位身份證號(hào)碼:第7、8、9、10位為出生年份(四位數(shù)),第11、第12位為出生月份,第13、14位代表出生日期,第17位代表性別,奇數(shù)為男,偶數(shù)為女。
例如,某員工的身份證號(hào)碼(15位)是***,那么表示1972年8月7日出生,性別為女。如果能想辦法從這些身份證號(hào)碼中將上述個(gè)人信息提取出來(lái),不僅快速簡(jiǎn)便,而且不容易出錯(cuò),核對(duì)時(shí)也只需要對(duì)身份證號(hào)碼進(jìn)行檢查,肯定可以大大提高工作效率。
二、提取個(gè)人信息
這里,我們需要使用IF、LEN、MOD、MID、DATE等函數(shù)從身份證號(hào)碼中提取個(gè)人信息。如圖1所示,其中員工的身份證號(hào)碼信息已輸入完畢(C列),出生年月信息填寫在D列,性別信息填寫在B列。
1.提取出生年月信息
由于上交報(bào)表時(shí)只需要填寫出生年月,不需要填寫出生日期,因此這里我們只需要關(guān)心身份證號(hào)碼的相應(yīng)部位即可,即顯示為“7208”這樣的信息。在D2單元格中輸入公式“=IF(LEN(C2)=15,MID(C2,7,4),MID(C2,9,4))”,其中:
LEN(C2)=15:檢查C2單元格中字符串的字符數(shù)目,本例的含義是檢查身份證號(hào)碼的長(zhǎng)度是否是15位。
MID(C2,7,4):從C2單元格中字符串的第7位開始提取四位數(shù)字,本例中表示提取15位身份證號(hào)碼的第7、8、9、10位數(shù)字。
=MID(F2,7,4)&“-”&MID(F2,11,2)&“-”&MID(F2,13,2)
MID(C2,9,4):從C2單元格中字符串的第9位開始提取四位數(shù)字,本例中表示提取18位身份證號(hào)碼的第9、10、11、12位數(shù)字。
IF(LEN(C2)=15,MID(C2,7,4),MID(C2,9,4)):IF是一個(gè)邏輯判斷函數(shù),表示如果C2單元格是15位,則提取第7位開始的四位數(shù)字,如果不是15位則提取自第9位開始的四位數(shù)字。
如果需要顯示為“70年12月”這樣的格式,請(qǐng)使用DATE格式,并在“單元格格式→日期”中進(jìn)行設(shè)置。
2.提取性別信息
由于報(bào)表中各位員工的序號(hào)編排是按照上級(jí)核定的編制進(jìn)行的,因此不可能按照男、女固定的順序進(jìn)行編排,如果一個(gè)一個(gè)手工輸入的話,既麻煩又容易出錯(cuò)例如性別信息統(tǒng)一在B列填寫,可以在B2單元格中輸入公式
“=IF(MOD(IF(LEN(F2)=15,MID(F2,15,1),MID(F2,17,1)),2)=1,“男”,“女”)”,其中:
LEN(C2)=15:檢查身份證號(hào)碼的長(zhǎng)度是否是15位。
MID(C2,15,1):如果身份證號(hào)碼的長(zhǎng)度是15位,那么提取第15位的數(shù)字。
MID(C2,17,1):如果身份證號(hào)碼的長(zhǎng)度不是15位,即18位身份證號(hào)碼,那么應(yīng)該提取第17位的數(shù)字。
MOD(IF(LEN(C2)=15,MID(C2,15,1),MID(C2,17,1)),2):用于得到給出數(shù)字除以指定數(shù)字后的余數(shù),本例表示對(duì)提出來(lái)的數(shù)值除以2以后所得到的余數(shù)。
IF(MOD(IF(LEN(C2)=15,MID(C2,15,1),MID(C2,17,1)),2)=1,“男”,“女”):如果除以2以后的余數(shù)是1,那么B2單元格顯示為“男”,否則顯示為“女”。
第四篇:網(wǎng)上服務(wù)平臺(tái)“身份證號(hào)碼升位”操作指南范文
牛哞哞博客關(guān)注西安市雁塔區(qū)社會(huì)保險(xiǎn)服務(wù)辦事指南
網(wǎng)上服務(wù)平臺(tái)“身份證號(hào)碼升位”操作指南
一、總體操作流程
首先,通過(guò)“人員管理”模塊下“在職人員身份證號(hào)升位”功能和“離退休人員身份證號(hào)升位”功能分別對(duì)本單位在職、退休人員的15位身份證號(hào)進(jìn)行升位。其次,升位成功后,通過(guò)“數(shù)據(jù)交互”模塊下“數(shù)據(jù)交互”功能進(jìn)行數(shù)據(jù)上報(bào)。最后,攜帶相關(guān)資料到經(jīng)辦機(jī)構(gòu)進(jìn)行審核。
二、在職人員身份號(hào)碼升位
第一步,點(diǎn)擊“在職人員身份證號(hào)升位”功能。牛哞哞博客關(guān)注西安市雁塔區(qū)社會(huì)保險(xiǎn)服務(wù)辦事指南
第二步,選擇導(dǎo)盤類型為“導(dǎo)出”,點(diǎn)擊“查詢”按鈕。這里會(huì)將本單位下所有在職身份證號(hào)為15位的人員列出,并按照公安部門規(guī)則對(duì)其分別擬生成18位身份證號(hào)信息。
第三步,點(diǎn)擊“生成”按鈕。牛哞哞博客關(guān)注西安市雁塔區(qū)社會(huì)保險(xiǎn)服務(wù)辦事指南
這里有兩個(gè)列表,“身份證號(hào)碼升位成功信息”列表展示的是所有15位身份證號(hào)可以按照公安部門規(guī)則生成18位身份證號(hào)的信息內(nèi)容。“身份證號(hào)碼升位失敗信息”列表展示的是不能按照公安部門規(guī)則生成18位身份證號(hào)的信息內(nèi)容。第四步,導(dǎo)出升級(jí)成功信息。
牛哞哞博客關(guān)注西安市雁塔區(qū)社會(huì)保險(xiǎn)服務(wù)辦事指南
導(dǎo)出內(nèi)容為excel表格,將其保存下來(lái)。第五步,對(duì)導(dǎo)出的excel表格進(jìn)行編輯。
表格中將本單位戶下身份證號(hào)為15位人員以及對(duì)應(yīng)的擬升位信息列示出來(lái)。大家需要完成工作有:
1、將擬生成身份證號(hào)升位信息逐一進(jìn)行核對(duì)。
2、保留核對(duì)正確的人員信息,刪除核對(duì)不正確人員信息。
3、全部核對(duì)完成后,將修改后的文件予以保存。
第六步,點(diǎn)擊“在職人員身份證號(hào)升位”功能,將導(dǎo)盤類型選擇為“導(dǎo)入”。牛哞哞博客關(guān)注西安市雁塔區(qū)社會(huì)保險(xiǎn)服務(wù)辦事指南
在導(dǎo)入文件處,通過(guò)瀏覽選擇已進(jìn)行核對(duì)的excel表格,并點(diǎn)擊“查詢”按鈕。
這里“身份證升位成功信息”列表展示就是本單位經(jīng)核對(duì)后保留的擬升位信息。點(diǎn)擊“確定”按鈕,導(dǎo)入成功。第七步,點(diǎn)擊“數(shù)據(jù)上報(bào)”功能。牛哞哞博客關(guān)注西安市雁塔區(qū)社會(huì)保險(xiǎn)服務(wù)辦事指南
“待上報(bào)業(yè)務(wù)信息匯總列表”列示的為擬上報(bào)信息,如果上報(bào)前發(fā)現(xiàn)報(bào)送內(nèi)容有誤,可通過(guò)
進(jìn)行撤銷。如果無(wú)誤,點(diǎn)擊“數(shù)據(jù)上報(bào)”按鈕,并攜帶相關(guān)資料到經(jīng)辦機(jī)構(gòu)進(jìn)行審核。
三、離退休人員身份號(hào)碼升位
通過(guò)“離退休人員身份號(hào)碼升位”功能進(jìn)行離退人員15位身份牛哞哞博客關(guān)注西安市雁塔區(qū)社會(huì)保險(xiǎn)服務(wù)辦事指南
證號(hào)升18位,具體操作,同“在職人員身份號(hào)碼升位”操作步驟。
四、注意事項(xiàng)
1、導(dǎo)出的升級(jí)成功excel表格,僅允許進(jìn)行對(duì)正確的保留操作,對(duì)不正確的刪除對(duì)應(yīng)行操作,不允許進(jìn)行身份證號(hào)等信息的變更操作。
2、對(duì)于核實(shí)出不正確的升位信息,在過(guò)原渠道辦理變更手續(xù)。
excel表格刪除后,需通
第五篇:從身份證號(hào)碼中摳出個(gè)人信息
從身份證號(hào)碼中“摳出”個(gè)人信息
貴州省余慶中學(xué)楊松
最近,學(xué)校要求對(duì)全校教師的個(gè)人資料進(jìn)行收集,其中包含:姓名,性別,年齡,出生日期,身份證號(hào)碼??檔案室的老師這兩天在加班加點(diǎn)的忙碌,一項(xiàng)一項(xiàng)的輸入。我看在眼里急在心里,要是能直接把身份證號(hào)碼中的出生日期和性別提取出來(lái)那多好啊。這樣既可避免出錯(cuò)又能減輕多少負(fù)擔(dān)??!
統(tǒng)計(jì)表的格式如圖:
經(jīng)過(guò)分析,反復(fù)實(shí)踐操作,終于找到了解決辦法。
一、身份證號(hào)的組成我國(guó)公民身份號(hào)碼是由十七位數(shù)字本體碼和一位數(shù)字校驗(yàn)碼組成。排列順序從左至右依次為:六位數(shù)字地址碼,八位數(shù)字出生日期碼,三位數(shù)字順序碼和一位數(shù)字校驗(yàn)碼(15位的身份證號(hào)碼中出生日期碼為6位,年份中省去了19兩數(shù),同時(shí)也無(wú)數(shù)字校驗(yàn)碼)。第17位代表性別,奇數(shù)為男,偶數(shù)為女(15位身份證中的第15位代表性別)。
如某老師的身份證號(hào)碼(18位)是***013,那么表示1968年12月10日出生,性別為男。
二、解決思路
1、分別將年、月、日及性別位的數(shù)字從身份證號(hào)碼中提取出來(lái);
2、運(yùn)用公式將出生日期合并成指定的格式;
3、計(jì)算年齡,判斷性別。
三、實(shí)施步驟
主要用到EXCEL中的函數(shù)MID、IF、LEN、CONCATENATE、MOD。MID:提取指定位置的字符串
IF:邏輯判斷,結(jié)果為真或假
LEN:計(jì)算指定字符串的長(zhǎng)度
CONCATENATE:將多個(gè)字符串合并成一個(gè)字符串
MOD:兩數(shù)相除取余數(shù)。
(一)先將表格設(shè)計(jì)成如圖所示的樣式
(二)取年份
在D2單元格中輸入公式
“=IF(LEN(C4)=18,MID(C4,7,4),CONCATENATE(“19”,MID(C4,7,2))),其中:
LEN(C2)=18:檢查C2單元格中字符串的字符數(shù),本例的含義是檢查
身份證號(hào)碼的長(zhǎng)度是否是18位。
MID(C2,7,4):從C2單元格中字符串的第7位開始提取四位數(shù)字,本例中表示提取18位身份證號(hào)碼的第7、8、9、10位數(shù)字。
MID(C2,7,2):從C2單元格中字符串的第7位開始提取兩位數(shù)字,本例中表示提取15位身份證號(hào)碼的第7、8位數(shù)字。
CONCATENATE(“19”,MID(C4,7,2)):用字符“19”與提取的字符進(jìn)行合并,本例表示在提取的兩位年份前加上“19”使其變?yōu)椋次粩?shù)的年份。例:使78變成1978。
=IF(LEN(C4)=18,MID(C4,7,4),CONCATENATE(“19”,MID(C4,7,2))):IF是一個(gè)邏輯判斷函數(shù),表示如果C2單元格是18位,則提取第7位開始的四位數(shù)字,否則提取自第7位開始的兩位數(shù)字,并在前面加上“19”使其變?yōu)檎5模次粩?shù)字的年份。即取得年份。
(三)取月、日和性別位的值
同理在E2、F2、G2中輸入對(duì)應(yīng)公式
在E2單元格中輸入公式“=IF(LEN(C2)=18,MID(C2,11,2),MID(C2,9,2))”
判斷身份證號(hào)碼是18位還是15位。18位身份證號(hào)碼的第11、1
2位為月份,15位的第9、10位為月份。
――取得月份
在F2單元格中輸入公式“=IF(LEN(C2)=18,MID(C2,13,2),MID(C2,11,2))”
――取得日
在G2單元格中輸入公式“=IF(LEN(C2)=18,MID(C2,17,1),MID(C2,15,1))”
――取得性別位的數(shù)值
(四)將年月日合并成指定的日期格式
在H2單元格中輸入公式“=CONCATENATE(D2,“-”,E2,“-”,F2)”。
該公式表示將多個(gè)字符串合并成一個(gè)字符串。本例是將單元格D2、E2、F2中的內(nèi)容按指定格式(yyyy-mm-dd)合并成一個(gè)字符串(若日期格式為“XXXX
年XX月XX日”,只需將公式改為“=CONCATENATE(D2,“年”,E2,“月”,F2,”日”)”即可)。
(五)判斷性別
在I2單元格中輸入公式“=IF(MOD(G2,2)=1,“男”,“女”)”
其中:
MOD(G2,2)=1:用G2單元格的內(nèi)容與2相除取余數(shù),本例是判斷性別位上的數(shù)是奇數(shù)還是偶數(shù)(余數(shù)是1還是0)。
=IF(MOD(G2,2)=1,“男”,“女”):IF是一個(gè)邏輯判斷函數(shù),表示如果余數(shù)是“1”,則顯示為“男”,否則顯示為“女”。
(六)計(jì)算年齡
在J2單元格中輸入“=2006-D2”
表示用2006年減去出生年份就可得出實(shí)際年齡了。
經(jīng)過(guò)以上幾步的設(shè)置之后,便可得如圖所示的結(jié)果。
再用填充柄工具填充數(shù)據(jù)即可。如圖:
四、一步到位法。
上面的方法簡(jiǎn)單,容易理解,適合初學(xué)者學(xué)習(xí)使用,但這種方法在實(shí)際操作中會(huì)產(chǎn)生幾列不需要的數(shù)據(jù)(如本例中的年、月、日、性別位的值等列)。領(lǐng)會(huì)了思路之后完全可以一步到位將出生日期、性別和年齡算出來(lái),而不需要用其它單元格轉(zhuǎn)換??梢允紫扔蒙厦娴姆椒ò压皆O(shè)置好,然后再用替換法直接把中轉(zhuǎn)的單元格用公式代替就可以了。只是在替換的時(shí)候要小心仔細(xì),不得馬虎。
按要求輸入的格式如圖:
分別在C2、D2、E2單元格中輸入對(duì)應(yīng)公式。
在C2單元格中輸入公式
=IF(MOD(IF(LEN(F2)=18,MID(F2,17,1),MID(F2,15,1)),2)=1,“男”,“女”)
實(shí)際是將原公式“=IF(MOD(G2,2)=1,“男”,“女”)”中的G2直接用IF(LEN(F2)=18,MID(F2,17,1),MID(F2,15,1))替換。
同理在D2單元格中輸入公式
=2006-IF(LEN(F2)=18,MID(F2,7,4),CONCATENATE(“19”,MID(F2,7,2)))
――直接用公式替換原D
2在E2單元格中輸入公式
=CONCATENATE(IF(LEN(F2)=18,MID(F2,7,4),CONCATENATE(“19”,MID(F2,7,2))),“-”,IF(LEN(F2)=18,MID(F2,11,2),MID(F2,9,2)),“-”,IF(LEN(F2)=18,MID(F2,13,2),MID(F2,11,2)))
――直接用公式分別替換原D2、E2、F
2得到如下圖所示的結(jié)果:
最后用填充柄填充數(shù)據(jù)即可。如圖。
五、總結(jié)
Excel中的公式編輯功能非常強(qiáng)大,熟練掌握公式,巧妙運(yùn)用公式往往能
使工作效率大為提高。
==作者地址:貴州省余慶縣余慶中學(xué)電教中心楊松 564400== ==聯(lián)系方式:QQ:23194864 TEL:***== ==郵箱:ysonion@163.com==