【发布时间】:2013-02-13 11:31:09
【问题描述】:
我在 A 列中有一个字符串,它是字母和数字的混合体。我想在出现的第一个数字之前将字符串分成两半,这样“abc123”在 B 列中变为“abc”,在 C 列中变为“123”。
【问题讨论】:
标签: excel split excel-formula
我在 A 列中有一个字符串,它是字母和数字的混合体。我想在出现的第一个数字之前将字符串分成两半,这样“abc123”在 B 列中变为“abc”,在 C 列中变为“123”。
【问题讨论】:
标签: excel split excel-formula
如果有任何类型的模式,例如总是 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(但您将丢失任何前导零)
【讨论】:
只是想对 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),"")
您应该接受 Barry 的答案而不是这个答案,因为他的答案更易于使用且更简洁。但只是想在我的探索中添加一个变体,以了解 Barry 的公式是如何工作的。
【讨论】: