2024-08
16

怎么就null了呢

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

周三的下午做了一个决定,周三的晚上可以说10点半开始,我觉得整个人都崩溃了。过了12点去睡觉的时候,我感觉整个人毫无睡意,躺在床上,翻来覆去,无论如何睡不着。所以刚刚躺下,我就又重新打开了微信,发出了一段的吐槽,但即便这样还是不解恨。接下来,我甚至都不知道自己是几点睡着的。满脑子都是工作上吐槽的东西,我感觉周三的晚上我就没怎么睡着过,但居然小米手环说我也有接近一个半小时的深睡时间。我不知道那个是怎么算出来的,但估计也睡着了一些时候,因为当我再次翻来覆去的时候,脑子里的东西好像少了一些,也变化了一些内容。我感觉周四一整天肯定会非常糟糕,但实际上却没有想象中的那么难。早上起床的时候不太糟糕,白天的时候也不太糟糕。周四要解决20级消消乐,搞到中午1点30才终于结束,午睡的时候好像也是迷迷糊糊,没怎么睡着,但起码脑子不会有那种大脑缺氧集中不了精神,做不了事的感觉。之所以这样啊,大概是因为周四早上吐槽完以后,我又进行了一番PQ的奋战,把最后的那个记账凭证部分也搞出来了。

其实前一天,我已经把另一个部分的记账凭证搞出来了。晚上洗澡又或者说睡觉的时候,我在考虑最后的这部分该怎么操作,所以其实整个思路其实都已经有了,最后就只是如何实施而已。最后的那个部分能实现我想要的效果,但是有一个我想不明白,当我添加某个条件列的时候,为什么在某个条件之下,明明我已经设定了数据,但是当我保存出去刷新的时候却没有数据?那个东西不知道为什么会默认把我设定的数据变成null,于是那里莫名其妙空了。第一次遇到的时候,我觉得是不是我手误,但是当我好几次都遇到,尤其是周四早上已经修正了一次,又遇到的时候我就觉得这大概率不是我的问题。但是为什么其它条件就不会出现这种状况,唯独在损耗这个条件判断上就会出现这种问题呢?但不是每个条件判断损耗的时候都会这样。我当然希望这只是因为我没有保存导致的,但不可能每次都是我没有保存出现这种问题,另外一个我觉得不是我问题的原因是如果条件判断最后出的结果我没有填写的话,那个地方应该是空的,当我发现刷新出来的数据少了一些东西进去看的时候,发现那里填写了null,我不可能在那里填写这种东西。Power Query在这个问题上到底有什么毛病呢?

PQ方案出来了以后我发现几乎没有需要文本合并的部分,所以这个方案完全可以用VBA替代。最大的区别我感觉是再用 PQ的时候,我在添加条件选择的时候会很方便,如果要在VBE里面写一大串的SQL代码,如果要体现回车还挺麻烦,但不会车和退格会造成一些编写和阅读上的困难。如果我是在一个数据库软件里写SQL,而不是在VBA里,以标准格式写SQL,没有这种烦恼,回车退格什么的东西都是很标准化的。但关键是要我在VBE里面写SQL,那个SQL就像变成了纯文本一样。因为在这个转化方案里需要用到大量的条件判断。想清楚那些条件判断,结果就出来了。我在PQ里面进行条件判断编写不需要用自定义模式,直接有一个条件判断的界面,在那里很容易就能实现功能。因为那个界面就像一个多条件的筛选框。以前我从来没试过这样,这一次添加条件列帮了我不少忙。

因为人已经恢复了平静,我也就不想继续吐槽了。

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
8

折腾辣眼睛的老笔记本

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

周三的这一天感觉做了很多事情,感觉做了很多,实际上也做了很多,跟往常不一样的还有口述了很多东西。那些一直以来都习以为常形成了条件反射的事情全部都得说出来。虽然已经尽量说得仔细一些,但肯定难免会出现一些漏掉的情况,因为突发的意外实在太多了。

最耗费我眼睛的是在一台旧的联想笔记本上重装win10系统,以及安装一些必要的软件。那是一台单位的电脑,因为某个同事有需要,且她要长期使用,所以单位没有分她一台新的笔记本,而是给了一台旧的笔记本。之所以知道那是一台有点年头的电脑因为那个电脑的体积就证明了,那是一台老式的联想Thinkpad。开机以后发现用的是win7系统,界面很干净,除了windows以外就只有一个WPS,显然,无论是win7还是WPS,都无法满足办公的需要。我赶紧看了一下电脑的配置,是5系i5,搭配的是8G的内存。就工作来说,这足够了。因为我家那个3系的i3搭配8G的内存也能干活。接下来我赶紧去办公室问能不能把那个电脑格式化重装,得到的回答是可以这么干。那台电脑之所以那么干净,估计之前已经被处理过。这台被处理过的电脑,为什么会存放在那里没有被使用,估计是因为太老了。

光看配置,我并不觉得这台机器有多不堪,但是当我装win10的时候就发现速度真的很感人。那个安装速度跟我家那台i3有得一拼,尤其是当U盘插进去以后,左上角的那个提示符闪了好久才终于弹出了安装win10的界面。那个时候我甚至觉得是不是我的U盘有问题了,但是我那个U盘已经装了好多台机,虽然那些机器都是1、2年前装的,但为什么就在这台机的时候就出状况呢?最后发现U盘没问题,电脑也没问题,只是有点慢而已。因为我的win10安装程序是几年前下回来的,所以win10装上去以后又花了大概一个下午的时间才把更新补全。接下来还要装Microsoft 365。那个东西首先我得申请一个新的outlook账号,然后让单位的人把它绑在家庭版上。当我在新的账号上面,发现365已经捆绑成功以后,我再从那里下载64位365的安装程序。更新补丁很耗时间,下载365也很耗时间,关键是笔记本连的那个WiFi网络下载的峰值速度就只有700KB/s而已。

一开始把win10装好了以后,发现电脑的显示器明暗无法调节,无论我怎么按,明明屏幕上已经显示我按了,但实际上光亮没有任何变化,一直以来那个屏幕都是以最光亮的形式展示在我的眼前,一整个下午的操作,我都觉得很辣眼睛。

傍晚的时候,终于windows的更新算是基本上装完了,Microsoft 365也已经安装完成,我又把MySQL的软件装了一下,接着拿了个查询数据库的Excel文件测试,一切正常。接下来我又关机开机重启了好几遍,几乎每次开机关机都要更新些内容,于是每次开机关机都很慢。慢到让你觉得是机子的性能有问题,但实际上可能是后台在进行着更新的操作。正在使用的过程中,屏幕突然黑了,然后过了很短一段时间,屏幕又亮了,我发现屏幕的亮度降到了最低,那一刹那我感觉挺郁闷,该不是电脑装好了,然后就出状况了吧。当我再去按笔记本电脑的光亮度调节的时候,发现终于可调光亮度了,所以结论就是一开始屏幕最亮光亮度无法调节实际上是因为我重装了win10,但是对应的驱动还没有自动装上去。

当我搞完一切以后,我发现怎么这个屏幕的字体这么大呢?为什么打开一个表格就只能显示很小的一部分呢?结果发现这台电脑果然有些年头,因为它的最大分辨率才1366×768,所以这个大概是什么年代的电脑呢?我2018年买的荣耀MagicBook R5,分辨率已经是1920了,但因为我觉得那个字体太小,所以通常我都是放大到125%看。我感觉这台电脑大概有10年的历史了。

但总算需要我操作的部分,基本上已经完成。看了一个下午的辣眼睛,再看自己的显示器,感觉真舒服。

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其实是能感知其连片区域范围的,但只是在用公式索引的时候没有给用户一个直截了当的方案而已。

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