学海无涯k 发表于 2007-12-26 09:37

一个EXECL难题

兄弟遇到一个难题想请教各位高手,想在EXECL中实现自动录入,尝试了LOOKUP、MATCH都不能满意,看来只有用VB了,可兄弟对VB不熟,或者兄弟对EXECL也没吃透,故请教各位大哥有没有好办法?谢了!

suffer 发表于 2008-1-15 15:54

Excel函数应用实例:自动录入性别
根据现行的居民身份证号码编码规定,正在使用的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个字符以外,其他运算过程与上面的介绍相同。


转自:http://soft.yesky.com/office/431/2109431.shtml

suffer 发表于 2008-1-15 15:54

Excel函数应用实例:自动录入出生日期
(1)函数分解  CONCATENATE函数将几个文本字符串合并为一个文本字符串。
  语法:CONCATENATE(text1,text2,...)
  Text1,text2,...为1~30个要合并成单个文本项的文本项。文本项可以为文本字符串、数字或对单个单元格的引用。
  (2)实例分析
  与上面的思路相同,我们可以在E2单元格中输入公式“=IF(LEN(C2)=15,CONCATENATE("19",MID(C2,7,2),"年",MID(C2,9,2),"月",MID(C2,11,2),"日"),CONCCTENCTE(MID(C2,7,4),"年",MID(C2,11,2),"月",MID(C2,13,2),"日"))”。其中“LEN(C2)=15”仍然作为逻辑判断语句使用,它可以判断身份证号码是15位的还是18位的,从而调用相应的计算语句。
  对15位的身份证号码来说,左起第7至12个字符表示出生年、月、日,此时可以使用MID函数从身份证号码的特定位置,分别提取出生年、月、日。然后用CONCATENATE函数将提取出来的文字合并起来,就能得到对应的出生年月日。公式中“19”是针对早期身份证号码中存在2000年问题设计的,它可以在计算出来的出生年份前加上“19”。对“18”位的身份证号码的计算思路相同,只是它不存在2000年问题,公式中不用给计算出来的出生年份前加上“19”。
  注意:CONCATENATE函数和MID函数的操作对象均为文本,所以存放身份证号码的单元格必须事先设为文本格式,然后再输入身份证号。


转自:http://soft.yesky.com/office/149/2115649.shtml

james_liu 发表于 2008-10-7 14:03

使用IF函数功能可以实现
页: [1]
查看完整版本: 一个EXECL难题