← 返回文章列表

分析复杂的公式实现的Excel文件的逻辑

背景

公司有一个非常复杂的Excel文件,用于填报数据并做一些基本的分析。这个Excel文件设计得很精巧,充分利用了Excel的各种功能,通过颜色区分、基础数据区域、下拉选项、公式、条件样式等手段,实现了基础数据配置、数据填报、数据校验、统计分析等功能,几乎就是一个独立的业务系统了,设计者一定很厉害。

我们接到的需求是,将这个Excel的功能做上系统,毕竟线下使用不方便,数据也不通。开发时,有一个业务人员跟我们对接(非Excel设计者),我们做到哪一块,就问她这一块有什么逻辑,然后她去看公式,描述给我们。我发现,这样太低效了:① 她没有编程背景,自然语言描述经常不够准确;② 多个有互相联系的块,逐个描述,容易漏掉重要信息;③ 对于特别复杂的公式,她也看不太懂;④ 没有落到纸面,后面不清楚了还得重复问。我觉得,想把这个事情干好干扎实,对Excel中的逻辑进行系统、全面、细致的分析是必不可少的,这个事情,我来做。

分析过程

  1. 将每个Sheet导出为PDF,然后导入到我的iPad的GoodNotes软件中。

  2. 逐个Sheet,逐个单元格,阅读公式,理解并标注:

    1. 对于简单的单元格或公式,直接在单元格旁边手写标注,例如常量还是变量,输入形式是什么,从哪里取数,用伪代码重新表达逻辑等。
    2. 对于复杂的公式,先将其复制到VSCode中,加缩进格式化,使之更易读,然后再粘贴到GoodNotes中,一点一点地分析、标注计算过程,理解其意图。

    至此,我已经充分理解了Excel中的所有逻辑,并得到了一份详细的分析手稿。限于开发周期,此时完成手稿就结束了。之后所有的逻辑改为由我来描述和检查,就这样,我们完成了第一版的开发。

    分析手稿

  3. 进行第二版迭代时,我进一步将分析成果编写成了一个形式良好的文档,除了手稿中的内容(有不少变化),还考虑了目前已在系统上实现的功能模块划分、数据结构、填写控制等设计,使用更规范的描述方式(例如字段的多级命名、用颜色区分元素类型、更严谨的伪代码等),对每一个字段的逻辑进行了详细的描述。

    文档

    至此,我们的软件迭代彻底从Excel文件脱离了出来,后续逻辑的更新只需要在这份文档的基础上迭代即可。

价值

对问题充分的理解,是解决问题的重要基础。我自己去理解了这些,后面做起事情来就踏实、从容很多了。

这也说明,事情没有一定之规,合适的方法要自己去找出来。