在第一个数字元素后拆分字符串

时间:2014-09-09 08:33:30

标签: excel excel-formula excel-2010

有人知道Excel中的一个功能会将其分开:

Tottenham Court Road 28 Apartment 8

Tottenham Court Road 28Apartment 8

类似于“在第一个号码之后 - 分成另一列”。

5 个答案:

答案 0 :(得分:2)

公式方法的更短版本:

左侧

=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)

答案 1 :(得分:1)

这应该有效:

左侧:

=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))

答案 2 :(得分:0)

没有测试假设所提供的示例可能是众多(即使所有类似格式)之一,但只有一种方法是将ColumnA(假设您的数据所在)复制到ColumnE,将Text应用于列以空格作为分隔符,然后在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))) 

同时复制到适合。

答案 3 :(得分:0)

假设您的原始地址位于单元格A2中,我建议您使用一大堆辅助列,然后您将隐藏它们。这允许您在每列中使用简单的简单公式,这有助于调试。

考虑到这一点,这个解决方案与Taosique提供的解决方案相同,只是按照我喜欢的方式进行。


我会使用以下列标题:

  • 地址,0,1,2,3,4,5,6,7,8,9,第一个数字,空格,输出1,输出2

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


在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)

在列上展开的简单公式 - 现在隐藏列并且您已经完成了设置。

enter image description here

如果将来拆分字符串的公式发生变化,您可以轻松调整简单公式。

答案 4 :(得分:-1)

公式是可能的,但这里不太可行。我们假设您的全文位于单元格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))