如何拆分/解析Excel中第一个数字周围的字符串

如何拆分/解析Excel中第一个数字周围的字符串,excel,split,excel-formula,Excel,Split,Excel Formula,我在a列中有一个字符串,它是字母和数字的混合体。我想在显示的第一个数字之前将字符串一分为二,这样“abc123”在B列变成“abc”,在C列变成“123”。如果有任何类型的模式,例如总是3个字母……或者只有3或4个字母,那么你可以更容易地实现,但对于任意数量的字母(假设数字总是跟在字母后面)你可以在B2中使用这个公式(我认为这比topcat3链接中建议的公式要简单) =左(A2,最小值(查找({1,2,3,4,5,6,7,8,9,0},A2&1234567890))-1) 然后是C2中的公式 =

我在a列中有一个字符串,它是字母和数字的混合体。我想在显示的第一个数字之前将字符串一分为二,这样“abc123”在B列变成“abc”,在C列变成“123”。

如果有任何类型的模式,例如总是3个字母……或者只有3或4个字母,那么你可以更容易地实现,但对于任意数量的字母(假设数字总是跟在字母后面)你可以在B2中使用这个公式(我认为这比topcat3链接中建议的公式要简单)

=左(A2,最小值(查找({1,2,3,4,5,6,7,8,9,0},A2&1234567890))-1)

然后是C2中的公式

=替换(A2,1,透镜(B2),”)


请注意,最后一个公式将数字部分作为文本值返回-如果您希望它是数字,请在公式末尾加上+0(但您将丢失任何前导零)

只是想对Barry的公式稍加修改。在我看来,稍微容易理解,但使用起来有点困难:

可以使用此数组公式查找第一个数字的起始位置+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),"")

你应该接受巴里的答案,而不是这个,因为他的答案更容易使用,更简洁。但我只是想在我的探索中添加一个变体,以了解巴里公式的工作原理。

Hello Stepan-在我的版本中,将1234567890连接到A2可确保查找函数不会出错(因为所有数字都已找到)-因此您不需要IFERROR函数…也不需要CTRL+SHIFT+ENTER@barry胡迪尼我同意,我的版本不是最优的。在我看来,使用A2&1234567890而不仅仅是A2来避免FIND()生成的数组中的所有错误似乎很聪明。我第一次看到它时拍了两张照片。只有当我关注FIND()部分时,我才明白你为什么这么做。数组公式没有很好的文档记录,在我看来,自然生成数组的公式文档记录得更少。