一个让新人绝望的真实任务
2024年10月,运营新人小王接到人生中第一个重要任务:
「分析过去3个月的门店运营数据,找出业绩下滑的原因,并提出改进建议。明天下午向区域总监汇报。」
小王打开收到的数据文件,瞬间懵了:
- 5个Excel文件:工单明细表、门店信息表、客户档案表、产品价格表、目标设定表
- 12万行数据:工单明细就有85000行
- 数据质量差:有重复、有缺失、有错误、有不一致
- 完全不知道从哪里开始
小王尝试了一整个下午,只做了一件事——把5个表格合并成1个。但合并后发现数据乱七八糟,根本无法分析。
晚上9点,小王绝望地向师傅老张求助。老张看了一眼数据,说:「跟我学,我用2小时教你一套完整的数据分析流程。」
凌晨1点,小王完成了一份完整的分析报告。
第二天下午的汇报会上,区域总监看完报告说:「这份分析做得很专业,有数据、有洞察、有建议。小王,你这个新人不简单啊。」
会后,小王说:「其实我只是学会了一套标准流程,然后照着做而已。」
数据分析的完整流程:6步法
专业的数据分析不是拿到数据就开始做图表,而是遵循一套系统化的流程:
今天,我们用一个完整的真实案例,走完这6个步骤。
步骤1:明确目标 — 把模糊问题变成清晰问题
初始问题(模糊)
「分析过去3个月的门店运营数据,找出业绩下滑的原因。」
这个问题太模糊了,无法指导具体的分析工作。
问题拆解(SMART原则)
S - Specific(具体的):
- 业绩下滑指的是什么?收入?利润?客户数?
- 下滑了多少?相比什么时间段?
- 哪些门店下滑?所有门店还是部分门店?
M - Measurable(可衡量的):
- 收入下滑:从多少降到多少?
- 具体的数字和百分比是什么?
A - Achievable(可实现的):
- 现有数据能否回答这些问题?
- 数据的颗粒度够不够?
R - Relevant(相关的):
- 这个分析能带来什么价值?
- 能否转化为具体的改进行动?
T - Time-bound(有时限的):
- 分析的时间范围:7-9月 vs 4-6月
- 什么时候需要得出结论?
精准的分析框架
经过与领导沟通,明确了以下问题:
核心问题:
- 7-9月相比4-6月,总收入下滑了多少?
- 哪些门店的收入下滑最严重?
- 收入下滑的根本原因是什么?
- 客户数量减少?
- 客单价下降?
- 复购率降低?
- 特定业务类型出问题?
- 不同门店等级、不同区域的表现差异如何?
- 基于以上分析,提出3-5条可执行的改进建议
分析维度:
- 时间维度:月度对比、环比、同比
- 空间维度:区域、门店、门店等级
- 业务维度:业务类型(保养/维修)、客户类型(新客/老客)
- 指标维度:收入、工单量、客单价、复购率、NPS
步骤2:数据收集 — 找齐所有拼图碎片
数据清单
根据分析目标,我们需要以下数据:
必需数据:
- 工单明细表(85000行)
- 工单号、业务日期、门店名称、业务类型、客户ID、收入、成本
- 门店信息表(50行)
- 门店名称、门店等级、所属区域、店长姓名、开业日期
- 客户档案表(15000行)
- 客户ID、客户姓名、车牌号、首次消费日期、累计消费
- 业绩目标表(50行)
- 门店名称、Q2目标、Q3目标
可选数据(如果有的话):
- 产品价格表:用于核对单价是否正确
- NPS调查数据:用于分析客户满意度
- 活动数据:用于分析特定活动的影响
数据源检查清单
在正式分析前,先检查数据质量:
| 检查项 | 检查内容 | 常见问题 |
|---|---|---|
| 完整性 | 是否有缺失值 | 门店名称为空、收入为空、日期为空 |
| 准确性 | 数据是否合理 | 收入为负数、日期在未来、单价异常高 |
| 一致性 | 命名是否统一 | 「浦东1店」vs「浦东一店」vs「浦东01店」 |
| 唯一性 | 是否有重复记录 | 同一工单号出现多次 |
| 时效性 | 数据是否最新 | 只有7-8月数据,9月数据缺失 |
快速检查方法:
数据行数:=COUNTA(A:A)-1 检查是否有空行
重复检查:=COUNTIF(A:A,A2) 大于1说明重复
数值范围:=MAX(E:E)和=MIN(E:E) 检查异常值
日期范围:=MAX(B:B)和=MIN(B:B) 确认时间跨度
步骤3:数据清洗 — 让脏数据变干净
问题1:门店名称不一致
发现的问题:
- 工单表中:「浦东1店」「浦东一店」「浦东01店」
- 门店表中:「浦东1店」
- 导致VLOOKUP关联失败
解决方案:建立标准化映射表
| 原始名称 | 标准名称 |
|---|---|
| 浦东一店 | 浦东1店 |
| 浦东01店 | 浦东1店 |
| 浦东壹店 | 浦东1店 |
在工单表中新增「标准门店名称」列:
=VLOOKUP(B2,映射表!$A:$B,2,0)
如果映射表找不到,返回原值:
=IFERROR(VLOOKUP(B2,映射表!$A:$B,2,0),B2)
问题2:日期格式混乱
发现的问题:
- 有的是日期格式:2024-07-15
- 有的是文本格式:"2024/7/15"
- 有的是数字格式:45470(Excel内部日期数字)
- 导致无法按月分组
解决方案:统一转换为标准日期格式
=IF(ISNUMBER(B2), B2, DATEVALUE(B2))
然后设置单元格格式为「日期」→「yyyy-mm-dd」
问题3:收入字段包含文本
发现的问题:
- 有的收入是数字:500
- 有的包含货币符号:¥500
- 有的包含千分位:1,500
- 导致SUM函数计算错误
解决方案:清理并转换为纯数字
=VALUE(SUBSTITUTE(SUBSTITUTE(E2,"¥",""),",",""))
或使用更强大的组合:
=VALUE(TRIM(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(E2,"¥",""),",","")," ","")))
问题4:重复记录
发现的问题:
- 同一工单号出现2次
- 数据可能是导出时出错
检测方法:
=COUNTIF($A$2:$A$85001,A2)>1
如果结果为TRUE,标记为重复。
处理方式:
- 如果两条记录完全相同:删除其中一条
- 如果两条记录部分不同:需要业务部门确认保留哪一条
- 保守做法:都保留,但在分析时用UNIQUE函数去重
Excel去重方法:
- 选中数据区域
- 数据 → 删除重复项
- 选择用于判断重复的列(如工单号)
问题5:缺失值处理
发现的问题:
- 部分工单的门店名称为空
- 部分工单的收入为空
- 部分客户ID为空
处理原则:
| 字段类型 | 处理方式 | 理由 |
|---|---|---|
| 关键字段缺失 | ||
| (如工单号、日期) | 删除该行 | 无法确认该记录的有效性 |
| 核心指标缺失 | ||
| (如收入) | 删除该行 | 无法用于收入分析 |
| 辅助字段缺失 | ||
| (如客户ID) | 标记为「未知」 | 仍可用于其他维度分析 |
| 可补全字段 | ||
| (如门店信息) | 用VLOOKUP补全 | 可从主数据表获取 |
标记缺失值:
=IF(ISBLANK(C2),"缺失-需删除","正常")
筛选并删除:
- 在辅助列标记所有问题记录
- 筛选出需要删除的记录
- 删除前先备份原始数据!
- 记录删除了多少行,原因是什么
数据清洗检查表
完成清洗后,用这个检查表确认质量:
步骤4:数据整合 — 用VLOOKUP搭建分析底表
什么是分析底表?
分析底表是指将多个数据源整合到一张表中,包含所有分析需要的字段。
为什么需要分析底表?
- 原始数据分散在5个表中
- 每次分析都要关联多个表,效率低
- 建立一张整合表,后续分析可以基于这一张表完成
整合步骤
基础表:以工单明细表为基础(84780行)
第1步:关联门店信息
在工单表中新增列:
- 门店等级
- 所属区域
- 店长姓名
公式(F列-门店等级):
=IFERROR(VLOOKUP(C2,门店表!$A:$E,2,0),"未知")
公式(G列-所属区域):
=IFERROR(VLOOKUP(C2,门店表!$A:$E,3,0),"未知")
公式(H列-店长姓名):
=IFERROR(VLOOKUP(C2,门店表!$A:$E,4,0),"未知")
第2步:关联客户信息
新增列:
- 首次消费日期
- 累计消费金额
- 客户类型(新客/老客)
公式(I列-首次消费日期):
=IFERROR(VLOOKUP(E2,客户表!$A:$D,3,0),"")
公式(J列-客户类型):
=IF(I2="","未知",IF(B2=I2,"新客","老客"))
逻辑:如果本次消费日期=首次消费日期,则为新客。
第3步:关联业绩目标
新增列:
- 所属季度
- 季度目标
- 完成率(后续计算)
公式(K列-所属季度):
=IF(MONTH(B2)<=6,"Q2","Q3")
公式(L列-季度目标):
=IFERROR(VLOOKUP(C2&K2,目标表!$A:$C,3,0),0)
注意:这里用了门店名称+季度作为联合键查找。
目标表需要辅助列:
=A2&B2
(A列是门店名称,B列是季度)
第4步:添加计算字段
新增列:
- 月份:
=TEXT(B2,"yyyy-mm") - 毛利:
=收入-成本 - 毛利率:
=毛利/收入 - 是否达标:
=IF(收入>=某标准,"达标","未达标")
最终分析底表结构
| 列名 | 来源 | 用途 |
|---|---|---|
| 工单号 | 原始 | 唯一标识 |
| 业务日期 | 原始(已清洗) | 时间分析 |
| 门店名称 | 原始(已标准化) | 门店分析 |
| 门店等级 | VLOOKUP | 分层分析 |
| 所属区域 | VLOOKUP | 区域分析 |
| 业务类型 | 原始 | 业务分析 |
| 客户ID | 原始 | 客户关联 |
| 客户类型 | 计算 | 新老客分析 |
| 收入 | 原始(已清洗) | 核心指标 |
| 成本 | 原始 | 利润计算 |
| 毛利 | 计算 | 盈利分析 |
| 月份 | 计算 | 时间分组 |
| 季度 | 计算 | 目标对比 |
质量验证:确保数据准确性
在进入分析阶段前,最后一次验证:
验证1:数据完整性
按月统计工单数:
=COUNTIFS(分析底表!$B:$B,">=2024-07-01",分析底表!$B:$B,"<=2024-07-31")
检查每个月的工单数是否合理(7月、8月、9月)。
验证2:关联准确性
统计关联失败的记录:
=COUNTIF(分析底表!$F:$F,"未知")
如果「未知」数量过多(>5%),需要检查为什么VLOOKUP失败。
验证3:金额核对
分析底表总收入:=SUM(分析底表!$I:$I)
原始工单表总收入:=SUM(工单表!$E:$E)
两个数字应该完全一致(如果删除了部分记录,应该能解释差异)。
验证4:抽查核对
随机抽取10个工单号,手工核对:
- 门店信息是否匹配
- 客户信息是否匹配
- 计算字段是否正确
下一页预告:有了高质量的分析底表,接下来我们将进入真正的分析阶段。我们将用数据透视表快速生成多维度分析,用SUMIFS进行精准查询,用IF函数进行智能判断,最终形成一份有数据、有洞察、有建议的专业分析报告!