如何从excel中的单元格中获取所有大写字符?

时间:2017-11-29 10:54:44

标签: excel excel-formula excel-2007

我想要所有大写字母 .. 就像, Casey Richard Omar W = CROW ,...
Dimensional Stone的处理= PDS

像所有大写字母或短名称

enter image description here

6 个答案:

答案 0 :(得分:1)

如果你想避免使用 VBA,@Harun24HR 的解决方案是一个凌乱但非常有效的解决方案。 这是一个为有需要的人提供额外特殊字符的版本:

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE([@Navn],"a",""),"b",""),"c",""),"d",""),"e",""),"f",""),"g",""),"h",""),"i",""),"j",""),"k",""),"l",""),"m",""),"n",""),"o",""),"p",""),"q",""),"r",""),"s",""),"t",""),"u",""),"v",""),"w",""),"x",""),"y",""),"z",""),"æ",""),"ø",""),"å",""),"á",""),"ç",""),"é",""),"í",""),"ó",""),"ú",""),"-","")," ","")

用;而不是 ,(适用于其他语言的 Excel 安装):

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE([@Navn];"a";"");"b";"");"c";"");"d";"");"e";"");"f";"");"g";"");"h";"");"i";"");"j";"");"k";"");"l";"");"m";"");"n";"");"o";"");"p";"");"q";"");"r";"");"s";"");"t";"");"u";"");"v";"");"w";"");"x";"");"y";"");"z";"");"æ";"");"ø";"");"å";"");"á";"");"ç";"");"é";"");"í";"");"ó";"");"ú";"");"-";"");" ";"")

答案 1 :(得分:0)

使用以下公式---

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,"a",""),"b",""),"c",""),"d",""),"e",""),"f",""),"g",""),"h",""),"i",""),"j",""),"k",""),"l",""),"m",""),"n",""),"o",""),"p",""),"q",""),"r",""),"s",""),"t",""),"u",""),"v",""),"w",""),"x",""),"y",""),"z","")," ","")

enter image description here

答案 2 :(得分:0)

您可以使用正则表达式执行此操作

Sub ExampleRegExp()
    Dim RegExp As Object
    Dim str As String

    str = "Casey Richard Omar W"

    Set RegExp = CreateObject("vbscript.regexp")
    With RegExp
        .Global = False
        .IgnoreCase = False
        .Pattern = "([a-z]+)|(\s)"

        Do While .test(str) = True
            str = .Replace(str, vbNullString)
        Loop

        MsgBox str
    End With
End Sub

或将其用作UDF

Function GetUpperCase(str As String) As String
    Dim RegExp As Object

    Set RegExp = CreateObject("vbscript.regexp")
    With RegExp
        .Global = False
        .IgnoreCase = False
        .Pattern = "([a-z]+)|(\s)"

        Do While .test(str) = True
            str = .Replace(str, vbNullString)
        Loop

        GetUpperCase = str
    End With
End Function

A2我已输入=GetUpperCase(A1)

Output

答案 3 :(得分:0)

如果你有Excel 2016,其中包含有用的函数CONCAT,那么你可以使用这个数组公式:(为了可读性添加了换行符)

= CONCAT(MID(A1,MODE.MULT(IF(ABS(CODE(MID(A1,
  COLUMN(INDEX(1:1,1):INDEX(1:1,LEN(A1))),1))-77.5)<13,
  COLUMN(INDEX(1:1,1):INDEX(1:1,LEN(A1)))*{1;1})),1))

否则,正如已经提供的那样,VBA或带有一堆SUBSTITUTE的公式是必需的。

答案 4 :(得分:0)

似乎这个问题更多的是关于如何使用名称的首字母创建一个短名称。

如果是这种情况,请尝试以下公式:

    = CONCATENATE( LEFT( $A1 ),
    IFERROR( MID( $A1, 1 + SEARCH( "‡", SUBSTITUTE( $A1, " ", "‡", 1 ) ), 1 ), "" ),
    IFERROR( MID( $A1, 1 + SEARCH( "‡", SUBSTITUTE( $A1, " ", "‡", 2 ) ), 1 ), "" ),
    IFERROR( MID( $A1, 1 + SEARCH( "‡", SUBSTITUTE( $A1, " ", "‡", 3 ) ), 1 ), "" ),
    IFERROR( MID( $A1, 1 + SEARCH( "‡", SUBSTITUTE( $A1, " ", "‡", 4 ) ), 1 ), "" ) )

如果名称超过四个单词,则可以添加更多行,例如:

    IFERROR( MID( $A1, 1 + SEARCH( "‡", SUBSTITUTE( $A1, " ", "‡", # ) ), 1 ), "" ),  

#代表单词编号

如果任何单词包含字符,只需将其更改为任何其他不常见的字符。

答案 5 :(得分:-3)

听起来像是在寻找=UPPER()公式