在Excel列中,有一个值(字母数字),我应该复制到同一行的单元格但在另一列中,或者有多个值由空格分隔,我应该将最后一个值复制到另一栏。值具有相同的格式,数字5或6后跟一个字符和三个数字(8或9个字符)。如果另一列中有一个值,并且如果最后一个值有8个或9个字符,则如何正确复制?
由于
答案 0 :(得分:1)
(在额外输入和聊天后更新)
一枪!
=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) ) )
)
用言语......
如果没有找到换行符或空格,则取整个单元格文本, ,否则强> 找到最后一次出现的换行符(char 10)或空格(char 32)并从该索引中获取文本
答案 1 :(得分:0)
您也可以使用此公式。
=IF(ISNUMBER(SEARCH(" ",A1)),TRIM(RIGHT(SUBSTITUTE(A1," ",REPT(" ",LEN(A1))),LEN(A1))),A1)
答案 2 :(得分:0)
使用以下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