2020-04
26

令人兴奋的Excel新函数filter

By xrspook @ 9:17:59 归类于: 烂日记

大概2020-04-22就听说Office 365要变成Microsoft 365,但我Win 7上的Office 365貌似没有什么变化。之前更新了个版本,牛逼的filter函数有了!有了filter以后高级筛选那些复杂的东西根本无需存在。如果只是为了筛选明细,filter很完美了。我觉得这个应该是数据库的函数,但现在也直接在公式层面实现了,牛逼!filter能做高级筛选,但如果我要的是筛选后数据的汇总,我个人感觉还是数据透视表好一点。其实数据透视表也能做明细的筛选,但要实现那个,之前你得先给明细数据增加一个唯一的序列号。从接触Excel开始我就认识高级筛选,但显然除了是老师要求必须得那么干,我平时是不会用到的。我会对多个条件进行筛选,但那都只是单条件筛选的叠加,这个做法在实际工作中更常用。有了filter函数后,筛选又可以玩出新花样了,实在让人很兴奋。不过兴奋归兴奋,filter是Offcie 365的新函数,Office 2019有没有都是个问题,反正Offcie 2016是无论如何都没有的了。之前我还担心了半天Win 7下的Offcie 365会不会给我增加,因为自从微软停止支持Win 7以后,Win 7上的Offcie 365只会进行安全更新。如果是系统性能不支持,新功能更新不上去也就算了,但如果系统是支持的,只是因为微软要强迫你放弃Win 7,放弃老电脑,必须得买他们的新硬件、新软件,这样就太霸道了不是吗!filter这个函数能在Win 7的Offcie 365上使用,一定程度上我觉得是运气。我能使用,但如果我把文件发给别人,他们没有这个高级别的Offcie,还是会撞板。从前我觉得Offcie版本的不同对我来说绝大多数时候都只是版式上的改变,其实功能还是大都不变,所以我才会一直使用Offce 2003直到Offcie 365(当时对应的是Offcie 2016)。之前我之所以没有欲求,是因为新版本Offcie有什么我不知道,我不知道都增加了什么,怎么会对那些内容感兴趣呢?!

人知道得多了,就会有种冲动想知道得更多。这种与生俱来的冲动我都说不上到底算不算是递归。

过去的4月,已经有3拨审计的过来(前3拨,只完成了1拨),明天还会有第4拨。我不紧张,顶多是把纸质材料从已经归档的盒子里拿出来,排一下序,电子版也从已归档的地方拷贝出来整理一下。该干的我从前都已经做完了,没有可慌的。我的同事也不觉得他们有什么可慌,但检查过程中,他们的流程漏洞百出,为什么他们应该做的事都没做?为什么这般整居然没人知道?没人觉得不妥?没人要求他们必须改?懒惰得有个限度,当懒惰到达连最基本的逻辑都无法保证,这就太说不过去了!

我一直在严防死守,但原来别人不是……

2019-12
14

R语言,我们做朋友吧

By xrspook @ 21:11:49 归类于: 烂日记

R语言这个东西貌似我已经连续纠结了两个星期,但准确来说我只是纠结了两个周五,再准确一点,应该是纠结了两个周五的半天,因为我大概都是从中午吃完饭开始折腾的。到昨天为止,经过不懈的努力,貌似最终我已经做出了自己想要的效果。理论上,这本来应该是比较简单的事情,但是现实总是不如我想象中的那样。比如说R语言把我觉得那些日期的东西他们只认为是文本,所以没办法对那个进行自动排序,于是我也就只能把那些日期用数字表达出来,然后我再用替换的方式把数据换成我想要的文本,这样做挺折腾。上个星期我折腾我的还有输出绘图框的大小。理论上,作为一个可视化的软件,那个东西应该可以在系统的某些地方修改,但因为那个软件是开源的,而且自主操控性也很强,所以在系统的可选界面没有那个选项,于是上个星期我也就只能很傻地在显示器上边框做记号,大概记录我那个绘图框的大小。因为最终绘图框得出来的图,我要把它粘到Word文档里的。或许你会说我不应该这么直接粘,而应该把R语言绘制出来的图输出成图片,然后再往Word里粘,但我觉得貌似那样做的话图片质量会更差,还不如我直接把图片在R语言里粘过去,但要保证每张图片的大小都一样的话,实在让我很烦恼。即便我在显示器的边框上已经做好标记,但最终出来的东西还是不能保证完全一致。昨天,我终于征服了这个东西。如果我用的是R语言基本的绘图功能,控制那个东西的是另外一个选项,但因为我的图用到的是lattice包,所以我就必须采用lattice包适用的方式。能控制输出绘图框的大小,已经让我解脱了一大半。

之前,我绘图所用的数据,都是我经过了各种精简筛选保存下来的csv文件,因为如果直接导入Excel文件会很麻烦,所以我宁愿在Excel里另存csv文件。我要作图的数据其实都在一个大表里,但是我却要作好几个图,那些图需要对不同范围内的数据进行合并对比。我也非常清楚R语言在增加或者剔除数据方面有他的方法,学会这一招,我就不需要保存N个csv文件,我只需要保存一个,然后再一层一层地往下筛选。在Excel里进行数据筛选,你就只需要在下拉框里选择,而在R语言里,你需要编程。对新手来说的确挺麻烦,但我觉得只要熟练了,一切都好。昨天晚上我追我征服的是修改绘图区域的空白边距。因为我输出的绘图框较小,而R语言默认的空白边距在那个小图里就显得很大。一开始我想到的是自行修改lattice包里面的默认选项,但后来我选择的是拷贝一个别人写的自定义函数,引用那个函数就把可以去掉的空白全部干掉了。因为去掉了多余的空白,所以我图片的尺寸可以更小,但是实际上里面的内容更大。

R语言非常强大,我觉得这个东西不是为应付工作的人准备的,因为没有一定的折腾信仰,这根本玩不过来。但我觉得,这个东西很符合我的口味,因为的那里的奇迹是通过编程出来的,在处理数据方面效率非常高。如果我用同样的数据在Excel里面作图,即便我用的已经是最新的版本,但依然会卡机。R语言的神奇控制只有你想不到,没有你做不到,只要你能力超强,天马行空无所不能,我就喜欢这种自由。

2019-05
6

潜心写代码

By xrspook @ 17:41:34 归类于: 烂日记

昨晚我本可以很闲,留出一大堆时间来做运动,但实际上我却耗在了办公室,坐在电脑前写Excel VBA代码。我也搞不懂这种选择对我来说到底是因为我懒不想动,还是因为我觉得在检查过后或者之前我总是很有冲动做这些需要思考的事比如说写代码。这种时候我的激情会特别澎湃,可能是因为紧张,也可能是因为放松。这种时候我更容易集中精神专注在一件事上面,而且因为在做紧绷的神经以外的事,所以对我来说那是另外一种放松,虽然实际上写代码这种事对我来说一点都不轻松。

上个星期我写了能够进行分仓汇总的代码,那个代码是汇总,会自动汇总工作簿里面除了文件名含有“总”字的工作表的某些特定区域。而昨晚我写的那个代码是加一个选择项,只汇总我指定的含有某些关键字的数据。因为我需要汇总的是账本,所以这里我选择的关键字是月份,而因为我做的那些账本只在月末有数据,所以我只需要指定月份就可以了。理论上在之前的代码的基础上,我应该不需要费太大的劲,但昨晚我却又耗掉了一个晚上大概两个小时多的时间。一开始是构思应该在哪里加循环、在哪里加判断,但当我把代码组合好以后却发现我没办法让某个单元格里的值与我的目标值以我设想的方式对比。首先是获取单元格的值我没有写好。当我把那个写好以后却发现从人的角度考虑,那两个东西已经是相等的,但是程序却判断那是两种不一样的东西。原因在于我用作比较的那个东西是用InputBox录入的,而如果不以方法的形式使用InputBox,InputBox获取到的东西是字符串,但我单元格里的却是一个数字,用数字跟字符串比较,虽然看上去一样,但实际上是两回事。如果不是在VBA里用逐行调试,我不会发现这个问题。同一个数字,有双引号跟没双引号是不一样的。所以后来我在录入数据后,在把单元格的值跟录入作比较的时候我进行了一个格式转换,把字符串转为数字。进行了这些操作以后,我终于达到了我想要的效果,我不确定这么干运行时间一定会比我汇总全部的更快。虽然最终汇总出来的东西肯定短很多,但是理论上要进行比较筛选更复杂。

在自动汇总了多个工作表的数据以后,实际上我还得手动用数据透视表对汇总出来的数据进行处理。通常来说处理方式是恒定的,但也不排除会有一些特殊情况。既然数据透视表能生成某些效果,我觉得如果在VBA上更进一步我可以直接生成一个直接就是我目标汇总形式的数据。但话说回来,这种方式虽然一步就位,但是在查错方面反倒不如数据透视表爽快。因为数据透视表除了能展示合并数据以外双击单元格你还能看到详细的源数据,但如果我一步就位显然就做不到这个了。又或者我可以在VBA程序里加入一个生成目标格式数据透视表的过程,这样估计就能两全其美。

数据的分与合当我能把握的很好的时候,我就再也不怕什么智能化系统几万年都上不了线,即便上线了也是满屏的傻瓜bug了。

2019-05
1

继续折腾吧

By xrspook @ 11:27:21 归类于: 烂日记

软件设计出来唯有在使用的时候你才能体现出它的价值。昨天和今天我把自己写的两个VBA用了好多遍,感觉真的是爽歪了,但有些东西只有当你用的时候你才会明白到某些手续的必要性。

比如我写的第1个VBA,那是用来套打的,可以打一个工作表里面的指定行。一开始的时候我的思路是把要打的表都复制到有保存VBA的工作簿里,当时打印结果出来的时候我傻眼了。因为页边距的问题,所以打歪了。打了第1页以后,我就已经意识到这个问题,于是我修改了有VBA代码的工作簿,但即便这样,从其它地方复制过去的工作簿还是不以我理想的方式出现。所以最终我把需要打印的工作簿复制到一个别的地方,文件重命名,然后同时打开那个工作簿以及含有VBA代码的另外一个工作簿。在需要打印的工作簿下快捷键调用另外一个工作簿里的VBA代码。这样的好处是我不需要把VBA代码到处复制,只要我同时打开两个工作簿,我就能实现这个功能。一开始我是不知道的,虽然之前我已经看到过网上有人说可以这么做,这样做的好处就是不需要到处复制VBA代码,因为在Excel里面,2007以上版本里最普通的xlsx是无法保存宏代码的,如果要保存宏代码就必须使用xlsm,当然可能如果你把它降级为2003的版本就可以在里面保存代码。显然最普通的工作簿里面不允许你默认打开或者保存使用宏代码能提高了文件的安全性。自己用的宏代码放在一个自己的文件里,需要在别的文件调用的时候同时打开工作簿,这其实也很方便。自己的工作簿设置的宏快捷键在其它工作簿也一样可以用这很爽。这些东西在我写代码的时候我没有想考虑过。因为我只是个新手,不可能一开始就那么周全。

我写的第2个VBA是用来汇总数据的。理论上我还需要添加一个筛选的功能。这样的好处是每次我不需要把每个工作表里面的所有内容都复制到大表里,而是先进行筛选,然后再选择性地复制过去。这可以减小文件的体积以及代码运行的速度,但另一方面,其实筛选也是需要时间的,是全部东西拷贝快一点,还是先筛选再拷贝快一点呢?对我来说,因为我的数据不算太多,所以目标以外的东西我完全可以视而不见,但是如果我把这条代码给别人用的话,或许先进行筛选然后再复制会更合理一些。设定筛选会让我落入另外一些烦恼,筛选范围是个问题。最简单的当然是某个指令数字的筛选,靠谱一点的是某个范围的筛选,但某个范围又分为了连续以及间断。显然要全部满足这些,从逻辑上我还没想通。在非大牌软件里同时满足这几种东西的貌似我还没见过,所以我没想通可能是因为要实现这些有难度,但并非不可能。比如在设定打印页面的时候,我就可以用单数字,连续数字或多数字实现我的要求,所以这个功能是可以做到的,只是我还没想到应该如何实施。

折腾是一个没完没了的过程,但我会乐在其中。

2017-12
22

古板怪

By xrspook @ 9:02:09 归类于: 烂日记

在使用新软件的问题上我总是很死板很后知后觉的人,如果不是到了非换不可再也用不下去的时候我不会主动更新用得很习惯的软件。于是,2017年我还在用着Office 2003,我还在用着PS的CS2版本。唯一我很积极更新的就只有那些科学上网的方法。遇到那些我是见一个学一个,有多技旁身总是好的,绝对不能吊死在一棵树上。但即便是科学方法,如果同一个软件还能用我就不会手贱去升级。因为多年以来的天朝经验让我明白到越升级越多广告,越多无厘头的东西。手机系统也一样,尤其是你的手机已经用了两年以上了,即便更新的时候告诉那还兼容你的机子,但换上新的手机系统很多时候会让你痛不欲生。比如说从前我的小米1s青春换上了红米系统以后什么东西都慢半拍,内存永远不够用(才1G的内存,天知道被红米系统常驻了些什么),又比如我妈的小米4换上MIUI 8以后电量就像跳水一样,一时正常,一时说没了就立即没了。适合自己的才是最好的,我把我妈的手机刷回MIUI 7以后世界被拯救了!所以我也有想过要把我的小米1s青春刷回一开始的MIUI 4。

之所以说起换高版本软件,是因为我的前室友又把她的Office搞成2007了,原因是她说2003的用不了数据透视表的筛选功能,她没跟我说清楚是打不开xlsx的数据透视表,还是数据透视表打开了,但不能在字段那里用筛选。我真不知道2003能不能打开2007的数据透视表,理论上应该可以,但运行起来可能有点卡,按照我的经验,如果打开以后用2003自己的xls版本另存为以后卡机的问题可以彻底解决。至于2003里的数据透视表不能筛选这个问题完全就是扯淡。2003能筛选,不过操作傻瓜点,结果也没那么人性化而已,但的确可以对数据透视表的任何字段筛选,如果筛选内容是数据区域的,一切都正常,如果筛选的是列字段,自动汇总功能歇菜而已。2007以上版本的筛选放在了右键菜单里,在字段的下拉菜单里就有,但2003的筛选你必须按数据透视表以外和字段同一行的单元格,然后按数据-筛选-自动筛选。这样操作过后,原来的字段下拉菜单就会从之前的多选框变成一般常见的筛选框,于是你就可以自定义筛选了。

我把《Excel 2013数据透视表应用大全》这本书看了一半,虽然他们是基于2013写这部书的,虽然从2007开始Office软件发生了重大的变更,但实际上书上的核心功能我依然能用2003操作。有些操作的确用2003做不了,或者不能一步到位,但那些都只是某些颜面格式的东西。比如说2007以上可以一键设置自动清空已经不存在的字段选项,但2003你需要把那个字段拉出框,按一下更新,然后把字段拉回去,再按一下更新。又比如2013的条件格式非常强大,可以用渐变色,可以用进度条,可以用不同颜色的箭头来让数据更一目了然,但这些都只是格式,如果把数据处理好了,不是非得那么炫酷,虽然我也非常喜欢那样。再比如2013的字段筛选大家很容易就知道该怎么操作,但2003却要通过某些步骤来实现。我是从Office 97开始用Microsoft的这套软件的。我觉得97很好,97的界面比2000好看多了,但我不得不从97升级为2000,因为97的绘图功能很差,但高中时老师要求我们做文本框排版,于是我只好把素材都交给同学,让他们帮我在2000上完成。后来之所以不得不用2000是因为高中的电脑考试用的是2000,即便我熟练操作97还是会有一些2000的功能使用不到。大一的时候我换上了2003,2003比2000好看,但更重要的是2003把2000某些反人类的地方改正了。当我的大学同学在大三的时候换上更高版本的2007的时候我一点都不心动,因为除了默认效果画出来的图表好看一点以外其它我都不喜欢,最要命的是经常找不到最常用的功能在哪里以及启动速度非常慢。2003的Office是那一代最完美的作品,就像说起Windows大家都非常赞叹XP一样,2003和XP是绝配,也是那个年代最好的选择。如果现在要换Office的话,我也会首推2013,2007对比2013就像当年的2000之于2003,2007据说在数据透视表方面相对于2003有了很大的改进,但跟同个系列的2013比起来,2007的漏洞简直让人无法接受,2007是个新思路下的半成品。但我承认,因至今没用过2007,我不应该对其评头论足。现在我觉得2003很好,能满足我的需要,虽然某些别人很容易就能实现的东西我得多按几下鼠标,但是那些高端的操作一年都不做一次,我又何必去为了那个到处找靠谱的2013版本呢。

我不崇拜高端傻瓜式,我更喜欢把最平凡的东西玩到极致。

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