跳到主要内容
弗美科技
服务案例

中通服内部报表,Power BI 接了 6 张表

中通服一个内部经营报表,数据源散在 6 张表里,还有两个部门每月手工发的 Excel。用 Power BI 建了数据模型,定时任务每天凌晨把 6 张表同步成一张宽表,Excel 走固定目录读。最难的是口径:同一个「完成数」,三个部门算法不一样,光这事对了两天。

2021年6月11日报表数据口径商务智能

一个内部经营报表,需求写着「把现有数据接起来看看」。听着轻,做起来大半时间花在吵口径。

数据在哪

6 张表,分属三个系统:项目台账、合同、回款、人员、工时、还有一张字典表。另外两个部门每月各发一份 Excel,一份是外协费用,一份是区域调整,文件名带月份,放到共享盘固定目录。

第一版我们把 6 张表全塞进 Power BI,拉了关系,图出来了,数字对不上。市场部说本月完成 87,项目部说 91,财务那边报的是 84。都不是算错,是「完成」的定义不同:一个按合同签了算,一个按验收单签了算,一个按回款到账算。

先定口径,再建模型

停下来开了半天会,把每个指标的定义写成一句话,附在报表首页的「口径说明」里。完成数最终按验收单日期,另设两个并列指标叫「已签合同数」「已回款数」,各看各的,不互相替换。

这一步之后模型才好搭。每天凌晨 2 点跑一个定时任务,把 6 张表 JOIN 成一张宽表,字段 23 个,写进一张 report_daily。Power BI 只连这一张表,不直接碰业务库,免得报表查询把线上拖慢。

那两份 Excel 不走数据库,Power BI 按文件夹读取,自动取最新一个月的。缺文件的月份在报表上标一行黄字「区域调整未到」,不静默当 0。这是之前维护合同里那条教训,用上了。

口径说明那页纸是怎么写的

「完成数按验收单日期」这一句,写之前争了半天。市场部说按合同签了算,因为他们的月度目标是签约额;项目部说按验收单,因为没验收就不算干完;财务说按回款,因为账上没到钱不敢报。三种都对,只是各自对着不同的表。

最后没选一个「正确答案」,而是把三个都做成独立指标,各叫各的名字,首页那页「口径说明」里逐条写明取自哪张表、按哪个日期字段、含不含退货。谁看哪张图,自己认自己那行字。这页纸后来被客户打印出来贴在财务办公室墙上,比我们做的任何一张图寿命都长。

缺文件那行黄字

「区域调整未到」这行提示,是维护合同里那条教训直接搬过来的。第一版我们静默当成 0,报表数字照样出,只是少了一块;客户拿去开会,被问「这个月华北怎么这么低」,查了半天才发现是 Excel 没到。改成显眼标黄之后,再没出现过这种会上的尴尬。

后来这行字还派生出一个小功能:缺文件的月份,导出时单独列一行备注。财务说这样她拿去对账时,一眼能分出「真是 0」和「没数」。

三屏之后

上线半年客户自己加了一屏,是按人员看的工时分布,数据源还是那张 report_daily,没改模型。我们没参与,是客户那边一个会用 Power BI 的同事拖的。这大概是最理想的后续:宽表干净、口径写清,剩下的他们自己能来。

那份口径说明现在有 11 行,比第一版多了 3 行,都是后来补的细节,没人敢删。第 11 行是 2022 年补的,写「跨月退回按原月」,那页纸后来换过一次打印,字放大了一号,说墙上看着清楚。

页面就三屏

第一屏总览:6 个卡片、一条趋势。第二屏按区域下钻。第三屏是明细表,能导出。

客户最初想要一屏塞十几个图,我们没做。后来证明三屏够用,第三屏导出被点得最多,多数人其实是要把数拿去贴进自己的周报。

上线

6 月 11 号交付。头一周改了 4 处,全是口径细节:某个区域的历史数据要按旧算法、外协费用有一笔跨月、字典表里两个停用项要排除。都在那张「口径说明」里补了注。

有回客户那边的人指着首页那句话开玩笑:这行字比后面所有图都值钱。我没反驳。

商务咨询 · 免费初步沟通

需要针对你的场景给个建议?

把业务背景和当前系统情况告诉我们,我们会给出可执行的思路。

在线留言

周一至周五 9:00–18:00 · 工作日 9:00–18:00 响应,留言会在一个工作日内回复。

商务微信
商务微信二维码

扫一扫,加商务微信咨询服务与方案报价

或填写需求表单