2024-04
13

二维到一维的种种

By xrspook @ 8:56:17 归类于: 烂日记

又花了半个下午的时间,把前一天已经做出来的Power Query再进一步优化,但是有些细节还是没想到该如何处理,比如说某些品种的价格会发生变动。五个仓本来是三个不同的价格,但是可能到了某个时点,要把它全部都变成一个均价。该如何表达这种东西呢?理论上,那个时点,无论是用三个单价,还是用一个均价,哪一个乘以数量都应该是一样的东西,但是那个时点应该放在什么地方呢?还有就是,那不属于一个出库或者入库,所以不应该有任何的价值变动。如果是完全相等的,还能说得过去,但是如果分明就是直接从一个价格变成了另外一个呢?所以我不知道之前干这个东西的会计到底是如何实现,因为我无论如何用任何单价和数量都得不到她算出来的某个价格。所以到底她用的是什么样的单价呢?又或者说,之所以我算不出,是因为她把一些之前可能没有减掉的东西,也一并减掉了,又或者是反过来,但我完全没有那个信息,所以我没办法完美地把这个模拟出来。

十几年前当我第一次接触数据统计的时候,那个快要退休的老大妈用的方法是在Excel里做一个很大的二维表。因为仓号很多,日期也很多,她选择的是以日期作为横坐标,仓号为纵坐标,她的那张大表得连续用好多张纸才能完整打印出来,然后用胶水把它们粘起来。也有好一段时间,我也在重复着她干的这个事情,不过我再也没有打印出来。因为我没有打印出来,所以我跟她的思路有点不一样,我把横坐标跟纵坐标调换了一下,因为就拖动鼠标来说,纵向比较容易实现。

又过了好多年,他们又把我从一个全职检验员变成了一个全职统计员,所以我又得跟这些数据打交道,但那个时候,我就再也没干这种事情。我已经不记得什么机缘巧合之下我认识了数据透视表,可以肯定的是不是因为任何一个同事教我,也不是因为学校里面有任何相关的信息,但不知道为什么,我就突然间通窍了。在那以后,二维表这种事情都是数据透视表干,我只需要把一维数据处理就可以了,但实际上身边的人,无论他们一直跟数据打交道,还是只是个初出茅庐的人都一直在不断地填写着二维表,不断努力地把二维表的数据更新到新的二维表里面。这个东西我非常反感,因为就数据处理来说,非常容易出错,比如某个地方理论上应该是一个公式,但你却把它贴成了纯数字,那个地方就算是彻底完蛋了。如果你检查的时候没有发现这个问题,这将成为一个永远的系统错误。这种在二维表上原来是公式的地方贴成了纯数字,又是一个非常容易犯的错误。所以我真的很敬佩制作那个国粮局报表一开始电子版的那个人。他把纯数字的地方跟公式的地方用不同的颜色填充。一开始我不知道不同颜色有什么用,但突然我就不小心发现了,填表变得简单。你千万不能动某个颜色的地方,填数就仅仅在某几行或者某几列。这真的是一个很绝妙的事情,虽然接到那张表的时候,没有任何一个人告诉我原来那个东西是这么用的。现在已经有了国粮局的网页直报系统,在某些行里填数,数字会自动汇总到另外一些你不需要填的行里,需要填写的背景是白色的,不需要填写的背景是绿色的。对老司机来说知道该怎么办,但如果老司机带新手的时候不跟他说,汇总的那些不用填会自动生成,估计新手会觉得要把汇总的部分也填上去了,但实际上可能那些绿色的部分根本不允许填数。现在的国粮局系统是这样,以前的电子版大概也是这个道理。会有些人不明所以,会在那些本来是公式的地方,贴纯数字,于是,本来完全不需要你操心的部分就变成了你全部都得兼顾了。可能从前国粮局的那个报表不是单位的某些人发明的,而是上面下发下来就默认带有那些颜色,但是他们又做得不太彻底,比如有公式的部分没有设定为完全不允许修改。

数据的处理,当你真的用心了,才会有真的感悟,而不只是遵循别人的“规则”。

2021-12
17

VBA合并报表

By xrspook @ 8:47:14 归类于: 烂日记

我花了三天时间(但实际上每天都只有半天时间)把二维报表提取数据成以一维数据表。这有什么难度呢?一开始我也认为好像难度不是很大,但开始琢磨以后我发现事情远远没有我想象中的那么简单。我用的是Excel的VBA。如果操作简单的话可以在Excel的数据层面进行操作,但如果我要进行大量的数据清洗显然为了要追求效率,就必定要用到数组,数组这种东西无非就是不断地叠加循环以及判断。循环和判断我觉得几乎可以这么说,是编程的核心。要实现最终的目标,首先你得有一个非常清晰的逻辑,然后用那些循环和判断实现你的逻辑。当我看到某些人逻辑彻底混乱的时候,我心里就会冒出一句话,他们绝对不会懂得编程。也正是因为这样,所以现在的幼儿教育有时会把编程列为一个非常重要的项目,实际上练习编程就是锻炼逻辑,但是逻辑这种东西又分为了既定的规则以及你的自创招式。自创招式都来源于各种规则,但是不同的编摆方式会有不同的效果。成功编程的话效率极高,是秒杀型的,但是要制造那个秒杀效果的过程可能非常漫长。

我需要处理的那个报表,准确来说是一套报表,但是用的几乎都是一个版式。虽然看上去几乎一样,但是有可能某些细节上会有不同。如果我用了一个靠谱的逻辑去抓取数据,无论什么微调,对我来说都毫无影响。所以首先我要确定我要在报表里抓取什么东西,我要用什么方式去除掉那些我不需要的东西。如果用Excel表格的思路去理解的话,我肯定是先做一个筛选,然后把我不要的删除掉。如果不要的东西在行那里我还可以用关键词筛选掉,但如果那些东西出现在列那里,难道我要先做一个转制,然后再做删除吗?更郁闷的是那个表格的表头有三行。就一个现成的要达到最终效果的报表而言,三行的表头没有任何问题,但是如果你要把它按照数据层面去理解,这就很逆天。就更加不用说这三行的表头里面还有不少合并单元格,但幸好的是当我把单元格拆分了以后,实际上每个单元格里其实都有靠谱数据的。

我的思路是先把我不要的行删除掉,然后把我不要的列再删除掉。在删除行这个问题上一步我就搞定了,但在删除列这个问题上,我花了好几步,首先是删除没有数据的列,其次是删除含有某些关键词的列,也就是那些虽然有数据,但对我来说也没什么作用的列。把可以删除的东西都删除掉以后,我进行了一个二维表转化为一维表的操作,接下来就是在那个加工完的表里加一列存放表名。之前我说过我要处理的是一组样式差不多的表格。上面说的一大通,我只是说针对一个表我需要这么处理,所以在这之前我要有一个把文件夹里所有工作簿里面包含某些关键词的工作表汇总到一个工作簿里的步骤。我觉得这个合并工作表的耗时挺长,相对于后面的数组操作来说,这实在太费时了。之所以会这么耗费时间,是因为实际上Excel需要把工作簿一个个打开,抓取里面的某个工作表,然后关掉,不断地重复这个步骤,不断地开关工作簿会非常耗时。

如果之前我没有花过很多时间在账本的合并数据上,现在突然要我整这个的话,我肯定得花好几倍甚至十几倍的时间,但因为现在我是站在曾经自己的肩膀上的,所以虽然期间有过纠结,但总的来说还算是比较顺利。我考虑过要不要进行这种操作,但过去几年我都一直没这么干,因为要合并这些数据,一年只做一遍,有没有必要开发这样一个VBA脚本去实现呢?当那个报表被国粮局修改了,我又得重新修改脚本适应。所以之前我就在那里纠结到底有没有必要进行这个脚本的开发。

最终我做了,而且还做到了。

2021-12
3

衔接

By xrspook @ 8:39:34 归类于: 烂日记

有种慵懒什么都不想做的感觉。不知道下周的出差会怎样。因为据说另外一组已经出去回来了,理论上是三天,实际上两天就回来。倒不是因为东西真的很简单,而是因为本来要去4个地方,结果两个地方的资料都已经被纪委收走了,没东西可看,当然也就只能打道回府。一开始我根本没想过这些东西可以这么快就结束,但显然可能我有点高估了,但也有可能快乐是别人的,与我无关。我到底要去哪里?到底要去多少天?到底要去做些什么,我都不知道。

今天我把去年已经领回来的一本关于流通统计的书翻了一遍,发现里面只有几页纸是与我有关的,其它的那些和我都没什么关系,更重要的是,与我有关的那几页纸实际情况又跟我们有差别。所以里面到底有多少东西是可以接收的呢?实际上真没有多少,于是这也带出了另外一个问题,为什么我们现在正在做的那些事,居然没有一本教材可以很确切地说明白要做什么,要怎么做,以及为什么要这么做?

检查了一圈下来,发现大家有各种各样的问题,实际上很多时候是因为大家不理解,为什么要那么干。比如为什么要在账本上分来源和去向,而且如果那里的地方不是一个的话,必须要分开。之所以这样是因为那实际上是跟国粮局的报表对应的。进行采购和销售的时候,就会有一个省外的空格,如果你分不清地方,那该怎么填呢?如果你还要填流向的话,那就不仅仅是省外那么简单,就得分清到底是什么的具体哪个地方。即便不需要精确到某个地市,但是省份这个信息还是必需要的。有些人把生产年份全部都混在一起写了,于是数量就一只有一个,但一个公给通单元里生产年份却有好几个,如果把生产年份这么搞,同样也是国粮局的报表。库存数量分生产年份的几列单元格又可以怎么填呢?其实我个人觉得账本跟报表实际上是一个衔接的过程,理论上账本上的数据应该是由原始凭证那里获得,但实际上。原始凭证上面反映的信息往往不足以支撑账本上的内容,比如说我不可能在每一张原始凭证上都写明产地以及生产年度。但是最终国家要求的报表里面就得有这个东西,所以根据原始凭证生成账本的时候,就得把那些之前没有的信息带入。这就让我产生了一个疑惑,实际上生产年份以及产地这个信息是不是应该跟每一条原始记录完全对应上呢?从数据的聚合来说必须得这样,但是实际操作过程中。好像我根本就没办法要求客户把每一车每一船上面的这些信息都写得如此确切,每一条船还相对好一些,每一辆车,每一个集装箱都这么整的话,肯定会让人崩溃掉。但是崩溃归崩溃,实际上这些东西都是应该具备的。所以说最终我们是不是应该把思路反过来,确定我们最终必定要得到哪些信息,然后从那里反推我们最原始的数据结构至少应该具备哪些信息?

我们经常会觉得自己平时用得很溜的那些东西,在别人让你系统讲述到底该如何操作的时候会一脸懵逼。实际上是因为可能我们一直都没有非常完整地去考虑过,那到底那是怎么回事?如果都遵循着某条规则,我们可以完成所有的操作,当然很理想,但在实际操作过程中,我们又有太多的例外,当例外大于规则的时候,自然我们就会处在一个没办法说清楚自己到底在干什么的状态。

彻底的搞清楚工作的全流程,是一个自我升华的过程。

2021-07
1

月末发牢骚

By xrspook @ 17:26:47 归类于: 烂日记

每到月末我就会莫名紧张,因为要考虑的东西太多了,大部分东西实际上都不是我们的主业,但我们却绝大多数时候都被耗时在那个上面。每天晚上11点甚至12点才结束战斗,才可以结算一天的东西是常态,到了月末,这个时间就要成倍加上去。以至于如果一个月末日是一个工作日,尤其是周一到周四,就意味着估计那天晚上我没有凌晨2点都不能睡觉,因为数据实在太多。或许你会说,为什么我不能提前做一些呢?别说我预测不到,连开单的那些人都不知道自己当天有多少业务,上午跟你说可能没了,但是下午5点之后委托单又排山倒海地过来。开单开到晚上10点,才不管你那天到底能不能做完,反正开完单就拉倒。这种作业模式实在是太疯狂,我可以容忍白天又或者晚上10点之前猛搞,但是到快要睡觉的时候踩一下刹车不行吗?月末的时候稍微不要这么疯狂不行吗?但是对他们来说,周末也好,月末也好,也都只是个数字而已,跟他们无关,他们在车轮作战,我在以一抵百。“以一敌百”个词不是在开玩笑,因为做这个事的就我一个人,但是整条作业线有上百号人。

这种神经病的生活已经持续了两个月,从4月开始就这么疯狂。有段时间,每天晚上12点之前一点点才算是停止了作业又或者说不是停止,是暂停了作业,然后12点之后再继续开工。好长一段时间我根本没法做到12点之前睡觉。当时我感觉非常痛苦,但是长期被这么折磨下来,好像我已经有点习惯了。我试过10点多的时候去睡觉,然后快12点的时候起来,结果发现半睡半醒的脑袋完全不听使唤,根本没办法完成这些精细的工作。所以也就只能一直扛到把工作做完为止。如果这些只是条件反射的事情,我不带脑子也可以做,但显然这些不是。

昨天就是一个月末,我停止了昨天晚上的运动计划,选择了吃完晚饭之后多散步一些时间,然后早点回去洗澡,接着早点回到办公室,准备战斗。之所以这样,除了因为昨天的作业尤其多以外,还因为今天是七一建党节,早上8点活动就开始了,这意味着只要不是现场作业人员全部人都要准时去看电视。8点就开始意味着这估计包含了庄严的升旗仪式。而那个活动估计不持续个4个小时是无论如何不会结束的。这就意味着一整个早上都没了,如果我不在前一天晚上把第2天的事情都干完,只有半天时间,我怎么可能干得完?!

其实那些东西都不复杂,但是很多不复杂的东西堆砌起来就很要命,这是非常耗费时间的,哪怕我收集数据是批量式的,但批量收集完以后,还得逐个核对不同人不同款式的输出。这又回到了一开始说的那个点,数据多不要紧,但是如果你能告诉我什么时候哪些可以分段结束,我也可以提前做,但显然不行,很多东西全部都得堆到最后一刻才有结果,让我非常崩溃!

不知道从什么时候开始,我就成了一个有计划的人,但现在这种作业模式让我的计划根本没办法存在。

我还能扛多久?

2020-11
1

双11启动了

By xrspook @ 21:18:57 归类于: 烂日记

今年的双11到底有多爽?以前的双11,只有在那一天才爽,但今年的双11,11月1日就开始了。10月31日晚上那些人,已经疯狂地买买买。但我是个例外,因为我根本没下定金,也不需要付尾款,虽然我过了12点才睡觉,但没到12点30我就睡着了,之所以那么晚才睡觉,完全是因为工作。

这个月末在周六,所以周六晚上加周日上午,我加的班估计已经超过了一天的正常上班时间。幸好这是一个周六,所以我可以周六晚上做一些,周日早上再做一些。如果是一个普通的工作日,估计那天晚上我必须得12点才能回宿舍了。当然,其实周日早上我做的那些东西也可以缓几天再去做。周六早上我做了一些无用功,因为到晚上我发现数据变化了,数据居然变化了!所以晚上我不得不把东西都改了一遍,有些我改过来只是麻烦我自己,另外一些,我就必须麻烦别人先帮我回退。

经历过一次又一次无聊的周期切换以后,我突然意识到,反正都是复制粘贴,不如我把上一个表格的数据直接粘贴到我自己的工作簿里,下一次粘贴的时候,就不用上一期下一期不断转换,耗费我很多时间了。有可能是因为我用VPN连上单位的网络,然后在系统里切换数据。如果我不是通过VPN连接,而是直接在单位操作,估计会快一点,但如果我把这一期做的表格完全贴在某个工作表里面,然后下一次直接从工作表里贴过去,速度会更快。那个时候我也就不需要纠结转换周期这种麻烦事了,反正都是一键操作。每次都得把表重新填一遍,这个系统怎么能称作是智能系统?!如果只需要我把的Excel上传上去,或许我们可以把这个系统做个资料库。既然只是个资料库,我觉得应该有版本管理功能,但实际上,我觉得这肯定没有。我没办法上传我的表格,却需要一次又一次地,在上面填写新一期的数据。他们填写数据的表格又跟我们被检查、实际应用的表格有区别。这也是我一直以来很鄙视很吐槽的地方,但现实是我无法改变他们,也就只能让我自己的工作尽可能地舒服。我不知道之前为什么我没想到这一招,实际上我早应该这么做了,每次我都是填这一期的时候把上一期的数据复制过来,因为要复制的点又太多了,我还得分几次才搞定。他们明明可以让我在填这一期表格的时候就自动把上一期的数据带入,说是这么说但他们一直没有这么做。

今天我跟我妈开始了双11的吃吃吃节奏。今天我们在荔银肠粉两个人各自吃了两个拉肠和一个粥。吃是能吃下,但是那东西把我们撑了好久。吃得死去活来只花了32.8元,实在太便宜了。简直可以说便宜到时光倒留10年。拉肠这种东西,通常我们都会在华辉搞定,但这一次,荔银肠粉的双11力度也很大。华辉的门店要比丽颖肠粉多很多,平时我跟我妈在外面吃得最多的是华辉拉肠和包道。其它店也会偶尔试试,但不会经常想到要去那里解决吃饭问题。这一次华辉跟包道的价格都很吸引人,就价格来说,平时或许会出现,但现在双11有口碑的秒杀券,所以更便宜。

以前的双11,我想到的通常只是买买买,而这一次,则是吃吃吃,不只是前八个月可以吃,而且是屯下的粮票的有效期通常有一个月。

© 2004 - 2024 我的天 | Theme by xrspook | Power by WordPress