迁移
把表格导入CRM:完整分步指南
如何把表格数据导入CRM软件而不丢失客户:清理Excel或Google Sheets文件、拆分姓名和地址列、统一日期与电话格式、去掉公式只留计算结果、按邮箱和电话找出重复项、把每个来源列映射到目标字段,并先用大约20行数据测试,确认无误后再导入整份文件,同时把原始表格原样保留作为存档。
Ifa 团队
如果你的客户存在一份Google Sheets或者一份Excel工作簿里,这份文件本身就已经是你的CRM。把它搬进一个正式系统,重点不在软件,而在这份文件本身。我们见过的几乎每一次失败的导入,其实在点下上传按钮之前就已经注定:一行里塞了两条记录、日期用了三种格式、本该是一个数值的地方放了一条公式。本文按顺序说明整个清理过程,菜单路径以2026年9月为准。Ifa的导入功能是本文的实例,我们也会说明它在哪些地方跟其他工具没有区别。
第一步:每种记录类型只放一个标签页
一个CRM会把每种记录类型分别存在自己的表里:客户放一张表,预约或工单放另一张表。如果一行表格写着“Maria Lopez,555-0132,3月14日刹车维修,6月2日换机油”,这其实是一位客户加两条工单。
先决定自己实际拥有哪几种记录类型,给每一种建一个独立的标签页。在子表上加一列关联字段(客户邮箱,或者你自己分配的客户编号),让每条预约都知道自己属于哪位客户。
以上操作都要在文件的副本上进行,绝不要动原始文件。第十四步要靠原始文件保持原样才能生效。
第二步:用能说明含义的表头命名字段
每个标签页的第一行,应该只放每列一个简短的表头,不放别的东西。删掉标题行、合并的横幅单元格、标志图片,以及人们习惯留在标题下面的空行。这些表头名称之后会成为列映射的依据,所以要让它们说清楚这一列存的是什么:用“邮箱”而不是“联系方式”,用“最近到店”而不是“日期”。
有两项检查只需要一分钟:表头之间没有重名,也没有一列有数据、上面的表头却是空的,因为多数导入工具根本看不见这样的列。
第三步:一行一条记录
客户标签页上的每一行都应该正好是一位客户,预约标签页上的每一行都应该正好是一次预约。常见的问题包括:
- 一行里塞了两个人:“Tom与Sue Baker”。把他们拆开,或者把这户家庭本身当作一条记录。
- 一个单元格里塞了一整段历史:“1月3日染发,2月14日剪发,3月20日染发”。这其实是三次预约,应该在预约标签页上占三行。
- 标签页底部的小计行。删掉它们,CRM会自己计算。
- 数据中间夹杂的分区标题(“常客”“路过客人”)。把它们变成一列“分类”,并删掉行与行之间的空行。
第四步:按目标系统的要求拆分姓名和地址列
多数CRM会把姓名分开存成名和姓,也有不少会把地址拆成街道、城市、地区和邮编几个独立字段。如果你的表格只有一列“姓名”,请在导入前先拆开,而不是指望工具自己猜出姓氏从哪里开始。
在Google Sheets里:选中列,依次点“数据”和“将文本拆分成多列”,分隔符选“空格”。在Excel里:“数据”“分列”,选“分隔符号”,勾选“空格”。之后要检查那些打破常见格式的姓名,比如带中间名的“Mary Ann”或者带介词的“van·der·Berg”这类姓氏,手动修正它们。
只有目标系统确实有独立字段时才拆分地址,先确认这一点(见第十一步)。
第五步:统一日期格式,最好用ISO格式
“03/04/2025”在美国指的是3月4日,在几乎所有其他地方指的是4月3日。一列里同时出现“3/4/25”“March 4”“4-Mar”和“2025-03-04”,会被四种不同的方式解读。
安全的格式是ISO 8601:YYYY-MM-DD,也就是2025-03-04。在Sheets里,选中列,用“格式”“数字”“自定义日期和时间”;在Excel里,用“设置单元格格式”“自定义”,输入yyyy-mm-dd。
之后要确认这些单元格是真正的日期,而不是看起来像日期的文本。真正的日期默认右对齐,文本默认左对齐。在Sheets里用=ISDATE(A2)、在Excel里用=ISNUMBER(A2),往下拖一列,就能找出那些其实是文本的日期。
第六步:电话和邮箱的格式
Excel会自动去掉它认为是数字的内容开头的0,国际号码也会丢失前面的加号。在往电话列粘贴任何内容之前,先把它设成文本格式(Excel里是“设置单元格格式”“文本”,Sheets里是“格式”“数字”“纯文本”)。然后统一选定一种写法:本地格式的(555) 013-2200,或者国际格式的+1 555 013 2200。
邮箱应该统一小写、一格一个、结尾没有多余空格。Sheets里的“数据”“数据清理”“清除空格”能修掉多余空格;在Excel里,用一个辅助列写=TRIM(LOWER(B2))也能做到。
| 字段 | 能被正确读取的写法 | 通常会被拒绝或读错的写法 |
|---|---|---|
| 日期字段 | 2025-03-04 |
3/4/25、March 4th、next Tues |
| 电话字段 | 文本单元格里的+1 555 013 2200 |
被存成数字的5550132200,或者一个单元格里塞了两个号码 |
| 邮箱字段 | maria@example.com |
带结尾空格的Maria@Example.com ,或者一格里塞了两个邮箱 |
| 金额字段 | 45.00 |
$45、45 USD,美式地区设置下的45,00 |
| 是否字段 | 统一写法的yes或no |
一列里混用Y、yes、x、✓ |
第七步:去掉公式,只留下计算结果
CSV无法保存公式,而一个XLSX导入工具通常只会读取缓存的计算结果,这个结果可能已经过时,或者是像#REF!这样的错误值。请把每个带公式的列都转成数值:选中标签页,复制,然后在Sheets里用“编辑”“选择性粘贴”“仅粘贴数值”(Ctrl+Shift+V),在Excel里用“开始”“粘贴”“粘贴数值”。
在这样做之前,先想清楚每条公式原本是干什么用的。一列“距上次到店的天数”是从“最近到店”推算出来的,根本不应该被导入,CRM会自己实时计算它。
第八步:合并单元格和备注列
合并单元格是让一个“Baker一家”这样的标题横跨四行的常见做法。但对导入工具来说,一个合并区域只是左上角那个单元格有值,下面的单元格全是空的,于是第2到第4行就丢掉了这个家庭名称。请取消所有合并(Sheets里是“格式”“合并单元格”“取消合并”,Excel里是“开始”“合并后居中”),然后把值向下填充到每一行。
备注列要不要拆分,需要自己判断。一个自由文本单元格写着“对氨水过敏,喜欢周四,欠款20美元,换了新号码”,其实塞了四件不同的事实。你可以把这一列作为一个整体的“备注”字段导入,接受它保持一段文字的样子;也可以把你实际会拿来筛选的事实(“过敏史”“偏好日期”)单独提出来做成列,剩下的留在备注里。
第九步:导入前先找出重复项
CRM里的重复记录,会变成同一个人的两段历史,之后有人可能会给错误的那条发短信。
最快的检查方法是一列COUNTIF公式。在邮箱列旁边输入=COUNTIF(B:B, B2),往下拖,任何大于1的结果都是重复邮箱。电话列同样处理一遍。谷歌在support.google.com上有COUNTIF的说明,微软在support.microsoft.com上也有。一张按邮箱计数的数据透视表能给出同样的结果。
两款工具都有一键的“删除重复项”功能(Sheets里是“数据”“数据清理”“删除重复项”,Excel里是“数据”“删除重复值”)。它会保留第一条匹配的行,删掉其余的,所以如果同一个人的两行备注不一样,第二行的备注就没了,需要手动合并。近似重复(比如“M. Lopez”和“Maria Lopez”)不会按姓名匹配上,请改用电话或邮箱匹配,这也是第五步和第六步要先做的原因。
第十步:导出为CSV,或者保留XLSX
先确认目标系统接受什么格式。综合我们研究过的这些工具,一个诚实的结论是:几乎每一款CRM都接受一份联系人CSV,但能接受预约、工单、车辆或宠物这类关联记录的却少得多。
| 你要导入的内容 | 多数CRM,截至2026年9月 | Ifa |
|---|---|---|
| 联系人或客户,单份CSV | 支持 | 支持 |
| 关联到客户的第二份预约或工单表格 | 有时支持,通常只支持联系人 | 支持,作为关联记录 |
| 一份包含多个标签页的XLSX | 少见,通常需要逐个标签页导出 | 支持(XLSX、XLS、已禁用宏的XLSM) |
| 来自其他工具导出的JSON或JSONL | 少见 | 支持 |
| 单元格批注、格式、公式 | 不支持 | 不支持 |
如果选择CSV:在Google Sheets里,“文件”“下载”“逗号分隔值(.csv)”只导出你当前打开的那个标签页,需要逐个标签页重复操作。在Excel里,用“文件”“另存为”,选择“CSV UTF-8(逗号分隔)”,同样每个工作表操作一次。请选UTF-8编码,让带重音符号的姓名能正常保存。
第十一步:映射列
每一款导入工具都有一个映射步骤:左边是你的表头,右边是目标字段。第二步做得好不好,这时候就见分晓了。留意以下四点:
- 一列在目标系统里找不到对应字段。要么先创建这个字段,要么干脆删掉这一列,不要硬塞进备注里。
- 一个必填字段(通常是姓名)在某些行里是空的。这些行会被拒绝或跳过,具体取决于工具。
- 类型不匹配:一列文本被映射进了日期字段,或者“yes/no”被映射进了数字字段。
- 子表上的关联列:“客户邮箱”必须映射到客户记录本身,而不是一个普通的文本字段。
在Ifa里,映射会先根据你的表头给出一份提案,你要做的是修正它,而不是从零开始搭建。这很方便,但不是万能的:一个叫“联系方式”的表头,仍然需要你亲自说明它是电话还是邮箱。导入页面展示了整个流程,以及Ifa能读取的文件类型:CSV、TSV、JSON、JSONL、XLSX、XLS,以及禁用了宏的XLSM。
第十二步:先用20行数据测试
第一次绝不要导入整份文件。把表头和20行数据复制到一个单独的文件里,其中要包含几行你知道会比较棘手的记录:带连字符的复姓、有两个电话的客户、闰日那天的预约、邮箱是空的那一行。先导入这份测试文件。
然后在新系统里打开这些记录,像一个人那样去读它们。姓氏是不是放在了姓氏字段里?电话号码有没有保留加号?这次预约有没有关联到正确的客户?
在任何内容被写入之前,系统会先展示解析出来的行的预览,并对它们运行检查:文件内部以及跟工作区已有记录之间可能存在的重复项、无法识别或有歧义的日期、必填字段里的空值,以及没能正确解析的行。你会看到被标出的行,然后选择批准写入,或者修正文件后重试。不过这些检查只能发现它们本来就设计要发现的问题,它们不会替你合并两条记录,只会标出来、等你处理。
第十三步:然后再导入整份文件
一旦20行测试都读取正确,就用同样的映射导入整份文件。选一个不忙的时段进行,导入完成之前不要在新系统里编辑记录;一次编辑和一次导入同时进行,是记录“凭空消失”最常见的原因之一。
按依赖顺序导入:先客户,再是属于这些客户的记录。每导入完一份文件,就对比一下数量。如果客户标签页清理后有843行,系统里却只显示831条记录,先找出那12条差异,再继续下一步。它们通常是因为某个必填字段为空,或者被标记为重复而跳过了。在Ifa里,预览和你的批准都会留在审计历史里,方便你之后查看当时标出了什么、你又做了什么决定。
第十四步:保留原始文件
不要删掉那份原始表格。用日期给它改名(比如“clients-original-2026-09-01.xlsx”),并设为只读。三个月后,一定会有人问某位客户的生日为什么不对,答案就在原始文件里。
你应该停止做的,是继续编辑它。如果团队里有人出于习惯还在往旧表格里加行,请把新系统的链接分享给他们,并把旧表格锁起来。
常见问题与如何避免
以下是最常出现的失败情况,以及能预防它的那一步:
- **日期整体错了一个月或一天。**混用的日期格式在同一种地区设置下被读取。第五步:使用ISO日期格式,并用ISDATE检查。
- **电话号码丢了开头的0或者加号。**这一列被当成了数字来存。第六步:粘贴任何内容之前先设为文本格式。
- **每隔三行就有一行丢失家庭姓氏。**这是合并单元格造成的。第八步:取消合并并向下填充。
- **同一个人出现两次,备注还不一样。**重复项只按姓名匹配上了。第九步:改用邮箱或电话匹配,手动合并。
- **导入“成功”了,却少了12行。**必填字段是空的,工具悄悄跳过了这些行。第十一步和第十三步:先在映射时检查必填字段,再对比数量。
更普遍的一点是:这份表格只是一个时间切片。没有任何一款导入工具(包括Ifa在内)会在之后帮你保持同步,也没有哪家的付费迁移服务会替你把清理工作全包了。表格和Sheets或Excel之间没有实时的双向同步。如果你还没决定要迁移到哪个系统,我们关于客户管理软件的指南说明了导入这一部分,从表格到工作区页面则展示了一张表格的标签页和列,是如何在Ifa里变成记录和字段的。
大家常问的问题
我能直接导入Excel文件,还是必须先转成CSV?
这取决于具体工具。很多CRM只接受CSV,所以你需要给每个标签页导出一份CSV。有些工具接受XLSX,但只读取第一个工作表。Ifa能读取XLSX和XLS,以及禁用了宏的XLSM,并在预览界面里展示每一个标签页。文件格式本身修不好一份脏数据,先做完第一步到第九步。
怎样在导入客户到CRM时不产生重复?
先用COUNTIF在邮箱和电话列上找出它们(第九步),手动合并备注不一样的那些。然后把导入工具自带的重复检查当成第二道防线,而不是第一道。Ifa会在预览界面标出疑似重复项,并等你做出决定后才写入。
如果预约和客户在同一个标签页上怎么办?
先拆开它们(第一步)。每次预约在一个预约标签页上单独成一行,并用一列说明它属于哪位客户。然后确认目标系统是否接受预约类的记录。多数CRM只导入联系人,仅此而已;如果你用的正是这样的工具,历史记录就只能留在已归档的表格里。Ifa能导入关联记录,并在映射时把它们连接到对应的父记录上。
把表格导入CRM要花多长时间?
上传本身只需要几分钟,真正花时间的是清理工作。对一份维护了几年、结构比较松散的几百位客户的表格来说,第一步到第九步大约要预留半天时间,测试和正式导入再留出安静的一小时就够了。
我应该导入备注列吗?
应该,作为一个自由文本字段整体导入,除非你要在里面筛选某些内容。只把你实际会去搜索的事实(比如过敏史或车牌号)单独提出来,剩下的作为一段文字保留即可。
最后更新于2026年9月1日。