楼主: 日新少年
6813 6

[数据管理求助] 如何实现一串文字中的数字提取? [推广有奖]

区版主

已卖:26526份资源

大师

46%

还不是VIP/贵宾

-

TA的文库  其他...

日新文库:Matlab入门及进阶

日新文库:Stata入门及进阶

日新文库:R入门及进阶

威望
3
论坛币
646393 个
通用积分
22788.5150
学术水平
1190 点
热心指数
1369 点
信用等级
1056 点
经验
219622 点
帖子
11024
精华
11
在线时间
6841 小时
注册时间
2010-4-15
最后登录
2025-12-25

初级热心勋章 初级学术勋章 初级信用勋章 中级热心勋章 中级学术勋章 中级信用勋章 高级学术勋章 高级热心勋章 高级信用勋章

楼主
日新少年 学生认证  发表于 2019-7-17 15:01:02 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
AAZZ.png


如图,在Excel中的数据情况,是一串文字中的年份,想把这个识别出来单独形成年份列,,这个 该怎么做?用Excel或者stata 。。。。

具体数据如下:


数据年份筛选.xlsx (204.7 KB)




二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:如何实现 用excel EXCEL Stata exce

本帖被以下文库推荐

沙发
heric221 在职认证  发表于 2019-7-20 09:58:05
楼主看下附件,看是不是你想要的结果?
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
日新少年 + 5 + 5 + 5 精彩帖子

总评分: 学术水平 + 5  热心指数 + 5  信用等级 + 5   查看全部评分

藤椅
日新少年 学生认证  发表于 2019-7-20 10:11:26
heric221 发表于 2019-7-20 09:58
楼主看下附件,看是不是你想要的结果?
谢谢坛友,好厉害!!求问下怎么实现的?

板凳
heric221 在职认证  发表于 2019-7-20 11:24:17
日新少年 发表于 2019-7-20 10:11
谢谢坛友,好厉害!!求问下怎么实现的?
我是用Excel做的,先自定义函数,再调用该函数即可。
自定义的函数代码为:
  1. Function ValueInText(TargetRange As Range) As Double
  2.       Dim mRegExp As RegExp
  3.       Dim mMatches As MatchCollection
  4.       Dim mMatch As Match

  5.       Set mRegExp = New RegExp
  6.       With mRegExp
  7.           .Global = True
  8.           .IgnoreCase = True
  9.          .Pattern = "([0-9])?[.]([0-9])+|([0-9])+"
  10.          Set mMatches = .Execute(TargetRange.Text)
  11.          For Each mMatch In mMatches
  12.             If Len(mMatch.Value) = 4 Then ValueInText = mMatch.Value
  13.          Next
  14.      End With

  15.      Set mRegExp = Nothing
  16.      Set mMatches = Nothing
  17. End Function
复制代码
已有 2 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
Annabella8986 + 5 + 1 + 1 + 1 精彩帖子
日新少年 + 3 + 3 + 3 精彩帖子

总评分: 论坛币 + 5  学术水平 + 4  热心指数 + 4  信用等级 + 4   查看全部评分

报纸
我是梅梅 发表于 2019-10-23 19:09:33
用stata也能搞定,使用正则表达式,
gen year=""
replace year=ustrregexs(0) if ustrregexm(cntet," (\d{4})")  
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
日新少年 + 3 + 3 + 3 精彩帖子

总评分: 学术水平 + 3  热心指数 + 3  信用等级 + 3   查看全部评分

地板
日新少年 学生认证  发表于 2019-10-24 12:30:04
我是梅梅 发表于 2019-10-23 19:09
用stata也能搞定,使用正则表达式,
gen year=""
replace year=ustrregexs(0) if ustrregexm(cntet," (\d ...
哇   高手!!! 谢谢啊

7
日新少年 学生认证  发表于 2019-10-24 12:34:47
heric221 发表于 2019-7-20 11:24
我是用Excel做的,先自定义函数,再调用该函数即可。
自定义的函数代码为:
太感谢你了

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-26 08:12