ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 怎么用excel 根据身份证号码算性别

[复制链接]

TA的精华主题

TA的得分主题

发表于 2009-8-3 09:43 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
原帖由 lbl016 于 2009-8-3 09:26 发表

你是把两个公式综合了?

还不是综合,版主的公式还没搞懂,自己写了一个是=IF(MOD(RIGHT(LEFT(A1,17),1),2)=0,"女","男") 看了7楼的之后,查了帮助,才知道还能省两个字符。

TA的精华主题

TA的得分主题

发表于 2009-8-3 09:45 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
以上有6楼和7楼公式很精典难理解,对于初学者此公式易懂供参考'=IF(LEN(A1)=15,IF(MOD(RIGHT(A1,1),2),"男","女"),IF(MOD(MID(A1,17,1),2),"男","女"))

TA的精华主题

TA的得分主题

发表于 2009-8-3 09:46 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
=IF(MOD(MID(A1,15,3),2),"男","女")
分析一下:
MID(A1,15,3)从第15位起取3位,
如果是15位,得到第15位
如果是18位,得到第15、16、17位
看来是正确的

TA的精华主题

TA的得分主题

发表于 2009-8-3 09:49 | 显示全部楼层
版主用了如此复杂的公式才做出来,还不假思索轻易否定别人的公式,我想你是没有思考还是太自大了?如果你不做出回答,我想也许是太自大了吧!

TA的精华主题

TA的得分主题

发表于 2009-8-3 09:52 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
终于还是有13楼的肯思考问题了,我想5楼的公式很精典,少而精,何必用复杂的公式完成简单的事情!!!

TA的精华主题

TA的得分主题

发表于 2009-8-3 09:57 | 显示全部楼层
原帖由 Albert128 于 2009-8-3 09:45 发表
以上有6楼和7楼公式很精典难理解,对于初学者此公式易懂供参考'=IF(LEN(A1)=15,IF(MOD(RIGHT(A1,1),2),"男","女"),IF(MOD(MID(A1,17,1),2),"男","女"))

每个人都有自己的一些习惯,思维方式也有差异,即使是初学者也不一样。要多从别人哪里学到一些考虑问题的方法。有时仅仅是多一条路,有时多的这一条路可能是唯一的。
分析一下:=IF(MOD(RIGHT(LEFT(A1,17)),2)=0,"女","男")
LEFT(A1,17)取A1的前17位,如果是18位就取前17位,如果是15位就取15位
RIGHT(LEFT(A1,17)取上面字符串的最后一位,结果是:如果是18位就取第17位,如果是15位就取第15位
好像不难理解,而且式子要简练得多

TA的精华主题

TA的得分主题

发表于 2009-8-3 09:58 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
这个公式“IF(MOD(RIGHT(LEFT(A1,17)),2),"男","女")”判断性别有时会恰好相反,不知是什么原因呢?

TA的精华主题

TA的得分主题

发表于 2009-8-3 10:18 | 显示全部楼层
原帖由 hupanshan 于 2009-8-3 09:57 发表

每个人都有自己的一些习惯,思维方式也有差异,即使是初学者也不一样。要多从别人哪里学到一些考虑问题的方法。有时仅仅是多一条路,有时多的这一条路可能是唯一的。
分析一下:=IF(MOD(RIGHT(LEFT(A1,17)),2)=0, ...

请问这位仁兄,以上公式把“RIGHT()”干脆去掉,也能解释得通,为什么不能运行??

TA的精华主题

TA的得分主题

发表于 2009-8-3 10:31 | 显示全部楼层
原帖由 Albert128 于 2009-8-3 10:18 发表

请问这位仁兄,以上公式把“RIGHT()”干脆去掉,也能解释得通,为什么不能运行??

因为位数太多了,超过了系统对数值处理的能力

TA的精华主题

TA的得分主题

发表于 2009-8-3 10:38 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
原帖由 lbl016 于 2009-8-3 09:58 发表
这个公式“IF(MOD(RIGHT(LEFT(A1,17)),2),"男","女")”判断性别有时会恰好相反,不知是什么原因呢?

不错,又省两个字符。试了一下没出现相反的现象,道理上也讲不通,你还是上传个例子吧。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-9-17 01:11 , Processed in 0.035583 second(s), 5 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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