第一个数值后分割字符串(Split string after first numeric eleme

2019-10-20 22:11发布

是否有人知道一个函数在Excel中,将分开处理:

Tottenham Court Road 28 Apartment 8

Tottenham Court Road 28Apartment 8

像“后第一个数字 - 分拆到另一列”。

Answer 1:

公式方法的较短的版本:

左边

=TRIM(LEFT(A1,FIND(" ",A1,  MIN(IFERROR(FIND({0,1,2,3,4,5,6,7,8,9},A1),"")))))

右边

=TRIM(MID(A1,FIND(" ",A1,MIN(IFERROR(FIND({0,1,2,3,4,5,6,7,8,9},A1),""))),LEN(A1)))

无论输入为数组公式(按Ctrl-Shift-Enter键)



Answer 2:

这应该工作:

左边:

=TRIM(LEFT(A1,FIND(" ",A1,MIN(IFERROR(FIND(0,A1),LEN(A1)),IFERROR(FIND(1,A1),LEN(A1)),IFERROR(FIND(2,A1),LEN(A1)),IFERROR(FIND(3,A1),LEN(A1)),IFERROR(FIND(4,A1),LEN(A1)),IFERROR(FIND(5,A1),LEN(A1)),IFERROR(FIND(6,A1),LEN(A1)),IFERROR(FIND(7,A1),LEN(A1)),IFERROR(FIND(8,A1),LEN(A1)),IFERROR(FIND(9,A1),LEN(A1))))))

右边:

=TRIM(MID(A1,FIND(" ",A1,MIN(IFERROR(FIND(0,A1),LEN(A1)),IFERROR(FIND(1,A1),LEN(A1)),IFERROR(FIND(2,A1),LEN(A1)),IFERROR(FIND(3,A1),LEN(A1)),IFERROR(FIND(4,A1),LEN(A1)),IFERROR(FIND(5,A1),LEN(A1)),IFERROR(FIND(6,A1),LEN(A1)),IFERROR(FIND(7,A1),LEN(A1)),IFERROR(FIND(8,A1),LEN(A1)),IFERROR(FIND(9,A1),LEN(A1)))),999))


Answer 3:

未测试的假设提供的例子可能有很多(即使所有类似的格式),但一个方法是复制ColumnA(假设是数据所在的位置),以ColumnE,与空间应用文本到列有一个分隔符,则在B1:

=TRIM(LEFT(A1,FIND(OFFSET(E1,,MATCH(INDEX(E1:Z1,MATCH(1,INDEX(ISNUMBER(E1:Z1)+0,0),0)),E1:Z1,0)),A1)-1))  

在C1:

=TRIM(MID(A1,FIND(OFFSET(E1,,MATCH(INDEX(E1:Z1,MATCH(1,INDEX(ISNUMBER(E1:Z1)+0,0),0)),E1:Z1,0)),A1),LEN(A1))) 

既复制下来,以适应。



Answer 4:

假设你原来的地址是在单元格A2,我建议使用一大堆,你会在事后隐藏助手列。 这使您可以在每一列,这有助于调试使用容易简单的公式。

考虑到这一点,该方案沿着相同的路线为通过Taosique提供运行,只是奠定了我喜欢做这些事情的方式。


我会使用的列标题:

  • 地址,0,1,2,3,4,5,6,7,8,9,第一个号码,空间,输出1,输出2

至K即重要的B列包含所有的数字。 每个这些列的将被用于到9,搜索每个的数字0。


使用这个公式中的B2,通过对K2复制。 它将给任何发现数字你的偏移量:

=IFERROR(search(B$1,$A2),len($A2))

L2通过采取最小以前的专栏中找到的第一个数字:

=min(B2:K2)

M2找到的第一个空间,这个号码后,给你你想要的分指数:

=search(" ",$A2,L2)

N2和O2干脆把LEFTRIGHT的字符串,基于上述发现指数:

=left($A2,M2-1)

=right($A2,len($A2)-M2)

简单的公式分布在列 - 现在隐藏的列和你都设置。

如果您的公式分裂在今后的字符串的变化,你可以很容易地适应了简单的公式。



Answer 5:

公式是可能的,但没有真正可行这里。 让我们假设你的全文在单元格A1

Tottenham Court Road 28 Apartment 8

然后在单元格B1我们将确定第一数目的第一空间索引

=SEARCH(" ",A1,IFERROR(SEARCH("0",A1),IFERROR(SEARCH("1",A1),IFERROR(SEARCH("2",A1),IFERROR(SEARCH("3",A1),IFERROR(SEARCH("4",A1),IFERROR(SEARCH("5",A1),IFERROR(SEARCH("6",A1),IFERROR(SEARCH("7",A1),IFERROR(SEARCH("8",A1),IFERROR(SEARCH("9",A1),1)))))))))))

认识到这一点,在单元格C1 ,我们有表达的第一部分:

=LEFT(A1,B1-1)

在单元格D1我们第二部分:

=MID(A1,B1+1,LEN(A1))


文章来源: Split string after first numeric element