CRM 数据迁移中的 Excel 数据处理难题

询盘云首次实施中,是需要客户先导入他的历史数据的。但经常会遇到很多客户的历史数据乱七八糟,难以整理的情况,比如:

一个邮箱字段里存储了很多个邮箱,如果在导入新系统前不处理好,这种不规范的数据会影响后续询盘云系统的正常使用,比如邮箱的查重、邮箱与CRM客户信息的自动关联、邮箱后缀查重等。

这种情况一般是由于原来的CRM系统限定不严格,或者是使用人在使用过程中未按规范使用,导致一个单元格里挤了多个单元格的数据,那如何能将以上数据整理成规范的CRM数据呢?

常规的Excel操作应该是在公司2下新增2行,然后在邮箱字段,选转置粘贴;然后在公司3下新增3行,然后在邮箱字段,选转置粘贴;。。。 一次类推,非常麻烦。那如何能快速处理呢?可以用 Excel 宏来处理

”宏“操作很简单,上方工具栏找到宏,选择录制宏,点结束,再点编辑,就可以自己编辑宏里的程序了。我通过 chatGPT 写了一段处理程序,分享给大家。

Sub SplitEmails()
    Dim lastRow As Long
    Dim companyColumn As Long
    Dim emailColumn As Long
    Dim i As Long
    Dim j As Long
    Dim k As Long
    
    companyColumn = 1 ' 请根据您的数据更改公司名称的列号
    emailColumn = 2 ' 请根据您的数据更改电子邮件地址的列号
    lastRow = Cells(Rows.Count, companyColumn).End(xlUp).Row
    
    ' 循环遍历每一行
    For i = lastRow To 2 Step -1
        Dim emailList As Variant
        emailList = Split(Cells(i, emailColumn), ",") ' 以逗号为分隔符分割电子邮件列表
        If UBound(emailList) > 0 Then ' 如果电子邮件列表中有多个电子邮件地址
            ' 将多个电子邮件地址分别添加到新行中
            For j = UBound(emailList) To 1 Step -1
                Rows(i + 1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
                Cells(i + 1, companyColumn).Value = Cells(i, companyColumn).Value
                Cells(i + 1, emailColumn).Value = Trim(emailList(j))
            Next j
            ' 更新原始行中的第一个电子邮件地址
            Cells(i, emailColumn).Value = Trim(emailList(0))
        End If
    Next i
    
    ' 删除多余的逗号
    For i = 2 To lastRow
        Dim email As String
        email = Cells(i, emailColumn).Value
        Cells(i, emailColumn).Value = Replace(email, ",", "")
    Next i
End Sub

这段代码执行后,可以秒把上述 Excel 变成如下:

如果你在处理 Excel 过程中,还有其他难题,也可以微信联系我,一起讨论交流。

贾定强微信

微信扫一下,或点击链接添加好友