ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 如何用函数实现统一年龄格式

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-4-18 23:11 | 显示全部楼层 |阅读模式
本帖最后由 zzqianlong 于 2018-4-18 23:15 编辑

求助!如何将附件文件中,A列不规范的年龄表述,用函数实现B列统一数值型年龄(岁数保留1或2位小数)

123.rar

39.36 KB, 下载次数: 21

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-4-19 08:08 | 显示全部楼层
跪求帮忙解,数据量大,没法用查找替换!

TA的精华主题

TA的得分主题

发表于 2018-4-19 09:42 来自手机 | 显示全部楼层
本帖最后由 mmlzh 于 2018-4-19 10:10 编辑

扯蛋的数据,为毛不能在输入的时规范,折腾,1周是1个星期还是1周岁?这能说得准吗
  1. =IFERROR(IF(OR(ISNUMBER(FIND("周",A2)),ISNUMBER(FIND("岁",A2)),A2),LEFT(A2,MIN(FIND("周",A2&"周"),FIND("岁",A2&"岁"))-1),)+IF(LEN(TRIM(SUBSTITUTE(A2,IF(OR(ISNUMBER(FIND("周",A2)),ISNUMBER(FIND("岁",A2)),A2),LEFT(A2,MIN(FIND("周",A2&"周"),FIND("岁",A2&"岁"))),),"")))>0,SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2,IF(OR(ISNUMBER(FIND("周",A2)),ISNUMBER(FIND("岁",A2)),A2),LEFT(A2,MIN(FIND("周",A2&"周"),FIND("岁",A2&"岁"))),""),""),"个月",""),"月","")/12,),A2)
复制代码

TA的精华主题

TA的得分主题

发表于 2018-4-19 09:43 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
(TEXT(LEFT(A2,MIN(FIND({"岁","周"},A2&"岁周"))-1),"0;;;!0")*12+TEXT(SUBSTITUTE(MID(A2,MIN(FIND({"岁","周"},A2&"岁周"))+1,2),"月",),"0;0;0;!0")+IFERROR(--LEFT(A2,MAX(FIND("月",A2))-1),0))/12

TA的精华主题

TA的得分主题

发表于 2018-4-19 10:44 | 显示全部楼层
简化
  1. =IFERROR(IF(OR(ISNUMBER(FIND({"周","岁"},A2)),A2),LEFT(A2,MIN(FIND({"周","岁"},A2&"周岁"))-1),)+(0&SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2,IF(OR(ISNUMBER(FIND({"周","岁"},A2)),A2),LEFT(A2,MIN(FIND({"周","岁"},A2&"周岁"))),""),""),"个月",""),"月",""))/12,A2)
复制代码

TA的精华主题

TA的得分主题

发表于 2018-4-19 11:33 | 显示全部楼层
楼上两位还是有缺漏啊 你们把数据源降序下看看 有多少坑在里面没有填好的

TA的精华主题

TA的得分主题

发表于 2018-4-19 11:43 来自手机 | 显示全部楼层
LSL1128xgw 发表于 2018-4-19 11:33
楼上两位还是有缺漏啊 你们把数据源降序下看看 有多少坑在里面没有填好的

那种坑就不填了,手工处理了。
数组公式
  1. =IFERROR((LEN(A2)<>LENB(A2))*(0&SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2,LEFT(A2,MIN(IFERROR(FIND({"周","岁"},A2),""))),),"个月",""),"月",""))/12-IFERROR(-LEFT(A2,MIN(FIND({"周","岁"},A2&"周岁"))-1),),"手工处理")
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2018-4-19 13:26 | 显示全部楼层
本帖最后由 象山海鲜 于 2018-4-19 13:28 编辑
LSL1128xgw 发表于 2018-4-19 11:33
楼上两位还是有缺漏啊 你们把数据源降序下看看 有多少坑在里面没有填好的

即使是vba也够头痛一阵子了有绝大部分就不错了
看到“三周七” 直接蒙圈了

TA的精华主题

TA的得分主题

发表于 2018-4-19 13:47 | 显示全部楼层
123.rar (78.63 KB, 下载次数: 0)


只能用这个思路了,简化一下,复杂的数据单独处理一下,想找个完全通用的公式那就太复杂了,后面的数据IF一下吧

岁数出来后,恢复原来顺序就行

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-4-19 15:53 | 显示全部楼层
太感谢了,我自己也编写了,但也会出错!
=IF(ISNUMBER(FIND("周",A2)),LEFT(A2,FIND("周",A2)-1)+RIGHT(A2,LEN(A2)-FIND("周",A2))/12,IF(ISNUMBER(FIND("岁",A2)),LEFT(A2,FIND("岁",A2)-1)+RIGHT(A2,LEN(A2)-FIND("岁",A2))/12,IF(ISNUMBER(FIND("月",A2)),LEFT(A2,FIND("月",A2)-1)/12, A2)))
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-4-19 20:34 , Processed in 0.048166 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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