2024-08
19

错误的时间错误的地点

By xrspook @ 9:50:34 归类于: 烂日记

星期天的晚上,跟往常一样,吃过晚饭我就回单位了。跟平时有区别的地方在于在我即将出门的时候开始下雨,天气预报说雨还会下得不小,但实际上我的运气还不是太糟糕,起码一路上虽然有下雨,但不算很大。下雨好像没有影响20路车来得非常不准时,虽然跟平时相比晚了几分钟,过猎德大桥的时候车速缓慢,估计在桥上等了好几个灯才终于通过,但起码下了猎得大桥以后那个红绿灯没有等太久。搭上地铁的时候大概是18点,所以出了地铁之后,我还可以悠闲地先上个厕所,然后再去转618。

当我去黄埔新港公交站坐618的时候,出现了个屌丝情况。那段路不知道为什么,反正就是被围蔽了起来,不知道到底要干些什么,如果要干这种事,起码要把公交站牌挪到围蔽外面,还有一个是起码地铁站的另外一头围蔽之外的地方,得留个口,给人走出去,但实际上没有任何指示。

到上面为止,一切情况,虽然有些意外,但还不算太糟糕。当我坐上了618,车开动了以后,我接到了个电话。跟我说起了上周五上午要我提供的某些数据。那是巡视组要求的数据,在我印象之中,那个数据的提交时间应该是周日的晚上18点还是20点,我接到那个电话的时候已经是周日晚上接近19点。首先是一个省储跟商品粮的数据,很容易就能说得清到底该怎么分开,但另外一个中转代储的数据,是一个扯半天都扯不清的问题,从合同上来说,没有一个数据应该属于代储,但实际上我们的人又总是默认那是代储。所以那个表应该填写什么数据上去呢?填表的时候没有任何的说明。填表的那些数据都是汇总数据,明细数据都有,但是要以什么方式汇总,是不是所有数据都得体现在上面?这是一个很诡异的表。我周五中午就得走,周五上午接近11点半的时候,那个表才出现在我眼前。我以我理解的方式把表也填完了,但以防万一我也把明细表发给了单位同事,以防他们有什么特殊要求,还能从那个表里面获取数据,重新填写。这种事情我是有准备的,但关键是在周日晚上19点之前,没有任何一个人找过我。电话打过来的时候,我就觉得隐隐不妥,因为对方问我在家里还是在单位,然后我回答说是我在回单位的路上,这就意味着,可能对方是要我提供某些数据,但关键是我这样一个状态意味着这很难实现。即便我在路上,我依然能找到原始数据,支撑她填写那个表,但关键是你要我得出明细数据的汇总数据,我实在没办法。先是一个人找我,然后第二个人也找我,你叫我怎么更新那个数据呢?我在路上一点办法都没有,没有电脑,我的手上只有一台手机,我尝试过用手机进行数据的汇总。但关键是Microsoft 365更新了以后,我一直没打开,没有登录,密码我不记得,我得去浏览器里找一下,但显然我手机的浏览器也不会保存我的密码,所以要登录Microsoft 365是不可能的,登录不了也就意味着那个文件打不开。小米手机默认的Excel文件打开方式是小米的文件管理,那个东西只能筛选,只能查看,如果要得到汇总数,就得使用编辑功能,编辑功能需要下载完整的WPS。我也不知道我到底进行了什么设置,反正在流量的情况之下我是没办法完成APP下载的,所以这意味着我即便手机上已经得到了明细数据,但我依然没办法把它汇总出来。

时间很紧迫,正常情况之下,20点之前我能回到单位,但是下雨的情况真的很难说,所以我也就只能让两个有明细数据的人得出一个结果,然后对碰出大概就是那个数了。

人算不如天算,到达滨江左岸的时候,是19点32,但我要等的那台611据说还有19分钟才到,结果是在接近20点的时候,611才到达滨江左岸。当我回到单位打开电脑,已经接近20点20了。

这么焦虑的事情到底是如何造成的呢?星期五上午就已经报出的数,我们单位是什么时候把那个交给上级单位的的呢?上级单位又是什么时候才发现数据不对劲?所有的这些东西,直到他们最终把数据提交前的一个小时才找到提供数据的那个人。这样的工作方式,实在让我觉得不可思议。另外一个问题是,虽然我手机可以打开Excel文件,但关键是那个APP能不能脱机使用?能不能在关键的时候用起来?这是我之前一直没有留意过的,因为绝大多数情况之下,别人都只是要我提供文件,而不需要我在手机上做核对,毕竟如果我把文件给他了,数据他自己搞就可以。

这是工作上的事,但完全发生在错误的时间错误的地点。

2024-08
15

有天赋?

By xrspook @ 8:42:44 归类于: 烂日记

有时候我也搞不懂自己是不是真的有编程的天赋,还是说不知道为什么我对这方面会特别感兴趣。之所以这样,我觉得一定程度上跟我过往的经历有关。我不讨厌数学,但因为自己的计算能力有问题,经常会因为这样那样的原因出错,所以越往上学,我的成绩就越会出现提不上去。知道那个思路,但是却算不出那个答案。这种情况在某些只需要答案不需要过程的考试里面就很吃亏。即便需要计算过程,但如果我在第一个部分就算错了,后面也就没有什么意义了,因为根本算不下去。

编程好像一定程度上弥补了我的计算失误。因为计算结果是由机器完成的,而我只需要提供思路。在简单的问题上,那种百发百中的感觉真好。不过当问题遇到的越来越多,思路不是一下子就能畅通,我需要碰过很多壁以后才能出结果我会觉得刺激。在考虑很多因素的时候,总是有这样那样的不到位。有些步骤可以做在前面,也可以坐在后面,但是哪个会更优呢?最终都能得到同样的结果,那个时候我就得用机器的方式去考虑,怎么样才能最大程度节省资源,提高运算速度。

如果说写脚本的话,高中的时候我已经在干,那个时候是写网站,现在写CSS,然后是 HTML,再到后来当我接触WordPress以后是PHP。一开始用的CSS 那个时候就完全只是控制网站的部分格式而已。CSS可以控制很多东西,但是核心的部件是没办法修改的,有些控制封装在核心部件里,于是自定义CSS无法到达,那个时候我感觉到有一点点的无力。相对而言,WordPress控制方面可以说只有你想不到没有做不到。哪怕有些部分可能CSS真的无能,但实际上当你得知那个控制手段以后,你还可以配合其它的脚本实现某些格式的自定义。

最终让我觉得自己的编程技术总算是用到了点子上是近几年Python,Power Qurey和Power Pivot以及VBA的使用。这几个东西是从Excel的数据处理开始的。我基础的东西都齐全了,但是我怎么才能快捷获取某个成品的结果呢?我知道那个事情该怎么干。但是天天都干,又或者是在很短的时间内要我干那个事情,首先是觉得很烦,其次是非常容易出错,于是这让我想到为什么我不能用编程的手段把它们高度的结合起来。要用什么编程语言?其实一直我都在摸索。用过了一段时间,大家都尝试过了以后,我觉得大部分情况下,无论哪个语言,都能获得类似的结果,但复杂程度不一样,在不同设备上的运行速度不一样,需要的设备基础也不一样。我要用什么编程实现那个结果,我就得考虑这些东西。我是不是经常要用,是不是我一个人用,是不是我还得给别人用。最终我觉得稳定性首先必须保证,最终那个结果也是,必须得以某个我要求的方式输出的,第三点就是看看我的第一感觉是哪个编程软件。

可能某一天,某些软件用不了了,我只能用其它方法去替代,虽然这很麻烦,但是我也相信,我有能力可以做出替代,但我希望不需要有那么一天。

2024-08
11

很简单的问题其实不简单

By xrspook @ 8:46:32 归类于: 烂日记

如果人到中年,仍然是一副高高在上,觉得不对的东西这一定是别人做得不好,是非常可悲的一件事,因为这会显示出那个中年人的无知。当我准备这个开头的时候,其实我也在反思自己,我自己有没有干这种事情呢?很多时候,其实我内心深处我是有干这种事的,但绝大多数情况之下,我都没有说出口。

比如在处理某些Excel的数据问题上,你可以用数据透视表,你也用可以用公式。最重要的是只能得到一样的结果,我为什么要用数据透视表呢?又或者我为什么非得用公式呢?我是一个数据透视表的狂热分子,如果能用数据透视,我绝对不会用公式,但有些时候看到某些数据,我的第一反应也是用公式。因为第一感觉还没想到数据透视表要怎么实现这个东西,又或者那不是能很直观就能实现的玩意。对同一组数据进行不同维度的汇总,我会毫不犹豫地选择数据透视表。一个数据透视表搞出来以后,复制粘贴成N个,然后把里面的内容换成你想汇总的条件,结果就出来了。明细一定是统一的,汇总的结果也一定是一致的,完全不需要怀疑。如果某些东西出了状况,只能说明明细数据那里有点瑕疵。那个瑕疵会带到每一个复制出来的数据透视表里,所以一旦更新明细,所有汇总也都可以在一个全部刷新之后得到正确答案。如果用公式呢?作为高级的Excel的公式,条件汇总一点都没有问题,可以单条件可以,多条件混搭来使用,但是对一般的人来说,其实除了汇总的条件以外,筛选的字段其实也是一个难点。除非你非常肯定那个筛选的字段只有ABC,而不会出现D。否则的话,筛选字段不全,最终汇总的结果几乎可以这么说,不会跟明细表的实际合计数一致。当然如果要保证筛选条件齐全且唯一,也是有公式可以实现的而且那个是高端的动态公式unique。会条件汇总的人到底知不知道有这个动态公式的存在呢?这要求了使用者了解自己的数据,也要了解自己使用的Excel,了解Excel以前的公式和最新的公式,以及自己所使用的那个软件是否支持这些公式,当然这还包括如果这个文件还要给别人看,别人的电脑的Excel到底能不能支持显示这些内容。要一个普通人考虑那么多的问题,显然就有点难了。

一个求职者,在自己的简历上写着熟悉办公软件使用,但他到底有没有这个能力,我感觉这起码能把80%的人刷下来,之所以我没有说的那么彻底,因为还是会有一些奇迹存在。在我所在的单位,在新招回来的应届毕业生之中能考虑到那么多东西的人凤毛麟角。10多年前我大学毕业的时候,我也不懂这些,那时候我也不懂数据透视表。一个工科生的大学本科课程里涉及的计算机内容不会有这么具体的实际问题。多年以前,但我考职称计算机的时候,那里面对Excel有操作的要求,也没有这些内容。这个操作对一个需要在办公的时候处理这些数据的人来说,是必备的技能。所以无论你是大专毕业,本科毕业,硕士毕业还是博士毕业,光靠学校规定教学内容的那些课程,没办法直接帮助你解决这些实际问题。但读了那么多的书,难道就没用了吗?显然不是。我觉得高等教育最重要的是教会一个人如何学习,准确来说是如何自学,当遇到一个问题的时候,得学会拆解,知道我想要的是什么?我怎么才能实现?但是现在的大家,又是否真的能做到这一点呢?不管那个问题是不是跟你之前学的那些对口的。面对不对口的问题,更能考验学习能力。

我的学历不太高,我也比较粗心大意,但在学习新问题上,我一直都是比较好奇兴奋的,某些纯粹为了应试考证的问题除外。

2024-08
7

xlookup+超级表实现动态引用

By xrspook @ 11:38:23 归类于: 烂日记

谈Excel,索引肯定是离不开的话题。从经典的lookup到用得很多的vlookup,到index+match,再到vlookup的升级版xlookup,所有的这些都是为了让搜索更方便。xlookup相对vlookup来说的确已经进步了不少,但无论是这些搜索的函数也好,其它按条件汇总的函数也好,总是有一些支持选择列,有一些不支持。之所以有支持和不支持之分,其中一个很重要的原因是支持选择列对写公式的那个人来说很方便,但关键是选择列可能严重影响搜索的性能。感觉上明明很简单的东西却要加载很长一段时间才能出结果,那个加载时间,甚至让你觉得是不可接受的慢,所以在使用这些索引函数的时候,绝大多数的教程都会提醒你数据源得用绝对引用。引用一个确切的范围,即便你把那个范围搞得很宽也行,但是引用一些空白行,又会导致一些意想不到的事情发生,尤其是对某些经典函数来说就会出错。当然,出现这种问题可能是因为我道行不够,如果是高手操作,什么问题都不是问题。

为什么搜索出来的结果可以动态显示,可以显示多行,但是被搜索的内容必须得用绝对引用呢?为什么教程里除了整列选择就没有一些动态确定索引范围的方式呢?隐隐之中我觉得新出现的公式应该可以做到,因为新出的那些高级函数出来的结果都是很动态的。虽然实际上近几年我已经很少关注学习那些新出的东西了,但是我还是有那么一点印象的。

在超级表里面使用公式,引用的单元格不再是经典的单元格名字,而是超级表的列名,前提是你用的那种公式不涉及跨行,如果跨行了,我好像没发现超级表能有什么超级功能,但是如果用超级表的偏移定位函数,的确能实现到达上下行。

xlookup是个比较新的函数,所以它能不能把索引的范围定为超级表的某一列呢?我发现的确是可以这么干的。如果有两个超级表,我要用超级表A作为索引,超级表B的某些数据作为查询条件。那么我在写xlookup公式的时候,我就可以完全用超级表的快捷引用方式。暂时我只尝试过一些比较简单的数据,出来的效果非常好,比我整列引用速度快很多。虽然xlookup是支持整列引用的,但那样的话很慢,而之所以很慢,我估计一个很重要的因素是xlookup只在高级的Excel里面使用,而高级的Excel文件又比低级的Excel文件行数多很多。其实我一直搞不懂为什么同样是Excel的公式,有些函数可以整列引用,有些却不行。有些虽然可以整列引用,但实际上效率不高。用同样的公式,一个引用的是超级表,一个引用的是整列,同样是xlookup,出来的结果就很有差别。如果你在超级表B更新了数据要索引超级表A的内容。引用整列的那个在你把数据粘贴到超级表B的时候,就已经会把你卡得痛不欲生。也正是因为有这种痛不欲生,所以以前当我要引用很多数据的时候,我选择的是用Power Query做一个后台匹配。因为如果用前台做这种整列的索引,整个文件哪怕不是互相影响的那些表,也会变得奇慢无比。在这里我巧妙的地方是利用了超级表的动态性。以前,如果要动态应用可能会增减数据表格内容的时候,好像需要套用offset。

当我要指定某片数据区域的时候,Excel其实是能感知其连片区域范围的,但只是在用公式索引的时候没有给用户一个直截了当的方案而已。

2024-05
18

完成修正方案

By xrspook @ 9:50:33 归类于: 烂日记

周四下午,在接近下班之前打了个电话,知道了某个表格要怎么填写以后,我就开始修正自己的VBA方案。与其说是修正VBA方案,不如说是把VBA的方案更进一步,在那个方案上面增加内容。其实最需要增加的就只是一个仓号的拼接。要获取那个数据我有非常成熟的方案,因为去年夏天已经研究得足够透彻。虽然这样,但实际上实施起来的时候还是花了一点时间,尤其是要在VBA里把SQL的数据输出到数组,然后经过几番折腾以后,再输出到单元格。如果要我用Power Query实现这个功能,根本不用费脑子,马上就能实现,但是既然我那个 Excel用的是VBA,我也就懒得混合使用了。原来的内容没有改变,增加了两个数据项目,一个是仓号合并,另外的一个是单仓变化的的二维展示。二维展示实际上也是有一套成熟方案的,也是去年夏天,我已经把最困难的部分全部都研究透了,所以现在只是把那套方案里面的东西有选择性地挑选使用。

VBA方案实现了以后,我又在另外一个Power Query方案增加输出我需要的数据,然后我就没有继续干下去了,因为我不知道如果我要更进一步大范围改动之前的PQ方案的时候,我得花多少时间。当我觉得我必须得暂停结束的时候,已经是晚上接近9点。需要大改动的PQ方案,我需要实现一个累加计算。那个东西我是用来计算库存的。首先我会获得一个期初库存,然后得到一些每日的变化数,然后按照日期排序的方式,把它们累加起来。这是最关键的步骤。在VBA里面,如果要通过SQL的方式实现这个比较麻烦,但实际上在经典的SQL里有比较直接的解决方案,但是VBA的SQL没办法做到。PQ肯定有自己的方法实现这种累加,但是也没有非常直接的方案,也是通过多层套叠的方式试实现。就逻辑来说,实际上操作的步骤跟在VBA里的实现没差多少。回到宿舍以后,当我运动完毕,在洗澡之前,我稍微在微信上搜索了一下PQ的累加计算解决方案,结果发现是有的。看了一下代码以后,我觉得那是完全可行的,所以基本上我就确定这肯定没问题。打通了最后一个累加计算的问题,我确定只要我把需要的数据都准备到位,我就能得到我最终想要的表达效果。对一般人来说,在每天都有多个变化数的前前提下,每天都计算采购成本,简直是无尽的噩梦,但是其实只要理清思路,搞清楚到底是怎么个来龙去脉以后把这些步骤固化下来。只要把每天的数据都整理清楚,自然而然就能自动得到每天的采购成本。数据是出来了,花了九牛二虎之力,但我依然要问,为什么要逼着我们提供这些数据呢?因为实际上对绝大多数人而言,没办法纠结到这个程度,但即便我纠结到了这个程度,得出来的数据还是会有那么一点误差,虽然那些误差可能你根本看不到。

花了不到一天的时间,就重新整理出VBA跟PQ,我感觉成就感满满。

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