EXCEL中如何提取某字?

abc abc Dec 1, 09:55 AM

"Dec 1" 文字会变不同日期,可能会变成"Dec 12",怎样才可以提取"Dec 1"里的的文字?

【答案更新】

建议用方法一吧,公式短一点。

【方法一】:

把三个截取函数 LEFT、RIGHT、MID 全用上。

你要的公式为:

=SUBSTITUTE(LEFT(RIGHT(A1,16),1)," ",)&MID(RIGHT(A1,16),2,5)

下面是说明:

观察后,发现逗号右侧的位数好像是固定的。

其中RIGHT(A1,16)是从右侧取16位,

如果是单数字的日期,会截取到Dec左侧的空格,

如果是双数字的日期,刚好会截取到Dec的D这里,

理解了这个就好办了:

SUBSTITUTE(LEFT(RIGHT(A1,16),1)," ",)

这部分是从右侧的16位字符中,再提取左侧的1位,

然后SUBSTITUTE进行替换,把空格替换为空,

如果这位是空格,替换后就没有了,

如果这位不是空格,替换后还是原字符,

后面再用&连接符,连接上MID(RIGHT(A1,16),2,5),

意思就是连接上 用MID从右侧16位中,从第2位开始截取5位字符。

【方法二】:

也是把三个截取函数 LEFT、RIGHT、MID 全用上。

你要的公式为:

=RIGHT(LEFT(A1,FIND(",",A1)-1),5+ISNUMBER(--MID(A1,FIND(",",A1)-2,1)))

下面是说明:

其中LEFT(A1,FIND(",",A1)-1)是提取逗号左侧的字符。

然后再用RIGHT从右边取5位或6位即可。

但是到底是取5位还是取6位,就需要判断倒数第2位是不是数字,

如果倒数第2位不是数字则取5位,是数字则取6位,

那么MID(A1,FIND(",",A1)-2,1)是从A1的逗号位置再减2后的位置截取1位,

然而截取函数,就算截取出来的是数字,也是文本型的数字,不是数值型的数字,

所以前面给它进行负负转化,转化成数值,就变成了--MID(A1,FIND(",",A1)-2,1)

然后再用ISNUMBER函数判断是不是数值,返回True或False,

在参与四则运算时,True相当于1,False相当于0,

也就是说ISNUMBER(--MID(A1,FIND(",",A1)-2,1))这部分要么是1要么是0,

那么:

当倒数第2位不是数数值时,就是5+0,取5位。

当倒数第2位是数值时,就是5+1,取6位。

追问

但"Dec 1"或者是"Dec 12"或会变成"Nov 1"或是"Nov 12"

追答

答案已更新,看主答区。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-12-24
思路:
1、依据内容分析【abc abc Dec 1, 09:55 AM】可以分解成两个【bc abc Dec 1】、【09:55 AM】利用LEFT(A1,FIND(",",A1)-1)获得【bc abc Dec 1】
2、根据要求要去Dec 1那么就用RIGHT函数获取
3、最终组合
=RIGHT(LEFT(A1,FIND(",",A1)-1),LEN(LEFT(A1,FIND(",",A1)-1))-FIND("Dec",LEFT(A1,FIND(",",A1)-1))+1)
第2个回答  2021-12-24
abcabcDec1,09:55AM"Dec1此文字在A1单元格内
=MID(A1,FIND("D",A1),FIND(", ",A1)-FIND("D",A1)),试一下,是不是你想要的
第3个回答  2021-12-24
如果都是形如这样的,分列岂不更省事?
相似回答