我在 A 列中有一个字符串,它是字母和数字的混合。我想在出现的第一个数字之前将字符串分成两半,这样“abc123”在 B 列中变为“abc”,在 C 列中变为“123”。
问问题
19488 次
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 回答