2024-04
13

二维到一维的种种

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

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

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

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

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

2024-04
12

有理有据地做选择

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

花了大概一天的时间整理出一个用来算库存价值的东西,这里我没有使用VBA,是因为我需要一个更稳的方式。之所以不用VBA,因为已经不需要跨文件加入数据了,所有东西都将在一个文件里解决,而且相对于我得用VBA来干掉的那些,这里的数据相对来说很少,所以这一次我用的是Power Query。我有考虑过要不要用Power Pivot,但最终可能我的数据要以普通表格或者是数据透视表的方式表现出来,通过查询生成的东西最终可能要粘贴到经典的纸质版二维表里,数据透视表在这个情况下就不怎么适合复制粘贴,尤其是当我的数据透视表选项里有合并居中的设定。

在这个做这个的过程中,我有考虑过用Excel自带的公式,但无论是经典的lookup还是新函数xlookup效率都太低了,我不知道是我的电脑太渣,还是的确就那么回事。如果用PQ,在一个低端的Excel里,的确可能效果是很糟糕的,但如果我已经把刷新好的数据发给别人,别人即便刷新不出来,数据也都能看到,不影响,但如果用的是高级的公式,可能那里就一团糟了。还记得多年以前,单位有异地储备玉米,对方把到达码头和已经装船发货地数据发给我,用了sumifs,那个时候我用的office是2003的,那个公式我根本没办法使用,全部显示的都是一团糟,所以我不得不为了打开那个文件看到里面的数据又在电脑上装了个WPS。那次之后,我才努力的尝试用office 2016,之所以会跳过2013,是因为2013在数据透视表方面有无可救药的bug。如果是office 2010,高级公式依然打不开,所以现在当我要实现某个功能的时候,我要考虑什么东西会高效一点,什么东西兼容性好一点。VBA的兼容性很好,但是不是人人都敢打开宏文件。因为在以前,宏文件通常都意味着有木马之类的东西。同时,我设定了宏万一某些时候有问题,别人就会只会弹出错误,的不到结果,也会让人很紧张。

这一次我做的文件,可能后面见到的人会很多,他们可能会用不同的电脑,可能是win10,也可能是win11,有可能是office 2021、2019,又或者是Microsoft 365,也有可能是WPS,到底的WPS里面能不能正常打开并使用PQ我不知道,我估计是不行的,但是能不能看到数据呢?我觉得应该可以,但是无法通过修改某些条件刷新出新的东西。

微软的AI据说很厉害,但关键是在中国和俄罗斯用不了,所以那些都是扯淡。前段时间说Excel通过安装插件可以使用Python,但是那个Python处理是需要把数据送到远端的服务器再传送回来的,我感觉最终会跟微软AI的命运差不多。现在的Power Query相对于我第一次在office 2016里看到的那个已经成熟了很多。还记得我是第一次在自己的笔记本电脑 office 2016家庭版里见到的PQ,那个时候那就是个四不像,中文英文各有一点,翻译都不全。有些功能也不知道是我用得不对还是怎么样,反正就会卡住。对照一些经典案例,的确能得到某些结果,但是我却一直都没有经常使用,因为真的不是每个office都兼容那个东西,而且不同版本的office看到的结果和刷新到的效率可能相差很远。

要解决同样的问题,到底用什么样的工具?当我手上的工具只有唯一的时候,就只能选那个,但是当我可以做选择的时候,我会考虑数据大小、运行速度,以及不同windows和不同office下的兼容性。

2024-04
11

全部乱套了

By xrspook @ 10:01:56 归类于: 烂日记

周二的晚上很晚才回宿舍,回到宿舍的时候离12点大概只剩下10分钟而已了,之所以搞得那么晚。其中一个很重要的原因是那天下班后花了差不多三个小时去聊某些问题。通常情况下,我会在5点多快6点的时候开始跑步,但实际上周二晚上开始跑步的时候,已经接近8点30了。那个时候开才开始,我有考虑过是不是应该开始是应该用健身房的跑步机,还是跟往常一样,去那个定点的户外场所。最后我选择的是到户外。让我感到很意外的是,隔壁粮库的塔吊居然很亮,把路都照清了,起码我能看到路上面有没有小动物,而且跑步的半个小时里,我没有遇到一个路人甲,也没有一遇到一辆停在那里的汽车开走。平时这事一定不会发生,但因为实在太晚了,散步的人已经结束了,出去打球的人还没回来,其他的已经回家了。

还在聊天的时候,我已经感觉到了强烈的饥饿感,所以在开始跑步前,我是饿的,但跑着跑着,彻底就没感觉了。完了以后大概是9点多一点回到办公室,匆匆地吃了一个白象的速食米粉,因为如果像平时那样,还得自己煮面的话费的时间就太长了。吃米粉的时候我也没有闲着,眼睛一直在盯着电脑屏幕想着某些问题,所以我也不知道自己是怎么把这个米粉吃完的,感觉吃的那个过程很快,我根本没有品尝出那到底是什么味道,囫囵吞枣就干下去了,跟第一次吃的时候效果完全不一样。接下来我没有走,依然在办公室处理单位的那些东西,快10点的时候,我写了一个VBA,用来查询某些数量和价格。虽然感觉很快,但是还是花了接近一个小时。虽然实所有技术都已经完全到位了,但是一段时间不用还是会有点生疏,还有就是需要反复测试。VBA结束以后,我就一直在等待中控报出数据,但是他们却一直都不报。晚上10点40就结束了,感觉应该在11点左右他们就可以把数据搞出来,但结果超过11点20还没有,我就忍不住上去催,催了一遍又一遍,终于他们在差不多11点30的时候把数据报出来了。原因跟往常很类似,说白了就是忘记了。

很晚才回到宿舍,洗完衣服快一点,上床之后,无论如何睡不着,脑子里思绪简直可以说是万马奔腾。有些想说但没说的话不断在脑子里蹦出来,根本不受控制,当我终于有点控制住不想那些的时候,另外一些数据处理方面的东西又不断地涌现,以至于让我觉得光是在那里想就好像已经能实现我必须用电脑才能验证出来的东西。通常情况下,我不是一个会失眠的人,但是周二的晚上我感觉自己从上床到真的入睡可能花了一个小时甚至一个半小时,这对我来说非常不正常,但是我却完全控制不住,之所以这样是因为运动的时间太晚了,之后我还进行了不少需要脑力的东西,所以脑子已经飞起来了,完全停不下来。

但幸好第二天早上醒来的时候,感觉也不算十分糟糕。周三我终于下定决心,要跟某个同事进行谈话。可能这个事情很早以前就应该做了,但我一直在拖,又或者是我一直在尽量用其它方式代替。但是我知道,我憋下去我会疯掉,我会继续失眠,我会继续胡思乱想,要结束这一切,只有直接迎上去。

2024-04
10

干掉四个脚

By xrspook @ 8:20:54 归类于: 烂日记

清明节假期的时候,遇到一些工作上很不爽的事情,我几乎要跟我妈吐槽了,但结果还是忍住。虽然我跟我妈在清明节假期的第一天有不少时间在路上,我有非常多机会和她吐槽,但我还是忍住了。我没有跟我妈吐槽,没有找朋友吐槽,没有找同事吐槽,同样也没有找同学吐槽。那些东西憋在心里,说不准什么时候就会有一些负面的情绪涌上心头。在我跟我妈独处的时候,一次又一次地,我把那种感觉压了下去,方法就是直接不去想,想别的东西或者直接把注意力放在听我妈吐槽她的生活上面。

今年去铭恩园给爷爷奶奶扫墓的时候,去之前我已经料想到要带个胶水过去,但是什么胶水能把木头粘住呢?不知道。白乳胶是肯定可以的,但我手边没有,我手边的胶水就只有不知道有没有全部干掉的硅橡胶和粘鞋用的那些胶水。粘鞋用的那些胶,无论是硬的塑料还是软的塑料都可以粘得住,但木头可以吗?爷爷奶奶的骨灰盒是木头的,下面有4个像中国象棋那种形状的扁圆支撑脚,前年的时候掉了一个。今年把骨灰盒拿出来的时候,我爸看到又掉了一个。掉了一个的时候,我不确定那个胶水能不能粘上,掉两个的时候,而且是对角掉了的时候,我简直不知道该怎么办了。其实一开始的时候我想到的办法不是用胶水把木头粘回去,而是直接把其它的那些支撑脚也掰掉,但这样爸爸会不会不高兴?所以今年在祭拜的时候,因为那个骨灰盒少了两个支撑脚,所以也就只能在其中一个地方用一个盒子的盖子支撑着,让那东西稍微稳住。把骨灰盒拿回去之前,我妈就提议,既然都掉了两个脚,不如把另外两个也掰掉,我爸没有立即作出反应,他先是试了一下,然后说,你不想它掉他就掉,你想它掉的就掰不下来。最直接的办法就是全部掰掉,而且肯定会有掰出来的方法。骨灰盒已经掉出来的两个脚看上去是用胶水粘的,不是用钉子钉的,所以肯定有卸下来的方法。我爸用的是硬扯,但是我用的方法是旋转。第三个支撑脚我几乎没怎么费劲,就把它旋了出来,并不是因为那个东西是旋转安装上去的,只是因为我知道胶水很难应对这种旋转的力。从垂直的角度可能你难以把它分离,但是你用一个扭力,你就可以把它分开。最后一个支撑脚,稍微有点难度,但也不过是几秒之内的事情而已。最终骨灰盒的四个支撑脚都没有了。这样保证了骨灰盒一定是平稳放置,但是坏处也显而易见。因为把骨灰盒还回去的时候,工作人员要求我们要把骨灰盒打开,看一下里面有没有什么不合适的东西,当我们把骨灰盒推开的时候,一股霉味冲鼻而来。可想而知,那个完全木质的骨灰盒,如果没有了四个支撑脚,无法把骨灰盒架起来,那么骨灰盒的底部的霉变将更加严重,甚至说不准哪一年当我们把骨灰盒拿出来的时候,骨灰就从下面掉出来了,因为骨灰盒的底部完全霉掉,但是话要说回来,如果真的到了那一天,得是多少年以后的事?大概当我爸爸不在了以后,我会把爸爸跟爷爷奶奶的骨灰用其他方式处理掉。

祭祖是一种很好的传统,但是不是必须得用保留骨灰这种方式?

2024-04
9

犯下各种错误

By xrspook @ 10:13:24 归类于: 烂日记

感觉近期我经常会犯一些这样那样的错误,有一些错误是系统性的,比如公式设置不当,这种错误修改起来很简单,但是一旦追溯,可能涉及的东西会很多。这种错误一般很难被发现,因为那些固定的公式一直以来都是那么用的,你知道那是公式,所以你不会动,但关键是某些情况发生了变化,那些位置是需要做变动的,如果这个时候没去改,系统错误就会一直延续下去。设定公式的时候,我肯定是经过多方考虑经过各种测试,之所以那个公式会使用,肯定也意味着好长一段时间我也是这般做下来没有问题。有些时候公式可能会让某些情况自动的被剔除在外,这个我是可以预测的。所以在那个时候,我就得手动验证一下公式是否合理。理论上这种事情我需要在情况发生变化的时候验证,但万一在那个时候我没有做验证呢?上个月发现的某个系统公式错误延续了我好几年的数据。虽然那个数据看上去刺眼,但实际上不影响我其它地方的数据使用,所以一直没有被发现。表格最终在报出来之前,我都经过多方验证,但是偏偏那个公式不到位的地方从来都不是我验证的范围。那次错误以后,我修正了某些公式,让那个之前从来不被我关注的地方也纳入验证。

另外一些让我出错的地方是某些数据要体现出来,但是跟前后左右都毫无关联。如果你光看纸质的表格,你会觉得出那样的错误是根本说不过去,因为不符合那里的勾稽关系,但实际上,如果看过电子表格的话会发现原来那里我没有做任何的勾稽关系,为什么那个地方会被排除在外呢?因为在出错之前,那个地方无法用公式实现。因为那个东西跟其它数据完全没有交互。如果按照以前一贯的做法,即便没有交互那个数据也不会出错,因为把月末数直接复制粘贴到期初库存那里就可以,但偏偏出错的那一次就在于那个数不知道为什么被我例外处理了。之所以会出现这个例外,是因为除了那个数以外,我都使用等于的关系来处理那一列的其它数据,理论上那个期初库存也可以用等于的公式直接取数过去,但我的公式没有覆盖到那里。所以为什么我在复制粘贴的时候没有发现这个问题呢?还有就是为什么当我做核对,当我把纸质版打印出来,再三校验的时候也没有发现这个问题呢?发现这些问题都是我自己,不是其他人告诉我出错了。被动地等待别人帮我找出问题,显然这是不可能的。

近期之所以会出现这种瑕疵,一定程度上跟我的某个心态有一点波动有关。理论上,处理数据的时候,我的注意力应该高度集中,但有些时候突然间就会冒出这么松懈的念头,为什么会这样呢?以前我从来不会这样。虽然我也明白,以前不出错,不意味着以后也没有问题。虽然主观上我已经很努力地使用各种方式避免错误的发生,但是客观上还是有一些瑕疵不定时冒出来。人无完人,但我觉得犯下这些低级错误会让我良心过意不去,虽然我也没什么好后悔的。

要彻底避免这个问题,我得挖出自己确切的病根。

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