请教个excel一个cell里取长短不一字段的问题

t
tiantong
楼主 (北美华人网)
在一个cell里前10个字符是10个数字,中间是长短不一的单词, 空格,后面是数字,怎么截中间的phrase 和后面的数字呢?下面示例2行 0123456789 today is a good one 4,000 4,000 4,000 0123455789 tomorrow you wear this 5,232 5,232 5,232 怎么把字符串和一个4,000或5,232截到2个cell里?
t
tiantong
不想用text to column by space,的方法,因为句子有长有短,再合起来比较麻烦
l
longtai
前后数字位数固定吗? len/lenb,结合left/right? 好久不用,记不太清楚了
五色祥云
取最后5位数,把text转换成数值: =value(right(cell address,5))
左面10个一样处理,用left
d
daisygo123
用regular expression。我不用excel不知道在excel里面怎么弄,可以用python写几行代码做,或者在google sheets里面用apps script写代码来做
y
yunnanjiangnan
放到Chatgpt 让它帮你弄?
a
amanio
每个部分如果有deliminator分隔,用right, left, mid ,结合len, search公式取子串。或者直接把数据 load到power query里分割
z
zenmehui
取字符串用mid, find. 取后面的一个数字用right. 两个公式分别敲在两个不同的列
l
longtai
取字符串用mid, find. 取后面的一个数字用right. 两个公式分别敲在两个不同的列
zenmehui 发表于 2023-02-23 13:46

厉害,能把 显示下公式吗
c
caliboy524
ctrl + e 不香吗?
z
zenmehui
厉害,能把 显示下公式吗
longtai 发表于 2023-02-23 13:59

公式在图上方的公式框里
y
yoshi
取字符串用mid, find. 取后面的一个数字用right. 两个公式分别敲在两个不同的列
zenmehui 发表于 2023-02-23 13:46

好厉害。我也想improve自己用excel的能力,求建议哪里去学?
t
tiantong
数字例子有三位到五位的,right怎么保证只取数字呢?control e不管用啊?数字没有什么pattern, fill series不行
z
zenmehui
数字例子有三位到五位的,right怎么保证只取数字呢?control e不管用啊?数字没有什么pattern, fill series不行
tiantong 发表于 2023-02-23 15:04

每行后面三个数是相同的情况下,第一步先把前面10个数字去掉,第二步用find在第一步的结果上找到最后一个空格来取最后一个数,最后再来取中间的字符串。公式在第一行。
要是后面三个数都不同,我感觉只有用vba了
a
awen
导出到csv,然后用sublime之类的text editor打开,然后用regular expression find and replace,存了再用excel打开
t
tiantong
公司的电脑不让用这些软件
l
level
ctrl + e 不香吗?
caliboy524 发表于 2023-02-23 14:03

这个。
用data—flash fill(Ctrl E)。先把第一行手动分隔到不同cell(B1-D1),前面数字一个cell,中间字符一个,后面第一次出现的数字一个。highlight 每一列的相关cells,例如 c1-c3(看有多少行),flash fill(ctrl e)
c
crichris
在一个cell里前10个字符是10个数字,中间是长短不一的单词, 空格,后面是数字,怎么截中间的phrase 和后面的数字呢?下面示例2行 0123456789 today is a good one 4,000 4,000 4,000 0123455789 tomorrow you wear this 5,232 5,232 5,232 怎么把字符串和一个4,000或5,232截到2个cell里?
tiantong 发表于 2023-02-23 12:19

点进来看了用户名,有点儿失望
z
zenmehui
这个。
用data—flash fill(Ctrl E)。先把第一行手动分隔到不同cell(B1-D1),前面数字一个cell,中间字符一个,后面第一次出现的数字一个。highlight 每一列的相关cells,例如 c1-c3(看有多少行),flash fill(ctrl e)

level 发表于 2023-02-24 12:04

Bingo。 按这位层主说的,手动分割第一行,后面用ctrl e flash fill, 最后用find找到第一个空格的位置就可以把第一个数字分出来。下面column B, C,D从第二行开始是 ctrl e, column E 取第一个数,不管第一个数是几位数都可以取