6

我在 A 列中有一个字符串,它是字母和数字的混合。我想在出现的第一个数字之前将字符串分成两半,这样“abc123”在 B 列中变为“abc”,在 C 列中变为“123”。

4

2 回答 2

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(但您将丢失任何前导零)

于 2013-02-27T16:33:41.533 回答
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 的回答,而不是这个,因为他更容易使用和更简洁。但只是想在我的探索中添加一个变体,以了解巴里的公式是如何工作的。

于 2013-02-27T18:01:40.473 回答