Excel - 提取右侧第七个空格右侧的数据

Excel - 提取右侧第七个空格右侧的数据

我想从单元格右侧第 7 个空格中提取一串文本。我不能使用分隔符的原因是某些名称的长度不同(例如 John Smith、John A. Smith、John Smith Jr.)。以下是两个单元格示例。一般来说,我只想提取数字,以便将它们放入单独的列中。

谢谢。

SMITH JOHN 388.58 388.58 .00 .00 .00 .00 .00

SMITH JR DAVID 1,373.71 261.94 19.89 462.50 354.64 274.74 .00

答案1

使用 A2 中的数据尝试,

=TRIM(RIGHT(SUBSTITUTE(A2, " ", REPT(" ", LEN(A2))), 7*LEN(A2)))

答案2

这个找到第一个数字并在那里分割:

=MID(A1,MIN(FIND({1,2,3,4,5,6,7,8,9,0},A1&"1234567890")),999)

答案3

我读得有点不同,你想把名字放在一列,把每个数字放在不同的列。

如果您拥有具有该功能的 Excel 2013+,FILTERXML则可以使用以下命令:

对于名称:

=LEFT(A1,FIND(CHAR(1),SUBSTITUTE(A1," ",CHAR(1),LEN(A1)-LEN(SUBSTITUTE(A1," ",""))-6))-1)

对于数字:

=TRANSPOSE(FILTERXML("<t><s>" & SUBSTITUTE(A1," ","</s><s>") & "</s></t>","//s[last()-7]/following-sibling::*"))

如果你有最新版本的动态数组您可以正常输入第二个公式,它将溢出到相邻的 6 列。

如果不这样做,则需要将其作为七列范围内的数组输入,方法是

  • 选择第一个单元格
  • 将范围向右扩展 6 列
  • 按住ctrl+shift并点击enter

在此处输入图片描述

答案4

另外一个选择

1] 要提取名称,请在 B1 中复制:

=LEFT(A1,MIN(FIND({1,2,3,4,5,6,7,8,9,0},A1&1/17)-1))

2]要将值提取到单个单元格,请在 C1 中横向和纵向复制:

=TRIM(MID(SUBSTITUTE($A1," ",REPT(" ",999)),(LEN($A1)-LEN(SUBSTITUTE($A1," ",""))-7+COLUMN(A1))*999,999))

或者,使用 FILTERXML 函数来提取值。

=FILTERXML("<a><a>"&SUBSTITUTE($A1," ","</a><a>")&"</a></a>","a/*[last()-7+"&COLUMN(A1)&"]")

相关内容