如何在Excel中将下划线分隔的大写字符串转换为大驼峰格式?
Excel 下划线分隔全大写字符串转大驼峰格式解决方案
以下提供三种不同适用场景的实现方案,默认待转换的原始字符串存储在A1单元格:
方案1:Excel 365 / 2021及以上版本专属(简洁高效)
直接使用以下公式:=TEXTJOIN("",TRUE,PROPER(TEXTSPLIT(A1,"_")))
- 执行逻辑:
- 首先
TEXTSPLIT(A1,"_")按下划线拆分原始字符串,得到独立单词组成的数组 - 再用
PROPER()将每个单词转换为首字母大写、其余字符小写的格式 - 最后
TEXTJOIN将所有处理后的单词直接拼接为连续字符串,忽略空值
- 首先
方案2:全Excel版本兼容通用公式
无需高版本函数支持,所有版本均可使用:=SUBSTITUTE(PROPER(SUBSTITUTE(A1,"_"," "))," ","")
- 执行逻辑:
- 先把字符串中的下划线全部替换为空格,得到空格分隔的大写字符串
- 用
PROPER()对空格分隔的内容做格式转换,自动将每个单词首字母大写、其余小写 - 最后删除所有空格,得到符合要求的大驼峰字符串
注意:如果原始字符串本身包含空格,该公式会出现误处理,这类场景建议优先使用方案1,或提前将原始空格替换为临时占位符,处理完成后再还原。
方案3:VBA自定义函数(适合批量高频处理场景)
如果需要经常做这类转换,可以自定义函数简化操作:
- 按下
Alt+F11打开VBA编辑器,依次点击「插入」-「模块」 - 在新建的模块窗口中粘贴如下代码:
Function ToPascalCase(rawStr As String) As String Dim wordArr As Variant Dim i As Long wordArr = Split(rawStr, "_") For i = LBound(wordArr) To UBound(wordArr) wordArr(i) = UCase(Left(wordArr(i), 1)) & LCase(Mid(wordArr(i), 2)) Next ToPascalCase = Join(wordArr, "") End Function
- 关闭VBA编辑器返回表格,在目标单元格输入
=ToPascalCase(A1)即可调用函数实现转换。
内容的提问来源于stack exchange,提问作者Đình Hoàng Phan
相关产品推荐
相关产品推荐

