如何仅用Excel公式为PascalCase列名的大写字母/数字前插空格
PascalCase转带空格格式的Excel公式实现
适用Excel 365/2021及以上版本(动态数组支持)
直接在B1单元格输入以下公式,下拉可批量处理A列内容:
=TEXTJOIN("",,IF((SEQUENCE(LEN(A1))>1)*(OR(ISNUMBER(--MID(A1,SEQUENCE(LEN(A1)),1)),MID(A1,SEQUENCE(LEN(A1)),1)=UPPER(MID(A1,SEQUENCE(LEN(A1)),1))))," "&MID(A1,SEQUENCE(LEN(A1)),1),MID(A1,SEQUENCE(LEN(A1)),1)))
公式逻辑
- 用
SEQUENCE(LEN(A1))生成对应字符串长度的序号序列,逐个遍历每个字符 - 判断规则:非首字符且当前字符是数字(
ISNUMBER(--MID(...)))或大写字母(MID(...) = UPPER(MID(...))) - 满足规则时在字符前加空格,否则直接保留原字符
- 最后通过
TEXTJOIN拼接所有处理后的字符
适用旧版Excel(无动态数组支持)
输入公式后需按Ctrl+Shift+Enter作为数组公式确认,下拉批量应用:
=LEFT(A1,1)&MID(SUBSTITUTE(SUBSTITUTE(LOWER(A1),MID(A1,ROW(INDIRECT("2:"&LEN(A1))),1)," "&MID(A1,ROW(INDIRECT("2:"&LEN(A1))),1)),LOWER(MID(A1,ROW(INDIRECT("2:"&LEN(A1))),1)),MID(A1,ROW(INDIRECT("2:"&LEN(A1))),1)),2,LEN(A1)*2)
公式逻辑
- 单独保留首字符,避免开头出现空格
- 通过嵌套
SUBSTITUTE遍历后续所有字符,识别大写字母和数字并插入空格 - 截取处理后的有效内容完成拼接
效果验证
若A1内容为UserID123Name,公式输出结果为User ID123 Name,连续的大写字母(ID)和数字(123)保持连贯,完全符合需求。
内容的提问来源于stack exchange,提问作者DavidStein
相关产品推荐
相关产品推荐

