Excel formula 使用Excel公式从文本中分离第二个数字

Excel formula 使用Excel公式从文本中分离第二个数字,excel-formula,Excel Formula,我在单元格中有项目编号I132。值如下(仅举一个示例): 我在I132中只有一个值(例如)654321-9000车间。如何使用Excel公式将-(9000)之后的第二个数字分隔开 我尝试过,但没有成功: =IF(ISERROR(FIND(" ";I132;FIND(" ";I132;1)+1));I132;LEFT(I132;FIND(" ";I132;FIND(" ";I132;1)+1))) 如果所有数据的格式与发布的示例相同(6位数字后接空格),则使用: =MID(A1,10,4) 编

我在单元格中有项目编号
I132
。值如下(仅举一个示例):

我在
I132
中只有一个值(例如)
654321-9000车间
。如何使用Excel公式将
-
(9000)之后的第二个数字分隔开

我尝试过,但没有成功:

=IF(ISERROR(FIND(" ";I132;FIND(" ";I132;1)+1));I132;LEFT(I132;FIND(" ";I132;FIND(" ";I132;1)+1)))

如果所有数据的格式与发布的示例相同(6位数字后接空格),则使用:

=MID(A1,10,4)
编辑:

如果第一个数字的长度不总是6个字符,请使用:

=MID(A1,FIND(" - ",A1)+3,4)

如果所有数据的格式与发布的示例相同(6位数字后接空格),则使用:

=MID(A1,10,4)
编辑:

如果第一个数字的长度不总是6个字符,请使用:

=MID(A1,FIND(" - ",A1)+3,4)

如果then格式始终相同,有4位数字,则公式应为:

=MID(I132, FIND("-", I132) + 2, 4)

如果then格式始终相同,有4位数字,则公式应为:

=MID(I132, FIND("-", I132) + 2, 4)

为了使其非常通用,我们可以使用以下版本:

=LEFT(MID(A1,FIND("-",A1)+2,1000),FIND(" ",MID(A1,FIND("-",A1)+2,1000))-1)

这样,即使第一个和第二个数字超过6位和4位,它也能工作。这是基于这样的假设,即数字之间会有一个破折号,第二个数字后面是一个空格。

为了使其非常通用,我们可以使用以下版本:

=LEFT(MID(A1,FIND("-",A1)+2,1000),FIND(" ",MID(A1,FIND("-",A1)+2,1000))-1)

这样,即使第一个和第二个数字超过6位和4位,它也能工作。这是基于这样一个假设,即数据在数字之间有一个破折号,第二个数字之后是一个空格。

假设数据的结构与前面的相同

随机数
+
(空格)-(空格)
+
随机数
+
(空格)
+
word

可以使用以下公式查找第二个数字:

=FILTERXML("<t><s>" & SUBSTITUTE(A1," ","</s><s>")&"</s></t>","//s[text()='-']/following-sibling::*[1]")
=FILTERXML(“&SUBSTITUTE(A1,”,“”)和“//s[text()='-']/以下同级::*[1]”)

对于此公式背后的逻辑,您可以阅读本文:


干杯:)

假设您的数据具有相同的结构,即

随机数
+
(空格)-(空格)
+
随机数
+
(空格)
+
word

可以使用以下公式查找第二个数字:

=FILTERXML("<t><s>" & SUBSTITUTE(A1," ","</s><s>")&"</s></t>","//s[text()='-']/following-sibling::*[1]")
=FILTERXML(“&SUBSTITUTE(A1,”,“”)和“//s[text()='-']/以下同级::*[1]”)

对于此公式背后的逻辑,您可以阅读本文:


干杯:)

@JoakimDanielson我已经编辑了我的问题。列表只是一个值可以是什么的示例。上述单元格中只有一个值。@JoakimDanielson我已编辑了我的问题。列表只是一个值可以是什么的示例。上述单元格中只有一个值。谢谢您的回答!现在是这样,但在将来的某个时候,可能会有7位和8位数字。是否可以制作更灵活的公式?@user7202022请看我的编辑。谢谢您的回答!现在是这样,但在将来的某个时候,可能会有7位和8位数字。是否可以制作更灵活的公式?@user7202022请参阅我的编辑。