Excel函式應用例項:自動錄入性別(轉)

amyz發表於2007-08-13
Excel函式應用例項:自動錄入性別(轉)[@more@]

  根據現行的居民身份證號碼編碼規定,正在使用的18位的身份證編碼。它的第17位為性別(奇數為男,偶數為女),第18位為效驗位。而早期使用的是15位的身份證編碼,它的第15位是性別(奇數為男,偶數為女)。

    (1)函式分解

  LEN函式返回文字字串中的字元數。

  語法:LEN(text)

  Text是要查詢其長度的文字。空格將作為字元進行計數。

  MOD函式返回兩數相除的餘數。結果的正負號與除數相同。

  語法:MOD(number,divisor)

  Number為被除數;Divisor為除數。

  MID函式返回文字字串中從指定位置開始的特定數目的字元,該數目由使用者指定。

  語法:MID(text,start_num,num_chars)

  Text為包含要提取字元的文字字串;Start_num為文字中要提取的第一個字元的位置。文字中第一個字元的start_num為1,以此類推;Num_chars指定希望MID從文字中返回字元的個數。

    (2)例項分析

  為了適應上述情況,必須設計一個能夠適應兩種身份編碼的性別計算公式,在D2單元格中輸入“=IF(LEN(C2)=15,IF(MOD(MID(C2,15,1),2)=1,"男","女"),IF(MOD(MID(C2,17,1),2)=1,"男","女"))”。回車後即可在單元格獲得該職工的性別,而後只要把公式複製到D3、D4等單元格,即可得到其他職工的性別。

  為了便於大家瞭解上述公式的設計思路,下面簡單介紹一下它的工作原理:該公式由三個IF函式構成,其中“IF(MOD(MID(C2,15,1),2)=1,"男","女")”和“IF(MOD(MID(C2,17,1),2)=1,"男","女")”作為第一個函式的引數。公式中“LEN(C2)=15”是一個邏輯判斷語句,LEN函式提取C2等單元格中的字元長度,如果該字元的長度等於15,則執行引數中的第一個IF函式,否則就執行第二個IF函式。

  在引數“IF(MOD(MID(C2,15,1),2)=1,"男","女")”中。MID函式從C2的指定位置(第15位)提取1個字元,而MOD函式將該字元與2相除,獲取兩者的餘數。如果兩者能夠除盡,說明提取出來的字元是0(否則就是1)。邏輯條件“MOD(MID(C2,15,1),2)=1”不成立,這時就會在D2單元格中填入“女”,反之則會填入“男”。

  如果LEN函式提取的C2等單元格中的字元長度不等於15,則會執行第2個IF函式。除了MID函式從C2的指定位置(第17位,即倒數第2位)提取1個字元以外,其他運算過程與上面的介紹相同。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-955089/,如需轉載,請註明出處,否則將追究法律責任。

相關文章