我在A栏中有一个字母和数字混合的字符串。我希望在显示的第一个数字之前将字符串分成两半,使得“abc123”在B列变为“abc”,在C列变为“123”。
答案 0 :(得分:12)
如果有任何类型的模式,例如总是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添加到公式结尾(但您将丢失任何前导零)
答案 1 :(得分:1)
只是想对巴里的公式做出轻微的修改。在我看来稍微容易理解,但使用起来有点困难:
您可以使用此数组公式查找第一个数字的起始位置+ 1:
{=MIN(IFERROR(FIND({1,2,3,4,5,6,7,8,9,0},A2),""))}
使用ctrl + alt + enter输入,使其成为数组公式。
然后你可以使用那个数字来分割字符串的第一部分:
=LEFT(A2,B2-1)
然后你可以使用REPLACE()去除字符串的第一部分(字母)。
=REPLACE(A2,1,LEN(C2),"")
你应该接受Barry的答案,而不是这个,因为他更容易使用,更简洁。但我只想在我的追求中添加一个变体,以了解巴里的公式如何运作。