ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 842|回复: 3

[分享] 数据、身份证提取各类信息

[复制链接]

TA的精华主题

TA的得分主题

发表于 2022-10-25 13:38 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
特此强调,几乎所有公式都或为B站、或为EH、或为知乎的公式,我只是将其用let函数整合起来
真的特别鸣谢EH网的各位,学到很多,故今天来分享一下办公常用的各类数据提取的函数
好废话不多说,直接上函数
__________________________________________________________________________

身份证提取性别、虚岁、周岁、出生年月、生肖、星座、校验码
  1. =LET(
  2. _data,A2:A46,
  3. _性别,IF(MOD(MID(_data,17,1),2)=0,"女","男"),
  4. _出生年月,TEXT(MID(_data,7,8),"0-00-00"),
  5. _周岁,DATEDIF(_出生年月,TODAY(),"Y"),
  6. _虚岁,_周岁-1,
  7. _星座,LOOKUP(--TEXT(MID(_data,11,4),"mdd"),{101,"摩羯座";120,"水瓶座";219,"双鱼座";321,"白羊座";420,"金牛座";521,"双子座";621,"巨蟹座";723,"狮子座";823,"处女座";923,"天秤座";1023,"天蝎座";1122,"射手座";1222,"摩羯座"}),
  8. _生肖,MID("鼠牛虎兔龙蛇马羊猴鸡狗猪",MOD(MID(_data,7,4)-4,12)+1,1),
  9. _校验码,BYROW(_data,LAMBDA(_data,IF(IF(RIGHT(_data,1)="X","X",--RIGHT(_data,1))=VLOOKUP(MOD(SUMPRODUCT(--MID(_data,{1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17},1),{7;9;10;5;8;4;2;1;6;3;7;9;10;5;8;4;2}),11),{0,1;1,0;2,"X";3,9;4,8;5,7;6,6;7,5;8,4;9,3;10,2},2,0),"校验通过","校验未通过"))),
  10. _堆叠公式,HSTACK(_性别,_虚岁,_周岁,_出生年月,_生肖,_星座,_校验码),
  11. _堆叠名称,VSTACK({"性别","虚岁","周岁","出生年月","生肖","星座","校验码"},_堆叠公式),
  12. _结果容错,IFERROR(_堆叠名称,""),
  13. _结果容错
  14. )
复制代码
数据提取固定长度、提取汉字、提取字母、颠倒字符顺序、统计某字出现的次数等
  1. =LET(
  2. _data,A2:A4,
  3. _提取固定长度的数字,BYROW(_data,LAMBDA(_data,VLOOKUP(0,{0,1}*MID(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(_data,":",""),",",""),";",""),"、",""),"。",""),"",""),ROW($1:$400),11),2,0))),
  4. _提取数字及运算符,BYROW(_data,LAMBDA(_data,MID(_data,MIN(FIND({"","-"}&ROW($1:400)-1,_data&"-"&1-ROW($1:400))),1+COUNT(-MID(_data,COLUMN(1:1),2))))),
  5. _提取0以外数字,BYROW(_data,LAMBDA(_data,CONCAT(IFERROR(IF(--MID(_data,ROW($1:$400),1),MID(_data,ROW($1:$400),1),""),"")))),
  6. _提取汉字,BYROW(_data,LAMBDA(_data,CONCAT(IF(LENB(MID(_data,ROW($1:$400),1))=2,MID(_data,ROW($1:$400),1),"")))),
  7. _提取字母,BYROW(_data,LAMBDA(_data,CONCAT(IF(ISNUMBER(--IF(LENB(MID(_data,ROW($1:$400),1))=1,MID(_data,ROW($1:$400),1))),"",IF(LENB(MID(_data,ROW($1:$400),1))=1,MID(_data,ROW($1:$400),1),""))))),
  8. _颠倒字符顺序,BYROW(_data,LAMBDA(_data,TEXTJOIN("",TRUE,INDEX(SORT(IF({1,0},-ROW($1:$400),MID(_data,ROW($1:$400),1))),,2)))),
  9. _统计某字出现的次数,BYROW(_data,LAMBDA(_data,"出现"&SUMPRODUCT(1*(MID(_data,COLUMN(1:1),1)="数据"&""))&"次")),
  10. _提取首字母,BYROW(_data,LAMBDA(_data,Initial(_data))),
  11. _堆叠公式,HSTACK(_提取固定长度的数字,_提取数字及运算符,_提取0以外数字,_提取汉字,_提取字母,_颠倒字符顺序,_统计某字出现的次数,_提取首字母),
  12. _堆叠名称,VSTACK({"提取固定长度的数字","提取数字及运算符","提取0以外数字","提取汉字","提取字母","颠倒字符顺序","统计某字出现的次数","提取首字母"},_堆叠公式),
  13. _结果容错,IFERROR(_堆叠名称,""),
  14. _结果容错
  15. )
复制代码






数据批处理.zip

31.23 KB, 下载次数: 18

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2022-10-25 17:02 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
支持一下!!!

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2022-10-25 17:59 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-10-26 13:22 | 显示全部楼层
数论 发表于 2022-10-25 17:59
感谢分享,非365的伙伴可能用不了

哈哈哈哈,数论大佬来了,请上座
是的,主要是let函数是365的,如果是其他版本需要自行拆解其中的函数,不能如此方便
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-5-20 03:45 , Processed in 0.038705 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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