懒精自动化
对别人来说,做某件事就是从系统上读取某些数字,抄在纸上,然后不断地敲计算器,得出某些数据,然后再按照某些格式整理成别人要的样子。之前我也是这么干的,但是我觉得,这实在是太累人了。我要做的不仅仅是读取系统上的数据,我做的是读取我自己的数据,然后跟系统上的做比对。做的东西必须是最小单位。明细对好了,后面的汇总是水到渠成的事。我觉得,汇总数据这种事,规则我定下来,结果应该是自动生成的,管好我的明细数据,汇总数据就不会出乱子。汇总数据出来了以后,还得按照某些格式整出来,这其实是一个填坑的过程,但是应该怎么填呢?逻辑的思路就是,如果有数据就展示出去,如果没有数据,就为空。这是主要思路,但某些细节问题其实也是需要考虑的,比如说数据与数据之间的标点符号:逗号,分号,句号,冒号等等。没有数据的时候,那个地方是空,但是在连接两个数据之间,有些人默认带入了标点符号,于是就会出现一个神经质的状态。数据与数据之间有一大堆莫名其妙的标点符号,正常情况下,那些东西都不应该存在。按照人的思路,那些东西根本不可能存在,但为什么有那些东西呢?显然是那个做判定的人没有把标点符号写到判定里。什么时候应该逗号,什么时候应该句号,当没办法判定哪个才是最后一个的时候,标点符号怎么办?其实真的不能判定吗?肯定是可以的,当某个元素的序号等于这个数组的最后一位,显然那个东西就是最后一个了。在Excel的世界里。尤其是不考虑VBA,只考虑前台的公式,这个逗号的判定在我现在的能力范围之内,的确有点难,所以遇到这种情况,我干脆每个数据给它一行,每行数据的末尾,不加任何标点符号。
昨天我突然意识到,Excel的公式编写是可以插入空格和回车的,当然,空格和回车要加在恰当的地方。比如加在数据连接的地方,不要加在某个函数里。又或者其实加在某个函数里面也是可以的,但是如果你在表达字符串的地方加入了很多空格,最终的结果肯定会哭。也正是因为回车的加入,让我的公式看上去更整洁了,我不用纠结不断地眼睛急转弯。复制粘贴也变得相当的容易。的确复制粘贴很简单,但是粘贴得多了,每一行的数据框架都是一样,只是修改了里面的部分内容就会让我自然而然想到使用循环。如果Excel的公式里有for或者while这种循环该多爽。换句话说,为什么就不能有循环呢?之所以这样,大概是因为Excel,没想过你要么在某个单元格里面展示一堆合并起来的字符串。这种字符串的合并,理论上更应该出现在Word或者普通的txt里面。
我首先写了个索引,然后写了个数据,接着对数据进行数据透视表,最后写了个很长的公式。根据数据透视表和数据透视表以外的一组数据,生成了两段字符串。字符串里面所有数字的格式全部都严格按照我需要的模样输出。这样做的确实现了我想要的功能,但我感觉还是有点麻烦,如果写个VBA,加入数组,这些东西很容易就能表达出来。从前前台看来,也会干净利落很多,但问题是,加入VBA的话。Excel的保存格式就得改变。对小白来说,VBA是个洪水猛兽。他们不知道该不该允许宏这个东西。如果我是他们,我不了解这个东西。这个东西的确有安全隐患,我肯定不会主动打开,即便我知道这个东西可能很强大。
开源的东西用起来得花一些步骤。组装好的东西用起来的确用很爽,但问题是,万一里面有猫腻呢?归根到底,还是自给自足、自娱自乐比较好。