excel 基于“.”提取最后一个值

3ks5zfa0  于 2023-11-20  发布在  其他
关注(0)|答案(1)|浏览(135)

问:从一个以点(.)分隔的单元格中提取最后一个值,并将其粘贴到另一个单元格中。
B2中的样本值:

".value1.value2.value3.value4:" -- "value4" to be extracted to C2
".value1:"                      -- "value1" to be extracted to C3
".value1.value2:"               -- "value2" to be extracted to C4

字符串
注1:冒号(:)存在于每个记录中,点(.)总是第一个字符。
注意2:不是ExcelMaven
尝试了以下方法:

=MID(B2,FIND(CHAR(1),SUBSTITUTE(B2,".",CHAR(1),LEN(B2)-LEN(SUBSTITUTE(B2,".",""))))+1,LEN(B2)-1)


我得到:
“value 4:“--冒号(:)仍然存在,而不是“value 4”。
感谢任何人的帮助,以改善公式。

j13ufse2

j13ufse21#

从你的OP中当然不清楚你是否在单元格B2B3B4中有三个值串,如果是的话。


的数据
·单元格C2中使用的公式

=TEXTBEFORE(TEXTAFTER(B2:B4,".",-1),":")

字符串
如果上面的解释是错误的,那么你可以这样做,这可能是解释你在OP中的解释方式



·单元格C2中使用的公式

=CHOOSEROWS(SUBSTITUTE(TEXTSPLIT(B2,,".",1),":",),4,1,2)


另一种选择,在编辑你的OP后,我意识到这可能是另一种方式:



·单元格C2中使用的公式

=SUBSTITUTE(TAKE(TEXTSPLIT(B2,".",,1),,-1),":",)


另一件事一直困扰着我,在研究你的公式时,因为你使用CHAR(10)是单元格B2中的整个字符串,如果是这样,一种可能的方法:



·单元格C2中使用的公式

=TEXTAFTER(TEXTBEFORE(DROP(REDUCE("",B2,LAMBDA(x,y,VSTACK(x,TEXTSPLIT(y,,CHAR(10))))),1),":"),".",-1)

相关问题