好吧,这是对超级用户的挑战

好吧,这是对超级用户的挑战

所以我进行了数据导入,其中一列的第一个名字重复出现,我没有分隔符来分割。问题是如何在第二个大写字母处分割文本?

IE A1

DanDan
DonalDonald
JackJack
ChrisChris

希望 A1 只是 Dan

谢谢

答案1

不要在第二个大写字母处拆分,而是在文本的一半处拆分:

=MID(A1,1,LEN(A1)/2)

答案2

您无法直接使用普通的 Excel 函数来执行此操作;它需要使用 VBA。

这一页有几个示例可以说明如何执行此操作。两个代码示例中较短的一个如下所示:

Sub CamelCase()
    Dim rCell As Range
    Dim lCount As Long

    With CreateObject("vbscript.regexp")
        .Pattern = "([a-z])([A-Z])"
        .Global = True
        For Each rCell In Selection
            lCount = .Execute(rCell).Count
            If lCount Then rCell.Resize(, lCount + 1) = Split(.Replace(rCell, "$1" & Chr(1) & "$2"), Chr(1))
        Next rCell
    End With
End Sub

这将获取任何包含大小写混合单词 ( AppleBabyCat) 的单元格,并按照每个新的大写字母将它们拆分到各自的单元格 ( Apple Baby Cat) 中。

答案3

这个公式可以起作用:

=LEFT(A1,AGGREGATE(15,6,ROW(INDIRECT("2:" & LEN(A1)))/(EXACT(MID(A1,ROW(INDIRECT("2:" & LEN(A1))),1),UPPER(MID(A1,ROW(INDIRECT("2:" & LEN(A1))),1)))),1)-1)

假设第一个大写字母是第一个字符,第二个大写字母是其后一个字符。

它从第二个字母开始到最后一个字母进行迭代,并找出与该字母的大写版本完全相等的字母。

然后它将该字母的第一个位置返回给 Left 函数。

在此处输入图片描述

相关内容