2013-02-27 53 views
6

围绕第一号的字符串我在A列一个字符串,它是字母和数字的混合。我想在字符串中的一半显示出来,使得“ABC123”成为在列B“ABC”和“123”在列C我如何拆分/解析在Excel

回答

11

如果有任何种类的图案的,例如第一数字前分割总是3个字母或.....仅3或4个字母,例如则可以实现更容易,但用于任何数目的字母(假设数字始终遵循字母)可以在B2使用此公式(比较简单的在topcat3的链接提示公式,我认为)

=LEFT(A2,MIN(FIND({1,2,3,4,5,6,7,8,9,0},A2&1234567890))-1)

,然后这个公式中C2

=REPLACE(A2,1,LEN(B2),"")

注意,这最后的公式返回的数字部分为一个文本值 - 如果你想它是数字在公式结尾添加+0(但是你将失去任何lea丁零)

1

只是想促进有关巴里的公式稍有不同。稍微容易在我看来理解,但一点点比较难用:

您可以使用此数组公式找到的第一个数字的起始位置+ 1:

{=MIN(IFERROR(FIND({1,2,3,4,5,6,7,8,9,0},A2),""))} 

使用Ctrl + Alt进入+输入以使其成为数组公式。

然后你可以用这个数字来划分的第一部分的字符串的:

=LEFT(A2,B2-1) 

然后你就可以使用REPLACE()下车字符串摆脱第一部分(字母) 。

=REPLACE(A2,1,LEN(C2),"") 

你应该接受巴里的答案,而不是这一个,因为他更容易使用,更简洁。但是我想追加一个变体来理解巴里的公式如何工作。

+0

你好斯捷潘 - 在我的版本串联1234567890至A2确保FIND函数从不给你一个错误(因为所有的数字都找到) - 所以你不需要IFERROR功能....你不需要CTRL + Shift + Enter – 2013-02-27 18:40:14

+0

@barry霍迪尼我同意,我的版本是不是最佳的。对我来说,使用A2&1234567890而不是A2来避免FIND()生成的数组中的所有错误似乎很聪明。我第一次看到它时做了两次尝试。只有当我关注FIND()部分时,我才明白你为什么这么做。数组公式没有很好地记录,在我看来,自然产生数组的公式没有被记录下来。 – Stepan1010 2013-02-27 19:16:56