在我消失的这段时间里

很久没有回来写博客了,这段时间我一直在做不算本职工作的工作。

起因是换了个部门,这点我年初的时候在 说说 里面写了。这个部门属于新成立的,如今大半年过去,不能说业务毫无发展,只是量少得可怜。

我们经理在马来西亚,平时见不着人,看数据知道我和同事闲着,于是就开始找项目给我们做。

一起转过来的同事以前一直有给他老板做帮手,所以业务上的数据分析、PPT 我们现在的老板就都直接找他了。我对那部分不擅长,更喜欢自己学些乱七八糟的技术。正巧公司这季度开始要求员工回公司上班,每个季度必须达到39天。为了方便跟踪大家的数据,老板让我试着做个工具。

我对 Excel 数据分析不在行,不过好在之前自学了 Python 的皮毛,读取和操作 Excel 还是可以做到的。可是数据提取之后要如何展示呢?老板本来说就在 Excel 中展示数据, 可是那样子不方便进行各个条件地筛选,于是我打算用 PowerBI 实现数据可视化。看了半小时入门视频,对 PowerBI 的工作流程有了大体认识后,我开始着手做这个项目。

PowerBI 跨平台数据可视化

项目涉及到的表格有3个:

  • Holiday Plan: 一个共享表格,里面记录了每个人全年的工作计划,还包含了不同地区的公共假期。我们部门的人分布在马来西亚、印度、中国,又负责不同国家的业务,包括欧洲、南亚、东南亚、大中华区、韩国、日本,所以大家工作、休假时间都是不同的。
  • Back to Office Tracking: 也是一个共享表格,由每个部门员工手工记录自己回公司办公的情况。
  • Login/Logout Data: 从系统中导出的 Excel 表格,包含每个员工登录、退出系统的时间等信息。

我要做的事情是把3个表格的数据提取、整合到一起,方便 PowerBI 可视化展示。面临的困难主要有:

  1. 除 Login/Logout Data 是从系统导出的标准数据,另外两个都是手工创建的,不是标准格式,需要写大量规则来准确提取数据;
  2. 一些手动填写的数据缺失或不规范,例如人名、工作状态,因此需要大量的匹配规则来做判断;
  3. 前面说到,我们部门的同事居住和面向的业务在不同国家,部分同事的公共假期不是固定的,这就导致无法简单粗暴地计算假期,需要结合 Login/Logout Data 进一步判断。

一边在 Google 搜索,一边问 ChatGPT,磕磕绊绊地针对3个表格分别写程序,不过发现互相之间的数据有关联,而 PowerBI 又不便加载多个代码文件,于是最终把整个逻辑写到了一个文件里,总的代码接近600行,逻辑嵌套深的地方都 8、9 层了。

Python 项目在 Visual Studio 中的截图
通过 PowerBI 实现数据可视化

在 PowerBI 中选择数据源为 Python 脚本,然后把代码贴进去,运行后添加需要的度量值和可视化对象。当需要更新数据时,在 PowerBI 中点击刷新按钮就可以自动跑代码,自动应用到可视化对象上面。更重要的是,我可以把它发布到 PowerBI 服务器,直接把链接分享给部门里的同事,就不需要手动去拿数据发邮件 report —— 果然偷懒反而是我最大的动力。

本来打算在此过程中锻炼面向对象的思维,然而项目的目的单一,而且每个表格的差异大于共性,所以还是放弃了,等后面有空了再考虑重构吧。老板看不到代码写得漂亮与否,他们在意的是有没有做出来,能不能实现预期的目标,这就是现实。

我的本职工作和写代码一点关系都没有,这算是当了一把野生程序员了吗?

耕读君
耕读君

散漫的人写散漫的文。

文章: 125

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注