EXCEL中如何提取某字?
"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、依据内容分析【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)
=MID(A1,FIND("D",A1),FIND(", ",A1)-FIND("D",A1)),试一下,是不是你想要的