如何在Excel中按大写字母将文本分成单独的列?

文章仅做记录,方便下次使用

目录

1、需求

按大写字母将字段分列,实现下图结果


2、实现方法

1)编写VBA代码,自定义函数
2)使用函数,实现功能:遇见大写字母则前面空格
3)按空格分开

正文

一、编写VBA代码,自定义函数 SplitWords

1、按住 ALT + F11 键打开 Microsoft Visual Basic应用程序 窗口

2、点击右键 插入 > 模块


3、将以下代码粘贴到 模块 窗口

Function SplitWords(ByVal Str As String) As String
'updateby Extendoffice 20151128
    Dim I As Integer
    SplitWords = Left(Str, 1)
    For I = 2 To Len(Trim(Str))
        If (Asc(Mid(Str, I, 1)) > 64) And _
           (Asc(Mid(Str, I, 1)) < 91) And _
           (Mid(Str, I - 1, 1) <> " ") Then _
            SplitWords = SplitWords & " "
        SplitWords = SplitWords & Mid(Str, I, 1)
    Next
End Function


4、Ctrl + s 保存并关闭VBA编写界面,返回工作表

二、使用函数,实现功能:遇见大写字母则前面空格

1、输入公式: = splitwords(A2)

2、然后将填充手柄向下拖动到要应用此公式的单元格上,并且在每个大写字母之前已插入空格以分隔单元格内容

3、将这些公式单元格复制并粘贴为值

三、分列

选中B列,并按空格分列

步骤1

步骤2

完成结果如下

四、备注

参考文章如下:https://zh-cn.extendoffice.com/documents/excel/3336-excel-split-text-by-capital-letter.html

上面需求是按大写字母分列,如果需求是在大写字母前面加下划线_,实现方法如下:
1、只需要修改最后一步操作分列
2、将分列这一步的操作更改为替换,将空格替换为下划线

你可能感兴趣的:(如何在Excel中按大写字母将文本分成单独的列?)