京公网安备 11010802034615号
经营许可证编号:京B2-20210330
在数据分析领域,聚类分析是 “无监督学习” 的核心技术 —— 无需预设分类标签,通过数据自身的相似性将样本划分为若干组(聚类),广泛用于客户分群、产品归类、异常识别等场景。提及聚类分析,多数人会首先想到 Python(scikit-learn)、R(cluster 包)等专业工具,但对 “Excel 能否做聚类” 存在疑问。
答案是:Excel 可以实现基础聚类分析,但仅适用于小数据量、低复杂度场景。它没有内置 “一键聚类” 的算法(如 K-means、层次聚类),但可通过 “数据分组 + 可视化 + 函数计算” 的组合方式,完成简单的聚类需求(如客户消费分层、产品属性归类);对于复杂场景(如高维数据、动态聚类数调整),则需借助 Power Query 或 VBA 扩展能力,且仍无法替代专业工具。本文将从基础到进阶,拆解 Excel 实现聚类的具体方法、实战案例与适用边界。
在深入方法前,需先厘清 Excel 在聚类分析中的角色:它不是为聚类设计的专业工具,而是通过 “现有功能组合” 满足 “轻量、快速、可视化” 的聚类需求,核心定位是 **“探索性聚类”**—— 帮助用户在正式用专业工具建模前,快速观察数据分布、划分初步分组,而非完成高精度、大规模的聚类任务。
Excel 聚类的适用场景与不适用场景对比:
| 适用场景 | 不适用场景 |
|---|---|
| 数据量≤1 万条(超过易卡顿) | 数据量≥10 万条(性能瓶颈明显) |
| 聚类维度≤3 个(如 “消费金额 + 购买频次”) | 聚类维度≥5 个(高维数据处理能力弱) |
| 聚类目标:简单分组(如 3-5 个聚类) | 聚类目标:复杂分组(如 10 + 个聚类) |
| 需求:快速出结果 + 可视化展示 | 需求:高精度聚类 + 算法调优(如 K 值优化) |
| 用户:无编程基础,仅会 Excel 操作 | 用户:需批量处理、自动化聚类流程 |
对于无编程基础、数据量较小(如 1000 条以内)的用户,可通过 “数据透视表分组”“条件格式可视化”“函数相似度计算” 三种方法实现基础聚类,操作门槛低,结果直观。
这是最基础的聚类思路:通过数据透视表对 “关键特征” 进行汇总,再根据特征值范围手动划分聚类,适合 “基于业务经验的规则化聚类”(如客户消费分层)。
假设我们有 1000 条客户数据,包含 “客户 ID、消费金额(元)、购买频次(次 / 月)、最近消费时间(天前)”,需按 “消费能力” 聚类:
插入数据透视表,将 “客户 ID” 拖至 “行”,“消费金额”“购买频次” 拖至 “值”(均选 “平均值”);
得到 “每个客户的平均消费金额、平均购买频次” 汇总表;
高消费群:平均消费金额≥5000 元 且 购买频次≥5 次 / 月;
中消费群:1000 元≤平均消费金额<5000 元 且 2 次 / 月≤购买频次<5 次 / 月;
低消费群:平均消费金额<1000 元 或 购买频次<2 次 / 月;
=IF(AND(B2>=5000,C2>=5),"高消费群",IF(AND(B2>=1000,B2<5000,C2>=2,C2<5),"中消费群","低消费群"))
当聚类维度为 2 个(如 “身高 + 体重”“广告投入 + 销售额”)时,可通过 “散点图 + 条件格式” 直观观察数据密集区域,手动划分聚类,核心是 “通过可视化发现数据自然分组”。
假设我们有 50 款产品数据,包含 “产品 ID、单价(元)、月销量(件)”,需按 “价格 - 销量” 关系聚类:
数据整理:删除销量为 0 的异常产品,确保 “单价”“销量” 为数值型;
插入散点图:
选中 “单价”“月销量” 两列数据,插入 “带平滑线的散点图”;
设置 X 轴 = 单价,Y 轴 = 月销量,添加数据标签(显示产品 ID);
观察散点图,发现 3 个密集区域:
区域 1(畅销高价):单价≥200 元,月销量≥1000 件;
区域 2(畅销低价):单价<200 元,月销量≥1000 件;
区域 3(滞销):月销量<500 件;
选中数据区域,用 “突出显示单元格规则” 标记:
畅销高价:单价≥200 且销量≥1000 → 填充红色;
畅销低价:单价<200 且销量≥1000 → 填充蓝色;
滞销:销量<500 → 填充灰色;
IF函数自动生成标签,与方法 1 步骤 4 类似。聚类的核心是 “计算样本间相似度”(如欧几里得距离、曼哈顿距离),Excel 可通过内置函数手动计算相似度,再根据距离阈值划分聚类,适合 “小样本、高精度” 的简单聚类。
对于 2 个样本 A(x1,y1)和 B(x2,y2),欧几里得距离越小,相似度越高,公式为:
在 Excel 中可通过SQRT和POWER函数实现:
=SQRT(POWER(x1-x2,2)+POWER(y1-y2,2))
假设我们有 50 个用户的 “日登录次数”“日互动时长(分钟)” 数据,需将相似度高的用户归为一类:
基准 1(高活跃):登录 10 次 / 天,互动 60 分钟 / 天;
基准 2(中活跃):登录 5 次 / 天,互动 30 分钟 / 天;
基准 3(低活跃):登录 2 次 / 天,互动 10 分钟 / 天;
# 到基准1的距离(A2=登录次数,B2=互动时长)
=SQRT(POWER(A2-10,2)+POWER(B2-60,2))
=IF(MIN(C2,D2,E2)=C2,"高活跃群",IF(MIN(C2,D2,E2)=D2,"中活跃群","低活跃群"))
当数据量稍大(1 万条以内)或需自动化聚类流程时,可通过 Power Query(数据清洗 + 批量分组)或 VBA(编写简化聚类算法)提升效率,接近 “半自动化” 聚类。
Power Query 的核心优势是 “批量数据清洗 + 动态分组”,可先对多维度特征做标准化(消除量纲影响,如将 “消费金额” 从 “元” 转为 “0-1 标准化值”),再按分组规则批量生成聚类标签,适合 “多维度、需重复执行” 的聚类场景。
假设我们有 8000 条客户数据,需按 3 个维度聚类,步骤如下:
// 消费金额标准化
= ( [消费金额] - List.Min(#"更改的类型"[消费金额]) ) / ( List.Max(#"更改的类型"[消费金额]) - List.Min(#"更改的类型"[消费金额]) )
= [消费金额标准化]*0.5 + [购买频次标准化]*0.3 + [复购率标准化]*0.2
点击【添加列】→【条件列】,设置分组规则:
综合得分≥0.8 → “高价值客户”;
0.5≤综合得分<0.8 → “中价值客户”;
综合得分<0.5 → “低价值客户”;
K-means 是最常用的聚类算法,Excel 无内置,但可通过 VBA 编写简化版(仅支持 2-3 维数据、固定 K 值),实现 “自动计算聚类中心 + 样本分配”,适合有一定 VBA 基础的用户。
手动指定 K 值(如 K=3);
随机选择 K 个样本作为初始聚类中心;
计算每个样本到 K 个中心的欧几里得距离,分配到最近的聚类;
重复步骤 3-4,直到聚类中心不再变化或达到迭代次数(如 10 次)。
Sub SimpleKMeans()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("数据") ' 数据所在工作表
Dim lastRow As Integer
lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row ' 最后一行数据
' 1. 定义K值、特征列(X=B列,Y=C列)
Dim K As Integer: K = 3
Dim iter As Integer: iter = 10 ' 迭代次数
Dim centerX(1 To 3) As Double, centerY(1 To 3) As Double ' 聚类中心
' 2. 随机选择初始中心(从第2行到lastRow行)
Randomize
For i = 1 To K
centerX(i) = ws.Cells(Int((lastRow - 2 + 1) * Rnd + 2), 2)
centerY(i) = ws.Cells(Int((lastRow - 2 + 1) * Rnd + 2), 3)
Next i
' 3. 迭代计算聚类
For j = 1 To iter
' 计算每个样本到中心的距离,分配聚类
For i = 2 To lastRow
Dim dist(1 To 3) As Double
' 欧几里得距离
dist(1) = Sqr((ws.Cells(i, 2) - centerX(1)) ^ 2 + (ws.Cells(i, 3) - centerY(1)) ^ 2)
dist(2) = Sqr((ws.Cells(i, 2) - centerX(2)) ^ 2 + (ws.Cells(i, 3) - centerY(2)) ^ 2)
dist(3) = Sqr((ws.Cells(i, 2) - centerX(3)) ^ 2 + (ws.Cells(i, 3) - centerY(3)) ^ 2)
' 分配到距离最近的聚类
ws.Cells(i, 4) = WorksheetFunction.Match(WorksheetFunction.Min(dist), dist, 0)
Next i
' 4. 更新聚类中心(计算每个聚类的均值)
For c = 1 To K
Dim sumX As Double, sumY As Double, count As Integer
sumX = 0: sumY = 0: count = 0
For i = 2 To lastRow
If ws.Cells(i, 4) = c Then
sumX = sumX + ws.Cells(i, 2)
sumY = sumY + ws.Cells(i, 3)
count = count + 1
End If
Next i
' 避免除以0(无样本分配的情况)
If count > 0 Then
centerX(c) = sumX / count
centerY(c) = sumY / count
End If
Next c
Next j
MsgBox "K-means聚类完成!聚类结果在D列(1-3代表3个聚类)"
End Sub
按Alt+F11打开 VBA 编辑器,插入 “模块”,粘贴上述代码;
尽管 Excel 能实现基础聚类,但与 Python(scikit-learn)、R(cluster 包)、SPSS 等专业工具相比,存在 4 个核心局限,决定了它仅能作为 “探索性工具”,而非 “生产级工具”:
Excel 单工作表最大支持 1048576 行数据,但聚类时超过 1 万行就会出现卡顿(如函数计算、散点图渲染延迟);
专业工具支持百万级数据(如 Python 用 Pandas 处理 100 万条数据仅需几秒),且能高效处理高维数据(如 10 + 个特征)。
Excel 无 “一键 K-means / 层次聚类” 功能,需手动实现或依赖 VBA(仅能写简化版);
专业工具内置多种聚类算法(K-means、DBSCAN、层次聚类),且支持自动调优(如用肘部法则选 K 值、轮廓系数评估聚类质量)。
专业工具可编写脚本(如 Python 脚本),实现 “数据导入→聚类→结果输出” 全自动化,支持定时执行。
Excel 仅支持散点图、柱状图等基础可视化,无法展示聚类的 “层次关系”(如 dendrogram 树状图)、“密度分布”(如热力图);
专业工具可通过 Matplotlib、Seaborn 生成聚类热力图、3D 聚类图、聚类中心对比图,更直观展示聚类逻辑。
根据数据量、聚类需求、用户能力,可按以下原则选择工具:
| 场景类型 | 推荐工具 | 核心理由 |
|---|---|---|
| 小数据(≤1 万条)+ 简单聚类(3-5 组)+ 无编程基础 | Excel | 操作门槛低,快速出结果,满足临时探索需求 |
| 中数据(1 万 - 10 万条)+ 多维度(3-5 维)+ 基础编程能力 | Python(scikit-learn) | 性能适中,算法丰富,代码易上手(有现成库) |
| 大数据(≥10 万条)+ 复杂聚类(10 + 组)+ 专业需求 | Python/R/SPSS | 支持高维数据、自动化流程、高精度调优 |
| 需定期自动化聚类(如每日 / 每周) | Python(脚本 + 定时任务) | 可批量执行,结果可对接报表(如 Power BI) |
Excel 能做聚类分析,但它的价值不在于 “替代专业工具”,而在于 “满足轻量、快速、无编程门槛的聚类需求”:对电商运营来说,用 Excel 快速将客户分为高 / 中 / 低消费群,支撑促销策略;对产品经理来说,用 Excel 按 “价格 - 销量” 聚类产品,初步判断产品定位 —— 这些场景下,Excel 的 “便捷性” 远大于 “功能局限性”。
若你的需求超出 “小数据、简单聚类” 范畴,不必强求用 Excel 实现复杂聚类,转而选择 Python(scikit-learn)等专业工具,既能提升效率,又能保证聚类质量。毕竟,数据分析的核心是 “用合适的工具解决问题”,而非 “用单一工具硬扛所有需求”。

数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
【核心关键词】大数据、零售商、消费者、供应链、运营、企业、产品、客户、数据模型、大数据平台、数据开发、系统运维、业务逻 ...
2026-06-26在物流配送、供应链履约、终端供货等业务场景中,送货率是衡量企业履约能力、服务质量、供应链稳定性的核心业务指标,直接关联客 ...
2026-06-26 很多数据分析师精通描述性统计,能熟练计算均值、中位数、标准差,但当被问到“用500个样本如何推断10万用户的真实满意度” ...
2026-06-26在数字化管理与数据化运营体系中,指标是连接原始数据与业务决策的核心载体。零散的原始数据只是无意义的数值堆砌,无法直接反映 ...
2026-06-25在Excel数据汇总、财务统计、业务复盘等日常办公场景中,经常需要完成逐行相乘、整体汇总求和的计算需求,最典型的场景就是:单 ...
2026-06-25 很多数据分析师沉迷于复杂的机器学习算法,却忽略了数据分析最基础也最核心的能力——描述性统计。事实上,80%的商业分析问 ...
2026-06-25【核心关键词】主数据、资产、供应商、现金流、企业、精细化、集团、数字化、中国、数据质量、数据管理、经营管理、地产行业、 ...
2026-06-24在数据分析、假设检验、AB测试、学术研究等统计场景中,显著水平(α)与P值(P-value)是判断统计结果是否具有统计学意义的两个 ...
2026-06-24小李刚入职了一家互联网公司的运营部门。第一次参加业务复盘会,运营主管问了一个看似简单的问题:“这个月新用户留存率下降了5 ...
2026-06-24在数字化转型全面渗透的产业背景下,数据分析已成为互联网、金融、零售、制造等几乎所有行业的核心岗位能力。很多初学者对数据分 ...
2026-06-23在企业并购、股权定价、投融资评估、资产核算等资本市场核心场景中,市场法是应用最广泛、市场认可度最高的企业价值评估方法。传 ...
2026-06-23 许多数据分析师精通Excel函数和SQL查询,但当面对一张上万行的销售明细表,要快速回答“哪个地区销量最高”“哪款产品增长最 ...
2026-06-23【核心关键词】运营、证书、金融、客户、产品、软件、销售额、量化、科技、数据分析、金融行业、证券类软件、业务流程、金融机 ...
2026-06-22在企业方案选型、产品迭代评审、供应商筛选、运营效果复盘等决策场景中,单一指标的优劣判断往往无法支撑科学决策。一套转化效果 ...
2026-06-22 很多数据分析师掌握了Excel函数、会写SQL查询,但当被问到“数据从哪里来”“数据加工有哪些步骤”“如何使用分析工具连接数 ...
2026-06-22【核心关键词】软件、洞察力、大数据、产品、经验、硬件、流量、创新、决策、数据安全、网络安全、数据分析、决策制定、数据挖 ...
2026-06-18在方案选型、效果复盘、产品评估、供应商筛选等各类业务决策场景中,仅凭单一指标下结论往往会陷入 “以偏概全” 的误区。多维度 ...
2026-06-18 很多数据分析师精通Excel单元格操作,但当被问到“表结构数据的基本处理单位是什么”“字段和记录的本质区别”“为什么表结 ...
2026-06-18在数据分析、用户运营与业务增长的工作体系中,漏斗拆解是最基础也最高频的问题定位方法。很多业务场景下,我们只能看到最终的转 ...
2026-06-17在数据库开发、数据清洗与报表统计场景中,数值类型转换为日期是高频刚需操作。业务系统常以 Unix 时间戳、整型日期(如20240617 ...
2026-06-17