本帖最后由 你猜? 于 2013-7-25 20:53 編輯 <籍貫、性別、出生年月日、農歷年、屬相、生日、星座、出生至今年數、出生至今天數和判斷證件有效性> 通過身份證提取籍貫、農歷年、屬相、星座和出生至今天數是獨家報道哦~ ![]() 等我研究透了,給你們計算生辰八字。{:soso_e151:} [d1000] 文件中公式說明: 本帖隱藏的內容原籍貫:
此運算運用了iferror邏輯函數,主要判斷后面的函數計算結果,如果經過后面所有函數的判斷都無法得到結果的,就在此單元格顯示"證件無效"。(此函數在后面的單元格(除判斷身份證有效單元格外)都用到此函數,同理,后面就不一一解釋此函數的用法。 if函數主要是判斷a2單元格的字符數(len函數)是否滿足15位,如果是15位的話,則從a2單元格里提取(mid函數)前6位數字(從第一位提取,6個字符)在數據庫中查找(vlookup函數)滿足此條件的原籍貫所在地,此單元中后面的vlookup函數也是此用途。 中間運用了value函數,主要是因為數據庫的數據都是數值型數字,函數中提取的是文本型數字,value函數就是把文本型數值激活為數值型函數。 性別:
此運算中主要運用了循環余數(mod)函數,將a2單元格中從第15位數字起提取1位,并除以2,如果得到1,就是男性,否則就是女性。<mod函數也是判斷數字是否為奇偶數,或被某是否整除,此單元格中就運用了判斷奇偶數,農歷年和屬相中運用了被60整除,在我的視頻教程:wps2013視頻教程:wps表格制作工資條的四種方法和技巧:http://bbs.wps.cn/thread-22377957-1-1.html> 出生年月日:
此運算中運用了轉換文本函數(text),指定提取(mid函數)的信息轉化為指定的格式。 本帖隱藏的內容農歷年:
此運算中遇到的所有函數在前面都已經提到了,在這里就不一一詳解,在此只解釋下思路,在15位身份證號碼在提取(mid)后在前面加上"19",先用用value強制轉化為數值型數字參與計算,然后運用循環余數函數(mod)和查找引用函數結合在數據中,查找對應的農歷年份。 屬相:
此運算與農歷年的運算類似,在數據庫中查找相對應的屬相。 生日:
此運算與提取出生年月日類似,在這里只是提取(mid)月份和年份,然后用文本函數(text)強制轉化為日期格式。 本帖隱藏的內容星座:
此運算中運用了查找引用函數(index函數嵌套match函數),與前面的vlookup函數類似,只不過vlookup函數如果要逆向查找需要嵌套if函數和數組公式: =IFERROR(IF(LEN(A2)=15,VLOOKUP(VALUE(TEXT(MID(A2,9,4),"0月00日")),IF({1,0},Sheet2!$N$1:$N$13,Sheet2!$M$1:$M$13),2,1),VLOOKUP(VALUE(TEXT(MID(A2,11,4),"0月00日")),IF({1,10},Sheet2!$N$1:$N$13,Sheet2!$M$1:$M$13),2,1)),"證件無效") 用index函數嵌套match函數就不用這些了此法是vlookup函數的弊端。在此運用index函數嵌套match函數,主要是讓大家更多的了解其他的查找引用函數。(其實此數據庫中的日期,是可以放在星座前面的,然后用vlookup函數就簡單多了) [此處運用了查找引用函數的模糊匹配,絕對匹配:用index函數嵌套match函數<match第三參數更改為0(false),或默認不寫>或vlookup函數<第四參數更為0(false)>;如果是模糊匹配,在match函數中的第三個參數更改為1(true)(第三參數為1升序排列,-1為降序排列),vlookup第四個參數為1(true)] 如圖: ![]() 出生至今年數:
此運算運用了日期函數(year、today函數),year函數是提取日期函數中的年份,然后用今天(today函數)所在的年份減去a2身份證日期中提取(mid)日期中的年份。(在15位身份證中是從第7位提取6位,并在前面加上"19",然后將其強制轉化為數字(text函數)參與計算。 出生至今天數:
此運算與出生至今年數類似,只不過此函數是將其強制轉換(text)為天數然后參與計算的。<提示:時間日期函數有個特征:時間函數是小數(把當前時間除以24得到的),日期函數是整數(是從1900年1月1日算起的天數),所以許多網友在在表格中經常遇到,明明輸入時間,卻顯示小數,明明輸入日期,卻顯示數字,遇到此種情況,只要設置單元格就行,如果在函數運算中出現的話,就用text轉化。> 判斷證件有效性:
此運算是運用(逆向思維)邏輯函數(if和or)判斷前面單元格(b2,c2,d2,e2,f2,g2,h2,i2和j2)如果有一個顯示為"證件無效",則說明此身份證證件無效,否則此身份證就有效。 此法也可以使用函數(順向思維):
本帖隱藏的內容如圖:![]() ![]() 總結: 運用函數類型: 邏輯函數:iferrror,if,and,or, 2. 文本字節函數:mid,len,text,value 3. 查找引用函數:vlookup,index,match 4. 時間日期函數:year,today 5. 數學函數:mod 特別強調下: 如果大家在今后遇到將文本型數數字強制轉化為數字值型數字用value函數。 如果大家在今后遇到格式中有限考慮用單元格設置,如果在運算中,首選text函數。 如果大家在統計單元格字符,優先選擇len函數,統計單元格字節就用lenb函數。 如果是遇到需要循環處理數據,就用mod函數。 如果大家要絕對查找數據,用index函數嵌套match函數<match第三參數更改為0(false),或默認不寫>或vlookup函數<第四參數更為0(false)>;如果是模糊匹配,在match函數中的第三個參數更改為1(true)(第三參數為1升序排列,-1為降序排列),vlookup第四個參數為1(true)。 文件撤銷保護密碼:123 ![]() |
|