ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Tableau电商销售分析实战:从数据清洗到仪表盘交付

Tableau电商销售分析实战:从数据清洗到仪表盘交付 1. 先搞清楚Tableau在真实公司里到底干什么活我第一次在公司里接触Tableau不是因为想学一个炫酷的图表工具而是被一张周报逼的。当时业务方要看的维度有七八个渠道、区域、品类、门店、时段来回切Excel透视表做完一份要四十多分钟第二天口径一改还得重来。这种重复劳动逼着我去找一个能把数据和视图解耦的工具Tableau就是在这个节点进场的。它的核心价值不在于画图漂亮而在于把“数据源—计算逻辑—可视化呈现”三层拆开改一层不影响另一层这才是它在商业数据分析里站得住脚的原因。这一篇我打算用一个真实感的电商销售分析项目从头走一遍从拿到一份脏兮兮的CSV开始到清洗、建模、做核心指标、搭仪表盘、交付给业务方中间踩的坑、做的取舍、参数怎么算都摊开讲。目标读者是两类人一类是刚入门的小白跟着步骤能完整跑一遍另一类是已经在用Excel但想升级到BI工具的同学你已经会的业务逻辑不用重学缺的是工具层面的迁移思路。全文涉及的操作以Tableau Desktop 2022之后的版本为准界面差异我会标注Prep Builder和Server的部分也会带到。1.1 从一份老板催报表的真实场景说起项目背景设定成这样一家做线上零售的公司有自营小程序、第三方平台店铺和线下门店三条线运营总监每周一早上要看上周的经营情况。原始数据来自三个地方订单明细表、商品维度表、门店区域对照表格式是CSV和Excel混着字段命名风格还不统一比如同一个东西订单表里叫order_date商品表里叫上架日期。这种乱是常态干净的、结构统一的数据几乎不存在于真实工作里所以第一课不是画图是接受数据是脏的这个前提。业务方真正关心的问题其实就那么几个这周卖了多少钱、比上周多还是少、哪个品类在涨、哪个渠道在拖后腿、哪些门店需要重点关注。把这些拆成可度量的指标就是GMV、订单量、客单价、毛利率、同比环比、复购率这一组。注意先有业务问题再有指标最后才有图表。很多新手倒过来做先挑好看的图再往里塞数据结果图表很花哨但回答不了任何问题交付时被业务方一句所以呢问住。这个顺序我在每个项目里都强调它是后面所有工作的地基。1.2 Tableau Desktop、Prep、Server三件套的分工与选型逻辑Tableau不是一个软件是一套。Desktop负责建模和出图Prep Builder负责数据清洗和流程化处理Server或Cloud负责发布和共享。小白常犯的错是把清洗工作硬塞进Desktop用一堆计算字段去补数据质量问题短期能跑长期维护是灾难。判断标准很直接如果这个处理是每次数据更新都要做一遍的固定动作比如去重、补空、字段改名那就放Prep如果是跟分析视角相关的动态计算比如同比、占比、排名那就放Desktop。这两类工作混在一起改一个口径要动五个地方我自己踩过这个坑后来全部拆开才好维护。版本选择上我不建议一上来就纠结功能差异桌面版的基础功能足够覆盖九成日常需求。有个必须说清楚的点市面上流传的各种非官方渠道下载方式、激活手段都存在安全和合规风险可能夹带恶意程序也可能让公司承担法律和审计上的麻烦正规做法是用官方试用版评估或者走公司采购授权学生可以看看官方教育版政策。这不是套话我见过因为用了来路不明的安装包导致内网机器出问题的案例代价远大于省下的那点钱。2. 项目背景拆解一份电商销售数据集的分析需求数据这块我准备了两张主表加一张维表。订单明细表大约十万行字段包含订单编号、下单日期、商品编码、渠道代码、门店代码、数量、单价、折扣、成本价。商品维度表包含商品编码、商品名称、一级品类、二级品类、上架日期。区域对照表包含门店代码、门店名称、城市、大区、负责人。十万行在Tableau里算小数据量提取方式选提取能明显提速这个后面会讲原因。先明确一点这三张表的关联键分别是商品编码和门店编码纯文本型容易出现前后空格不一致的问题十有八九第一次关联会出现匹配不上的脏键这是必须提前预判的。2.1 数据集字段说明与业务问题清单把字段过一遍再动手能省掉大量返工。日期字段最容易出问题CSV里的日期如果格式不统一比如一部分是2024/5/6一部分是2024-05-06导入后Tableau会识别成字符串而不是日期一旦是字符串时间序列的粒度下钻、同比环比全都做不了。数量、单价这类数值字段如果某一列混入了暂无这样的文本整列会被判定为字符串。折扣字段更隐蔽有的是0.9表示九折有的是10%表示,这两种混在一起会直接把毛利率算飞。所以字段体检这一步我的习惯是先看每一列的数据类型和空值率再看几个关键列的样本值分布花十分钟换后面两小时不返工。业务问题清单我列成一张表让读者能对照着看每个问题对应什么指标、什么图表这样后面做图的时候心里有数业务问题对应指标推荐图表类型下钻维度上周整体卖了多少GMV、订单量指标卡片 折线趋势日期各渠道谁在涨谁在跌GMV环比分组条形图渠道哪些品类是主力品类GMV占比堆叠条形图 / 树状图一级品类哪些门店需要关注门店GMV排名条形图 地图门店、大区利润健康度如何毛利率散点图 / 热力图品类、渠道客户是否在复购复购率折线 指标卡客户、月份这张表的作用是对齐预期。业务方可能口头说我要看销售情况但销售情况这三个字背后可能包含上面六个方向。把清单摊在桌面上确认一遍比做完了再被推翻强得多。这张表在老手眼里就是需求文档的雏形。2.2 指标体系怎么定从GMV到复购率的拆解逻辑指标定义是项目的灵魂口径不统一后面所有的图都是错的。我逐个说清楚每个指标的计算逻辑和容易踩的坑。GMV等于订单明细里数量和折后单价的乘积求和注意这里用的是折后单价如果你的单价字段是原价、折扣字段单独存那就要先算出实际成交价公式是单价乘以折扣系数折扣如果存的是90代表九折就得除以100。订单量通常用COUNTD对订单编号去重因为一个订单可能有多行明细直接COUNT会把明细行当成订单数这是新手高频错误。客单价等于GMV除以订单量看起来简单但它对订单量的定义极其敏感去重逻辑错了客单价就错了。毛利率等于GMV减去成本除以GMV成本是数量和成本价的乘积。同比环比要注意时间粒度的对齐环比是跟上一期比同比是跟去年同期比Tableau里用表计算或者LOD表达式都能实现两者的差异在于LOD不受视图维度影响更稳。复购率相对复杂一点定义为在观察期内下单次数大于一次的客户数除以总客户数实现上要先按客户聚合出下单次数再判断阈值这一步通常在Prep里或者用LOD表达式预先算好标记字段。提示所有指标在正式做图前建议用手算或者Excel算一个小样本对照组跟Tableau的结果对齐一遍。我吃过亏一个除零没处理毛利率直接变成无穷大图上是一片空白排查了半小时才发现是成本为空导致的。2.3 数据连接方式的选择提取还是实时连接方式只有两个选项实时和提取选错了要么慢要么数据不同步。实时连接适合数据量小、且要求反映最新状态的场景比如监控看板缺点是每次操作都去查一次源库数据一大就卡。提取是把数据快照存到本地速度快支持离线缺点是数据有时效性需要手动或定时刷新。我们这十万行的小数据集用提取完全没问题而且后面做LOD和表计算时性能提升非常明显。刷新方式上个人项目用手动刷新够了如果是每天要给业务看的看板就要考虑用Prep流程配合计划任务或者发布到Server后设置刷新计划。连接时还有个细节CSV导入后数据解释器要不要开它有时候能自动识别表头和合并单元格但也会误判把正常的表头当成数据行。我的做法是默认关掉手动调整因为自动识别的行为不可预测出问题比手动配置更浪费时间。表之间的关联关系在Desktop的数据源页面里拖动建立注意选对连接类型左连接、内连接、全外连接的差别在数据完整性和行数膨胀上体现得很明显多对多的关联会让行数翻倍进而让GMV求和翻倍这是最隐蔽的错误之一一定要在关联后看一眼行数是否合理。3. 数据准备阶段Tableau Prep清洗与建模实操Prep Builder是Tableau专门做数据准备的模块界面跟Desktop不一样是一条从左到右的流程线每个节点是一个处理步骤非常适合把清洗逻辑固化下来。我用Prep的顺序通常是输入源→调整数据类型→清理字符串→过滤无效行→分组聚合→关联维表→输出。这个顺序不是随意的先统一类型才能做计算先过滤再聚合能减少计算量关联放最后是为了避免关联后行数膨胀再去重的麻烦。每一步都能看到数据预览这个即时反馈是Prep比写SQL调试舒服的地方。3.1 数据质量体检空值、重复、类型错乱的排查手法进Prep第一步先看整体概况Prep会自动给出每列的分布和空值情况。我会重点盯三样东西。一是空值率订单明细里的商品编码如果为空那这些行无法关联商品维度需要决定是丢弃还是保留。二是重复行订单明细里正常不应该有完全重复的行如果出现多半是导出时出了问题用移除重复项节点处理。三是类型错乱前面说的日期和数值被识别成字符串在Prep里可以直接改数据类型改的时候如果有转换失败的单元格Prep会把它们标出来这比在Desktop里改要友好得多。清理字符串这一步有讲究。前后空格是关联失败的头号杀手用修剪空格处理但要注意是修剪前后还是全部空格商品名称中间的空格不能删。大小写也要统一如果关联键里出现ABC和abc共存关联就会漏统一转大写或小写。还有一类隐藏字符从网页或者某些系统导出的数据里会带不可见字符肉眼看不出来但会让匹配失败Prep里可以配合清理函数处理。这些细节听起来琐碎但每一个都真实存在我几乎每个项目都会遇到至少两种。3.2 用Prep做字段规范化与关联合并字段规范化包括改名、拆分、合并、创建计算字段。改名是为了统一口径把order_date改成下单日期让业务方看的时候不用猜。拆分常用在把大区-城市这样的组合字段拆开或者把日期时间拆成日期和时段两部分。合并是把多个渠道的表按同样结构叠起来Prep里的并集节点支持手动映射字段特别注意不同表字段顺序不一样的时候手动映射比自动匹配可靠。关联合并是在Prep里完成的拖入两个输入源选关联类型和关联键Preview里立刻能看到匹配结果和未匹配的行数。这里必须核对一个数字关联后的总行数是否等于左表行数如果是左连接。如果翻了倍说明关联键在右表里不唯一比如商品表里同一个商品编码出现了两次这种情况下要么先去重要么重新确认主键。我一般会在关联后加一个汇总节点用COUNTD统计一下唯一键的数量跟原始表对比确认没有膨胀再往下走。注意Prep流程一旦发布给同事复用节点命名要清晰别用清理1清理2这种用清除编码空格过滤无效订单这样的业务语言半年后自己回来看也能秒懂。3.3 计算字段与参数毛利率、同比环比的计算过程计算字段是Tableau的核心战斗力分两类。行级别计算针对每一行数据比如实收金额 [数量] * [单价] * [折扣系数]。聚合计算针对视图里的分组比如毛利率 (SUM([实收金额]) - SUM([成本金额])) / SUM([实收金额])。聚合计算里所有字段都要用聚合函数包起来这是新手最容易犯的语法错误直接写[实收金额] - [成本金额]会报错因为那是行级字段。// 行级别实收金额 [数量] * [单价] * [折扣系数] // 聚合毛利率注意除零保护 IF SUM([实收金额]) 0 THEN NULL ELSE (SUM([实收金额]) - SUM([成本金额])) / SUM([实收金额]) END // 同比基于日期粒度 (SUM([实收金额]) - LOOKUP(SUM([实收金额]), -12)) / ABS(LOOKUP(SUM([实收金额]), -12))参数在Tableau里是一个可调的手动输入值用好了能大幅提升仪表盘的交互性。比如做一个折扣阈值参数让业务方自己滑动看不同折扣区间下的销量变化或者做一个目标GMV参数在仪表盘上对比实际值和目标值的差距。参数的使用步骤是先创建参数设定类型和取值范围再创建引用该参数的计算字段最后在视图里显示参数控件。这里有个细节参数值不会自动更新依赖它的计算字段的聚合方式改完参数记得看一眼视图是否刷新了。4. 可视化搭建从单图到仪表盘的完整过程图表搭建的顺序建议从单图开始一个一个做对最后再拼仪表盘。原因是仪表盘是单图的组合单图有问题在仪表盘里排查会很乱。我按照前面那张问题清单的顺序先做趋势折线再做渠道对比再做品类占比最后做门店排名和对比地图每个图做完都跟手工核对一个小数字确认无误再做下一个。这个笨办法慢一点但返工率极低经验告诉我前期的慢是在为后期省时间。4.1 排序与筛选Tableau排序的几种做法与场景差异Tableau里的排序有好几种实现方式用哪种取决于你要的效果。第一种是工具栏的快捷排序点一下条形图就会按降序排适合快速查看但它排的是当前视图里的值视图一变排序就重新计算。第二种是手动排序拖动行的顺序适合固定顺序展示比如按业务重要性排而不是按数值排。第三种是在计算字段里用RANK函数算排名再把它拖到行上这种最灵活能实现只显示前10名配合筛选器使用。第四种是表计算的排序适合动态场景。实际项目里我常用的是组合拳。门店排名用RANK。品类占比用快捷排序加筛选器限制数量做成TOP N。渠道对比保持固定顺序用自定义排序列表因为渠道的业务权重是固定的按金额排会来回跳业务方看着晕。还有个排序的小坑如果有筛选器过滤了部分数据快捷排序是基于过滤后的结果排的可能会跟预期不一致这时候要么用表计算要么调整筛选顺序。4.2 核心图表逐个实现趋势折线最简单的做法是把下单日期拖到列实收金额拖到行标记类型选线。日期粒度默认可能是年右键改成周或者月。如果要看同比把年份拖到颜色同一张图里就能看到两年的线对比。折线要注意一件事时间轴上如果有缺周Tableau默认会跳过看起来是有断点还是连起来取决于显示缺失值的设置默认是连起来的如果业务方要看到缺口就要手动打开。这个细节很多教程不讲但业务方经常问到。渠道对比用条形图渠道拖到行实收金额拖到列按金额降序排再加一个环比的计算字段放到标签上。品类占比用堆叠条形或者树状图树状图适合看层级比如一级品类里套二级品类面积代表金额。注意堆叠图里小占比的品类会挤成一条细线看不清这种情况要么用树状图要么设置筛选器只保留占比在某个阈值以上的。门店层面用地图把城市或门店代号拖到地图上用颜色表示金额高低配合筛选器看大区这个图在汇报时视觉冲击最强但也要注意地图的行政边界版本需要匹配不然城市定位可能不准。4.3 仪表盘布局与交互动作筛选、参数联动仪表盘是把多个单图拼在一起尺寸建议先定好常用的是自动固定尺寸或者按显示器分辨率设定比如1440乘900。布局用容器来管理水平容器放并排的图垂直容器放上下的图容器嵌套能让不同屏幕尺寸下布局不散。我见过有人完全用浮动元素拼一旦尺寸变化就全乱这是要避免的做法。交互主要靠动作和参数两种。动作里最常用的是筛选动作点一个图的某个元素其他图跟着筛选比如点地图上的大区下面的品类图就只显示这个大区。还有一个是突出显示动作不筛选只高亮适合对比场景。参数联动是把参数控件和多个图关联比如一个日期范围参数同时控制两张图的显示区间。做动作的时候要注意源工作表和目标工作表的设置还有触发方式是悬停还是选择悬停响应快但容易误触选择更稳定我一般用选择。4.4 格式美化与发布注意事项美化不是花哨是让信息更好读。几条我坚持的原则去掉不必要的网格线和边框标题用业务语言不用字段名数字格式统一百分比保留一位小数金额加千分位颜色不要超过五种重点要突出的才用高饱和色。字体大小按层级来标题最大标签次之坐标轴最小。仪表盘上放一个更新时间的说明让业务方知道这份数据是什么时候的这个细节能减少很多这个数对吗的反复沟通。发布之前要做几件事。一是性能检查看仪表盘加载时间超过十秒就要考虑优化方法包括减少提取的数据量、避免过多的表计算、简化关联、给常用筛选建索引如果连的是数据库。二是数据核对拿几个已知的数值跟源系统对一遍。三是权限确认发布到Server或Cloud的时候谁能看、谁能编辑要设置好别把明细数据糊里糊涂给了不该看的人。5. 常见问题与排查技巧实录这一节是我这些年踩过的坑汇总每一条都是真实遇到过的写成速查表方便对照。需要说明的是同一类问题在不同数据源上的表现可能不同下面的方案是常见实践里的通用思路具体到你的环境可能需要微调。5.1 数据源类问题速查表问题现象可能原因排查与解决关联后行数翻倍关联键在维表里不唯一用COUNTD核对唯一键维表先去重日期无法下钻被识别成字符串Prep或Desktop里改数据类型统一格式数值列变字符串混入了文本值定位异常单元格清洗后重设类型关联后大量行丢失用了内连接且键有空值改左连接或先补全空键毛利率异常大除零或成本为空加IF除零保护过滤成本为空的行地图城市点不上地理角色未设置或边界不匹配设置地理角色检查地图数据版本提取刷新失败源文件被占用或路径变化检查源文件权限和路径重新指定金额求和不对关联膨胀导致重复计算改用COUNTD或调整关联粒度这张表建议收藏遇到问题先对照八成的常见问题都在里面。5.2 计算与聚合报错的处理思路报错信息看懂一半就能定位。最常见的三种一是无法将聚合和非聚合混合——出现这个说明你在聚合计算里写了行级字段把所有字段用SUM、AVG这类包起来就好。二是无法比较字符串和数字——类型不匹配可能是日期字段被当成字符串拿去比较了先转类型。三是循环引用——计算字段互相引用Tableau不允许需要拆解依赖关系把其中一个改成行级或者重新组织逻辑。还有一个隐性的问题不报错但结果错就是表计算和LOD的优先级。表计算是在视图渲染之后算的受视图里筛选器的影响而LOD是在数据源层算的不受视图筛选影响。所以如果你用表计算算百分比而视图里有筛选器过滤了部分数据百分比的分母就会变结果跟预期对不上。这种情况要么把筛选器改成LOD或者上下文筛选器要么改用LOD表达式我一般倾向于用LOD因为行为更可预测。5.3 性能卡顿的优化经验仪表盘变慢通常有四个来源。第一是数据量十万行不卡百万行以上就要考虑先聚合再展示或者用提取并只保留必要字段。第二是计算复杂度尤其是嵌套的LOD和大量的表计算每个都会增加渲染负担能预计算的就在Prep里算好别留给视图。第三是关联方式多对多关联不仅会让结果错还会让计算量爆炸尽量在数据源层就把粒度统一。第四是可视化元素一个仪表盘上放十几个图还每个都有动作加载必然慢建议一个仪表盘聚焦一个主题图控制在六到八个。优化的顺序我建议从数据源开始因为那是根。先看数据源是不是可以精简再看关联是不是可以简化再看计算能不能预计算最后才是视图层面的调整。我遇到过一个案例仪表盘加载两分多钟最后发现是一个不必要的多对多关联导致行数从十万膨胀到三百万拆掉关联瞬间降到五秒。找到根因比盲目调格式有效得多。提示Debug性能问题的时候可以先把仪表盘拆成单个工作表逐个测速定位到具体哪个图慢再针对它排查比整个仪表盘一起看效率高。6. 数据分析项目里那些没人告诉你的经验工具操作是能查文档学会的但项目交付里有大量软性的东西文档里不写却直接影响你的工作评价。这一节讲几个我反复验证过的经验跟Tableau本身关系不大跟你怎么用Tableau把事情做成关系很大。6.1 指标口径对齐比画图重要我见过太多项目图做得漂漂亮亮结果业务方说这个订单量怎么比我系统里少了一半。原因往往是对订单量的定义不同业务方心里的订单量可能是去重后的订单编号而你的公式用的是明细行数或者反过来。这种偏差不是技术错误是沟通问题。我的做法是在项目刚开始就做一页指标口径说明把每个指标的计算逻辑用大白话写清楚比如订单量去重后的订单编号数量一个订单买三件商品算一单让业务方签字确认。这页纸花你半小时能省掉后面无数次的返工和扯皮。口径对齐还涉及时间口径。有的业务方看的是自然周有的是滚动七天有的是从周一到周日有的从周日开始。这些差异会让同一个数据在两个报表里对不上。我的习惯是问清楚然后在仪表盘标题里写明确比如自然周周一至周日避免之后被追问。6.2 交付节奏与需求确认做分析项目不要憋大招。我早期的坏习惯是等所有图都做完再给业务方看结果方向跑偏了全盘重做。后来改成三步走第一步拿到需求后先出草图纸上画也行讲清楚每个图要做什么确认方向第二步做出核心的三到五个图先给业务方看一版收集反馈第三步补齐所有图和交互做最终交付。这个节奏慢的开始反而快因为每次确认都排除了后续的返工风险。反馈收集也有技巧。别问你觉得这个图怎么样这种开放问题会得到大量无法执行的建议。要问具体的比如这个排名图你是想看前十还是全部这个时间粒度你习惯看周还是月。把反馈引导到可执行的选项上减少来回。6.3 后续可扩展的方向一个仪表盘做完了不是终点通常它会引来更多需求。常见的扩展方向有接入更多数据源比如把线上渠道的流量数据、客服的工单数据加进来做更全面的经营视图增加预测能力Tableau自带一些预测和趋势线功能能做初步的销量预测做成移动端适配业务方在手机上也能看设置告警当某个指标跌破阈值时自动通知。这些扩展每一步都能在现有的基础上加不用推倒重来这也是当初把数据层和视图层拆开的价值所在。我自己在实际操作中的体会是Tableau这个工具的门槛不在于会不会拖拽而在于你有没有想清楚要回答什么问题。工具三天能上手业务理解要三年。新手最容易陷入的误区是沉迷于研究各种高级技巧和炫酷图表却回答不了一个简单的问题。我的建议是每一个图做之前先问自己一句这个图出来之后业务方会做什么决策如果答不上来这个图大概率就是装饰品删掉比留着好。另外还有个小技巧项目做完之后把所有计算字段的公式导出成一份文档存起来下次做类似项目的时候直接复用我现在的字段库里积累了上百个常用计算新项目能省掉一半的搭建时间。
返回列表