将单元格的最后一个值复制到另一列的单元格中

在Excel列中,有一个值(字母数字),我应该复制到同一行的单元格,但在另一列或有多个值由空格分隔,我应该复制到另一列的最后一个。 这些值具有相同的格式,数字5或6后跟一个字符和三个数字(8或9个字符)。 如果在其他列中有一个值,并且如果有8个或9个字符中的最后一个值有多个值,我该如何正确复制?

谢谢

在这里输入图像说明 颂歌

在这里输入图像说明

(更多的input和聊天后更新)

一枪!

=IF( AND(ISERR(FIND(CHAR(10), A1)), ISERR(FIND(CHAR(32), A1))), A1, MID(A1, MAX(IFERROR(FIND("#",SUBSTITUTE(A1,CHAR(10),"#",LEN(A1)-LEN(SUBSTITUTE(A1,CHAR(10),"")))),0),IFERROR(FIND("#",SUBSTITUTE(A1,CHAR(32),"#",LEN(A1)-LEN(SUBSTITUTE(A1,CHAR(32),"")))),0) )+1, LEN(A1)- MAX(IFERROR(FIND("#",SUBSTITUTE(A1,CHAR(10),"#",LEN(A1)-LEN(SUBSTITUTE(A1,CHAR(10),"")))),0),IFERROR(FIND("#",SUBSTITUTE(A1,CHAR(32),"#",LEN(A1)-LEN(SUBSTITUTE(A1,CHAR(32),"")))),0) ) ) ) 

换言之…

如果未find换行符或空格,则取整个单元格文本, 否则查找最后一次出现的换行符(char 10) 空格(char 32),并从该索引中获取文本

在这里输入图像说明

你也可以使用这个公式。

 =IF(ISNUMBER(SEARCH(" ",A1)),TRIM(RIGHT(SUBSTITUTE(A1," ",REPT(" ",LEN(A1))),LEN(A1))),A1) 

在这里输入图像说明

使用以下VBA sub复制到另一列。

  Public Sub CopyAnotherColumn() Dim LastUsedCell As Long Dim stCopyItIt As String LastUsedCell = Range("A1").End(xlDown).Row For Each rCell In Range("A1:A" & LastUsedCell) If InStr(1, rCell, " ", vbTextCompare) > 0 Then stCopyItIt = StrReverse(rCell.Value) stCopyItIt = Left(stCopyItIt, InStr(1, stCopyItIt, " ", vbTextCompare)) ReturnLastWord = StrReverse(Trim(stCopyItIt)) rCell.Offset(0, 2).Value = ReturnLastWord Else rCell.Offset(0, 2).Value = rCell.Value End If Next End Sub