ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: 宏业教育

[原创] 庖丁解牛:学习自己需要的函数

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-4-20 16:39 | 显示全部楼层
谢谢楼上老师指点,只是我的排版水平 ,我尽量试一下,

TA的精华主题

TA的得分主题

发表于 2010-4-20 17:29 | 显示全部楼层
一边看 一边学习 一边提高
这一篇太有用了 一定要收藏

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-4-20 18:51 | 显示全部楼层
=VLOOKUP(MID(M3,1,2),Sheet1!A:D,2,0)
接下来我们共同来品一品 VLOOKUP套 MID 的用法。MID在前面我们已经品过了,在此不再赘述,这里我们主要是来看一下VLOOKUP函数。
函数VLOOKUP 用途:在表格或数值数组的首列查找指定的数值,并由此返回表格或数组当前行中指定列处的数值。当比较值位于数据表首列时,可以使用函数VLOOKUP 代替函数HLOOKUP。 语法:VLOOKUP(lookup_value,table_array,
col_index_num,range_lookup) 参数:Lookup_value为需要在数据表第一列中查找的数值,它可以是数值、引用或文字串。Table_array 为需要在其中查找数据的数据表,可以使用对区域或区域名称的引用。Col_index_num 为table_array 中待返回的匹配值的列序号。Col_index_num为1 时,返回table_array 第一列中的数值; col_index_num 为2,返回table_array 第二列中的数值,以此类推。Range_lookup为一逻辑值,指明函数VLOOKUP 返回时是精确匹配还是近似匹配。如果为TRUE 或省略,则返回近似匹配值,也就是说,如果找不到精确匹配值,则返回小于
lookup_value 的最大数值;如果range_value 为FALSE, 函数VLOOKUP 将返回精确匹配值。如果找不到,则返回错误值#N/A。实例:如果A1=23、A2=45、A3=50、A4=65,则公式“=VLOOKUP(50,A1:A4,1,TRUE)”返回50。
VLOOKUP是一个相当实用而且常用的函数,在论坛上有相当多的帖子,我这里就对精帖做一个借用吧,现有资源利用。这里VLOOKUP的任务是利用MID提取出来的身份证地址编码,去我们建立的身份证地址库中查找相对应的地址,并且引用到档案的籍贯栏中来。


另注:此楼VLOOKUP附件为陈泽祥老师作品,因为编写得实在精彩,借来一用。谢谢了。

VLOOKUP动态图解.rar

26.09 KB, 下载次数: 245

档案附件.rar

158.43 KB, 下载次数: 232

TA的精华主题

TA的得分主题

发表于 2010-4-20 20:47 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2010-4-20 20:48 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
如果多个目录链接就更好了

TA的精华主题

TA的得分主题

发表于 2010-4-20 21:07 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2010-4-20 22:21 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2010-4-20 23:04 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
楼主辛苦了·

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-4-21 09:23 | 显示全部楼层
感谢斑竹为我的帖子加分,感谢各位老师前来指点,感谢各位朋友前来捧场 。斑竹,老师各朋友们的关注,到是给了我一种超强力的鼓舞,也是鞭策。原本水平有限的我,看来不得不继续努力把这一系列帖子写下去了。 但是:我只能说,由于水平问题,难免有错漏或不尽人意之处,这就勉为其难先往下写吧,如有错漏就请斑竹和各位老师和朋友们斧正。这样即可以帮助大家提高,也可以帮助我提高。我当感激之至。

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-4-21 10:14 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
=IF(LEN(M3)=15,M3,LEFT(REPLACE(M3,7,2,),15))
这一楼我们来谈谈身份证的减位。为什么我们要对18位数身份证号码减位呢,是想展示自己对函数的运用吗?绝对不是。我们都知道早期的身份证号是由15位数字编写而成的。
1、第l一6位数为行政区划代码;
2、第7—12位数为出生日期代码;
3、第13---15位数为分配顺序代码;
(1)、行政区划代码,是指公民第一次申领居民身份证时的常住户口所在地的行政地区。
(2)、出生日期代码,第7—8位数代表年份(年份前面二位数省略),第9—10位数代表月份(月份为l位数的前面加零)。第11一12位数代表日期(日期为1位数的前面加零)。
(3)、分配顺序代码,是按人口数统一合理分配以固定顺序给予每个人的顺序号.
这是就是我们早期15位身份证的编码结构,自1999年10月1日起在全国建立和实行公民身份证号码制度.公民身份证号码按照GB11643—1999《公民身份证号码》国家标准编制,由18位数字组成:
前6位为行政区划分代码,第7位至14位为出生日期码,第15位至17位为顺序码,第18位为校验码。
第18位号码是校验码,目的在于检测身份证号码的正确性,是由计算机随机产生的,所以不再是男性为单数,女性为双数,而以第十七位决定性别.
从上边的内容我们可以看出,18位数的身份证号是由15位升级而来的,升级的原则只是在原出生年份前增加了“19”,这样就不至于1910年和2010年相重复(因为这两年数取后边两位都是10年。)而第18位则是身份证号正确性的校验码。也就是说我们前边的编码输入是否正确,或是该号码本身是否正确,都可以通过校验码来检验出来。清楚了这个,我们就来看下这个函数公式吧:

=IF(LEN(M3)=15,M3,LEFT(REPLACE(M3,7,2,),15))
这里的IF函数因为前边已经讲过,不再赘述,这里我们主要来品一品LEN函数和REPLACE函数。
LEN也应用于:LENB。LEN 返回文本字符串中的字符数。LENB 返回文本字符串中用于代表字符的字节数。此函数用于双字节字符。语法:LEN(text):LENB(text)。Text    是要查找其长度的文本。空格将作为字符进行计数。
该函数在这里是以IF函数的参数出现的,它的主要功能是将我们原有为15位数的身份证号取15位,也就是将其原记录保存下来。
REPLACE也应用于:REPLACEB。REPLACE 使用其他文本字符串并根据所指定的字符数替换某文本字符串中的部分文本。REPLACEB 使用其他文本字符串并根据所指定的字符数替换某文本字符串中的部分文本。此函数专为双字节字符使用。
语法:REPLACE(old_text,start_num,num_chars,new_text)
REPLACEB(old_text,start_num,num_bytes,new_text)
Old_text    是要替换其部分字符的文本。
Start_num    是要用 new_text 替换的 old_text 中字符的位置。
Num_chars    是希望 REPLACE 使用 new_text 替换 old_text 中字符的个数。
Num_bytes    是希望 REPLACE 使用 new_text 替换 old_text 中字节的个数。
New_text    是要用于替换 old_text 中字符的文本。
从前边的解释中,我们可以看出,REPLACE函数在这里的主要作用是将18位数编号的第7-8位数去掉,然后交给LEFT函数,从16位中提取左边的15位,(即把验证码去掉)。这样就将原有的15位或是18位身份证号都统一成了15位,作为辅助列为我们后边的验证作准备。

[ 本帖最后由 宏业教育 于 2010-4-21 10:17 编辑 ]
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-8 02:14 , Processed in 0.024528 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表