我试图弄清楚如何在excel中将单个单词拆分为2个单独的单词。
e.g。输入字:BTCBitcoin
Desired output: BTC Bitcoin
有什么建议吗?
感谢。
答案 0 :(得分:1)
要在字符串中的最后一个大写字母前加一个空格,请使用:
=REPLACE(A1,AGGREGATE(14,6,ROW(INDEX(AAA:AAA,1):INDEX(AAA:AAA,LEN(A1)))/(CODE(UPPER(MID(A1,ROW(INDEX(AAA:AAA,1):INDEX(AAA:AAA,LEN(A1))),1)))=CODE(MID(A1,ROW(INDEX(AAA:AAA,1):INDEX(AAA:AAA,LEN(A1))),1))),1),0," ")
它将迭代字符串并找到最后一个大写字母,然后将其相对位置返回到REPLACE函数,由于该函数中的第三个标准为0,因此将在该位置前放置一个空格。
答案 1 :(得分:1)
使用 A1 中的数据,在 B1 中输入数组公式:
=LEFT(A1,MAX(SIGN(1-(INT(CODE(MID(A1,ROW(A$1:INDIRECT("A"&LEN(A1))),1))/31)-2)^2)*ROW(A$1:INDIRECT("A"&LEN(A1))))-1)
并在 C1 中输入数组公式:
=MID(A1,MAX(SIGN(1-(INT(CODE(MID(A1,ROW(A$1:INDIRECT("A"&LEN(A1))),1))/31)-2)^2)*ROW(A$1:INDIRECT("A"&LEN(A1)))),9999)
必须使用 Ctrl + Shift + 输入输入数组公式,而不仅仅是 Enter 键。如果这样做正确,公式将在公式栏中以大括号显示。
答案 2 :(得分:0)
或者您可以使用UDF - 保存以下代码以分离模块并使用!
Function LAST_CAPITAL(ByVal asw As String) As String
Dim i As Integer, cntr As Integer
cntr = -1
For i = 1 To Len(asw)
If Mid(asw, i, 1) = UCase(Mid(asw, i, 1)) And Mid(asw, i, 1) <> " " Then cntr = cntr + 1
Next i
If cntr > 0 Then
LAST_CAPITAL = Left(asw, cntr) & " " & Right(asw, Len(asw) - cntr)
Else
LAST_CAPITAL = asw
End If
End Function
答案 3 :(得分:-2)
说文字'BTCBitcoin'在单元格F16中
当您在单元格G16使用= LEFT(F16,3)时,您将获得单元格G16的“BTC” 当您在G17单元格中使用= RIGHT(F16,7)时,您将获得G17单元格的“比特币” 当您在单元格G18使用= CONCAT(G16,“”,G17)时,您将获得单元格G18的“BTC比特币”。
你可以在G16单元格中完成所有这一切= CONCAT(左(F16,3),“”,右(F16,7))