2020-09
19

我喜欢Excel

By xrspook @ 20:53:41 归类于: 烂日记

Excel的一般公式,我比较熟练,一些高级公式的叠加,我需要找教程套用,但起码我知道那是可以做到的。一般的数据透视表,是我一直以来用得相对来说最顺溜的东西,至于高级的数据透视表,也就是超级数据透视表我几乎不了解它的高级用法。在数据的筛选查询方面,之前我用的是公式,而近期,我知道了有Power Query这种神器。在这之前,我已经知道可以SQL语言查询。去年我开始系统学习了Excel VBA。这让我大大提升了某些工作的效率。当然这是非常有针对性的。对我来说,要开发一个VBA脚本需要好些时间,并不是一写就能用的那种类型,期间要经过不少修改。所以其实总的来说,对Excel的了解我还是比较全面的。

也正是因为有这样的经历,所以当我遇到某些综合性的问题的时候,当别人把目光主要集中在某个他们很熟悉的版块的时候,我会凭借我的直觉找问题,而不局限于他们觉得出问题的那个地方。比如在把SQL查询跟VBA结合的时候,别人会把精力放在SQL查询有没有写错上面。SQL有没有写错,其实我根本没看,对我来说那些东西太长了,看不懂,而且那个人写的VBA脚本缩进很有问题,看得我很郁闷,所以我就更加没有心情在那里琢磨。那既然能计算出一个正确答案,说明那个查询语句应该没什么问题。也正是因为写脚本的人的那堆东西格式比较混乱,所以我有理由怀疑那是拼凑起来的脚本,因为居然在脚本的开头连变量的定义都没有。为什么VBA里没有进行规范的变量定义,后面也居然可以照样使用呢?这让我有点惊讶,毕竟这是个VBA,不是python。C语言里,如果不先进性变量定义,后面根本用不了。在我记忆之中,VBA的变量在使用之前是需要先定义的。最终我发现是那个人的脚本之所以出错,是因为某些语句的套用搞错了,为什么他会把那个东西放在里?我觉得大概是因为他没有明白他一开始做的那个with是什么意思。但如果你问我为什么他把那堆东西套在里面会出错,而且是某些地方出错,不是全部出错,我回答不出来。理论上这种错误能在恰当的调试中体现出来,但实际上,VBA的调试句子我还用得不算很熟练。或者你会说,这是因为我的VBA学习还不够系统化,但我觉得我已经用了学习VBA最靠谱的那本书了。可以肯定的是,一些很基础的调试方式我还没掌握,如果我学会了那些东西,我可以大大提升我的调试效率,把错误定位得更精准。VBA脚本这种东西,我觉得最根本的是必须得理解。如果纯粹是各种套用,基础功能的确可以快速实现,但是当遇到的问题比较综合的时候,就会出现一些他们完全料想不到的状况。那种状况有可能与脚本本身的内容无关,与脚本的结构有关。

相对来说,Excel里我用得最弱的是高级公式的套用。如何用一个非常复杂的公式解决一些高端的问题是我一直以来都不大上心,或者说记得不够好的部分。非常复杂的公式,尤其是数组公式,虽然能解决一些神一般的问题,但问题是,其实那些公式需要耗费大量资源,所以在处理大数据的时候,非常有可能出状况。我是一个实用主义者,能做到某个功能,但是做起来的效率不高不好,我为什么要选择那种只是看上去很炫酷的方式呢?情况就像用VBA解决同一问题的时候,如果只是在工作表层面处理和先用内存数组处理再在工作表层面表达,效率千差万别。

Excel对我来说,除了要最终结果,过程也得追求高效和方便。

2020-09
13

别人常踩的坑

By xrspook @ 20:09:06 归类于: 烂日记

怎么才可以让自己遇到更多的问题呢?我选择的是猫在某个论坛里,解决别人提出的问题。我仅仅猫了几天,就得出了某些结论。比如通常逼着大家提问的原因在哪里,针对那些东西,我应该如何在表格里避免。某些东西,我们一定会遇到,即便暂时没有,所以在那之前先掌握技能很有必要。如果等到像他们提问题那样才去被动去学习,就比较烦恼了。

第一个让他们在用数据透视表的时候得不出应有的结果的原因是他们的原始数据格式有问题。数据汇总时碰的壁绝大多数都是原始数据记录时挖的坑。最经典的坑莫过于合并单元格。所以,当我看到某个同事给我的表每一个数据框都至少合并了两行两列单元格的时候。我立马拍桌子发飙了,这是处理数据吗?!如果你嫌那个单元格宽度和高度不够,完全可以对单元格进行调整啊,为什么要合并?之所以做出这种低能的单元格合并,唯一的理由就是,她根本不知道那些东西的宽度和高度是可以调整的。对她来说,Excel的表格就像十字绣一样的固定洞洞,就像Photoshop里的网格线。但实际上,根本不这样。面对这种人,我是完全无语的,因为她完全不了解她正在使用的那个软件。这些人应该从头去开始学习Excel,从最基础的学起。只有让她明白Excel是做什么的,可以怎么用它,她才不会犯这种超级低级的错误。这种空前弱智的单元格合并通常不会发生,更加不会在某个表的任何一个数据框里面发生。某些人会把平时手工汇总的表格拿出来求做成数据透视。准确来说,那是一个明细表和汇总表的混血儿,在实际工作中我们经常会碰到。从展示表的角度考虑,这非常正常,尤其当数据完全由人手工填写的年代。但这不是Excel处理数据的习惯,明细是一回事,汇总是另外一回事。当某个大项里有N个分项,大家非常习惯,把大项横跨的几行合并为一个单元格,然后分项的总和也合并为一个总数。这是人的处理习惯,但Excel的处理习惯是大项为一行,分项为余下的行。当你不想看明细的时候,直接把它收起来。之所以会出现这种人的思维和机器思维不一致的东西,完全是因为大家没有读Excel,而只是把我们人肉做的事要Excel去模仿。这绝对是搞死人的!处理这种事,只能把大项的单元格合并取消,向下填充同一个名字,最后的汇总数据,全部打散为小项的数据。如果一个明细表里有很多这种情况,又有很多类似的明细表需要合并,那可是清晰数据整死人的节奏。

另外一些数据透视表的问题发生在多表合并的时候,有时可能还得对表格的汇总数据进行一些运算。通常,这需要用SQL查询,但我觉得在Excel里用SQL有点麻烦。那个东西不适用于文件移动,一旦文件发生移动。数据将来难以刷新,因为实际上进行了SQL查询以后,电脑的某个位置会形成一个数据库。当你移动文件到别的电脑,引用的原文件仍然只是旧的那个。通过在文件里加个VBA,能解决更换数据源的问题,但要这么复杂才能做到,证明了SQL在Excel里实际是有点水土不服的。这种玩法根本不适合分享文件。SQL语法虽然很简单,但是标点符号的错误,哪怕是多了一个空格,也会出状况。在没有语法检查的编辑器里写那些句子,简直就是撞墙。新版本的Excel里内置了Power Query和Power Pivot,如果用的好的话,SQL基本可以丢一边了。我感觉应该可以这样,虽然我对这两个Power工具还非常陌生。我觉得,也正是因为Excel里面用SQL不太顺,最终才会让这两个Power成为新版Excel的标配。

把别人的烦恼当作是自己的烦恼,是一个让自己进步的方式。

2018-01
18

自觉学习

By xrspook @ 11:46:09 归类于: 烂日记

昨天和同学的聊天几乎到达了吵架的地步(或者说已经在吵架了)。之所以这样是因为我们看到的某些东西和我们持有的某些观点不一致。工作了10年多以后我意识到辩证法的重要性,不把话说死是非常有必要的,因为实际上真的是100%的事少之又少。因为我和我的同学从工作开始走上的就是不同的道路,所以看到的问题和个人感悟相差很远。

让我觉得很神奇的是我的同学为什么会觉得我学得比她快她压力大呢?几乎可以这么说,离开学校以后我自学的东西更多更杂更深入。学校学的那些东西都是基础,没有之前的根基我估计也不会养成往后的自学习惯,但显然脱离了那个被迫学习的体制以后我根据自己的情况上手各种东西其用功程度比我在学校被严格要求要考多少分好很多。我不再为分数奋斗,我为自己的兴趣奋斗,有些时候那些也谈不上是兴趣,而只能说是自己对自己的要求。我没办法接受自己本可以做得更好却因为懒而让重复无聊的东西一再每天都持续上演。再深层次地挖掘大概因为我很早以前就开始当码农,一开始的时候写的是HTML和CSS,后来变成了PHP,期间又在学校学了C语言,因为要写某个可视化封装起来的程序学了VB。一开始我就选择了折腾的路,所以往后当我要学习什么Excel公式,SQL规则的时候我会觉的一切都很正常且理所当然的事。明明做网页的时候我可以选择可视化的方式,当时可用的是Frontpage和Dreamweaver,但可视化的东西总不能精准到位,且生成的东西过于拖沓,所以我宁愿自己写HTML,然后用浏览器去测试我的敲键盘成果。没有人强迫我必须得这样,但我觉得这样有意思,完成了以后有成就感。很多人都有自己的网站,但不是每个人的网站都是自己亲手敲键盘写出来的。他们可以通过直接给钱别人,提出要求让别人设计出现成的,也可以利用网站后台的可视化模块以拖拉的方式组建。要自己写网站就意味着要学习理解各种规律,然后把自己的意愿按照约定的格式输出。我不喜欢你直接给我鱼,我更喜欢你给我一本钓鱼教学手册。

理解规律,认清自己的需要,最终恰当成功地输出。我觉得这几条就是学习的真谛。最终神一样的境界一定是无招胜有招。如果我们根本不去学习规律,也不知道我们自己要怎么着,又怎么会有后续的东西呢。有没有学习的心跟身份地位有钱没钱做的是哪份工作没关,这真的只是各人想不想这么干而已。有些人会自觉学习,但有些人要别人逼迫着才去学习。如果是前者,放在任何环境都无所谓,但如果是后者,环境貌似就很重要了。我觉得最根本的还是主观的人本身。学生年代当过班级里的鸡头与凤尾的我有深刻的体会。我不觉得名校里的普通学生就一定比九流学校的尖子生优秀,虽然外人看来二者的学习环境和受教育师资相差九万八千里。

环境或许不容得我们去选择,但我们可以选择改变自己。

2017-09
17

Excel武功秘籍啊啊啊

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

昨天我突然想起,要下载一本关于SQL的书。我觉得W3School的教程就很好,但问题那是个网页,只能一页页翻,非常麻烦。按照一般逻辑,网上应该有一些已经把网页整理好的电子版,pdf一定有,有没有mobi我不知道。pdf,mobi的区别在于后者的体积更小,而且更适合在智能终端上看,因为,那会根据每页的大小去调节呈现内容,而不像pdf那样,实际上每一页有多少内容已经确定了。最后还真被我在GitHub上找到了,那里打包了各种W3School的教程,基本上把W3School所有类型的教程都已经打包好了,有在线的版本,也有三种电子书的版本,分别是pdf,mobi和epub。因为太久都没把自己的文件上传到kindle,所以我已经忘记了该怎么操作,记忆之中我有个插件,但是点击文件右键却未见那个东西。我差点就想到不得不发邮件给自己了。但最后当我点另外一个pdf文件的时候,我发现了那个按钮。不知道为什么mobi文件的邮件没显示出来。接下来的事情很简单,我只需右键发送,点击确定,然后我打开我的kindle终端接收那个文件就好。因为好久都不在手机上用kindle,所以我的小米4c已经删除了那个app。昨晚我又重新安装回去。这本SQL基础教程我会带在路上无聊的时候看,所以我的手机上必定要有一个电子版本。如果用WPS阅读,我会觉得很不顺手。平时如果是其他类型的电子书,我会选择直接在kindle阅读器上看。

装上kindle以后,上面显示我的书和我自己上传上去的文件,下面是一条亚马逊的推荐书,那些是近期的折扣书。其中有一本叫做《为什么精英都是Excel控》,我也不知道他们是凭什么给我推荐这本书的,但是,之前我的确有考虑过要在亚马逊买Excel方面的书,但实际上我并没有在那里搜索过。这本书的标题相当的吸引人,也说到我心里去了,但是在看过这本书的评价和目录以后,我知道这不适合我。与其说这本书讲的是技术,不如说这本书是在卖一个卓头。标题说得很对,但是学好了这本书以后,并不能让你成为Excel控。从目录看来,这只是一本很基础的书,更多时候是教大家把表弄得更好看,而不是真的把Excel内在的神功发挥出来。我觉得那本叫做《Excel 2013数据透视表应用大全》的更适合我。因为基本可以这么说,那本书里面所包含的东西全部都是Excel的高级货,在一般的Excel教程里,你不会用到,但只有把这些东西都玩得很熟练了,你才有可能被称为大神。这本北京大学出版社的书一共有1296页,相当的厚重。唯一让我纠结有想不想买念头的只是这本书配套的是Excel 2013,但问题是,我现在用的Excel还是2003。版本不一样,问题很严重,因为从2007开始,Excel的数据透视表功能就开始变得越发强大,很多东西在2003无法做到。所以非常有可能,我从书上学到了很炫酷的功能,但在实际操作中我却无能为力。这会让人非常沮丧。北京大学出版社还出版了好几本其它Excel方面的书,但我觉得最吸引我的还是那个数据透视表大全。从目录看来,从创建数据透视表,到怎么把数据表的格式以及各种深层次的功能用好都说到了,更厉害的是,连动态数据透视表、复合范围数据透视表,以及用数据查询、导入外部数据,以及SQL数据库部分都提到了。其中说到的Power BI,我甚至不知道是什么回事。当然,这本书也有说到数据透视表与VBA。光是目录已经非常的吸引我。因为这个里面关系到了Excel高级技能本身,SQL以及VBA。这些东西都是我很想知道,但是我却暂时不太了解的内容。让我纠结的是到底这些东西2003能不能联动实现呢?如果不能实操,我会过得很痛苦。这本书的标题没什么很牛逼的字眼,但显然能把这些东西都说透说明白的人必定是精英。因为对普通人来说,你甚至不知道这是什么,更加不用说要把这些玩透了。

随后一个让我纠结要不要下单的是,能不能回去跟科长商量一下,让单位负担这个呢?既然这个单位从来都没有发过什么书报费,所以他们出一些工具书的钱,也是很合理的。

人如果能一直保持学习状态,就会一直年轻。

2017-09
7

改模板

By xrspook @ 12:42:21 归类于: 烂日记

昨天提到的我的天模板问题,很快就解决了。我同时用Win7 22寸宽屏的显示器以及XP 10.1寸的小笔记本测试。同样使用Firefox浏览器,Win7用的版本是50的,XP用的版本是40的,因为往后Firefox就再也不支持XP系统了。文章评论提交按钮的问题很好解决,原来按钮的宽度是100px,这容不下“Submit Comment”这么多字符,所以我改为120px了,我也试过用150px,也没什么问题,因为按钮我设置了字体横向居中,但如果120px就能搞定,我也就没必要用150px了。至于版头的导航栏有点麻烦。XP系统下默认字体是宋体,Win7系统默认字体是微软雅黑。我的天整个网页我都对字体做了设定,用的单位是px,但问题是宋体和雅黑同样是15px,Firefox辅助网页编辑插件计算出来的大小是29,而雅黑是31。在不同的系统、不同的显示器分辨率之下,同样是宋体,XP在10.1寸是27,Win7在22英寸是29。这样的数据差异绝对会整死人的!!!因为我的版头导航分为2个部分,一左一右,为了要把左右分开,所以必须用float:left;和float:right。float之后是ul,ul下面是li。ul没有一个固定的高度,ul的高度是由下一级的li去确定的。ul在id nav之下,nav设定了一个绝对的高度定位,nav就是float:left的元素,只有这般绝对定位了,nav才不会跑到我的网站标题前面。但绝对定位遇到不同系统不同浏览器不同字体发生的字体大小差异几乎算是一个打不开的结。在更大的显示器分辨率和默认雅黑字体下,无论如何浏览器计算出来的字体大小都要比宋体大。在Win7下,尤其是在浏览器里看过宋体和雅黑的都会觉得雅黑更舒服。之前设计Color3模板的时候我用的是XP搭配17寸的方屏,默认字体是宋体,所以当网页用雅黑字体浏览的时候就会出问题。问题也不是很严重,就是那个导航栏的按钮会有点压在我的border框上。让所有浏览器都必须使用宋体或者雅黑作为默认字体是不可能的,所以最终我只能遵循我在Win7系统22寸显示器,Firefox 55.0.3下计算出的状况来调整。最终我把nav的绝对定位从之前的100px改成了96px,这就保证了在Win7雅黑的情况下版头导航栏是完美的。然后我把nav ul li设置了固定高度height:31px,如果没有这一条,在XP宋体的时候导航栏和下边框之间会有条线,如果这般设置了,那条线将和鼠标不覆盖导航栏鼠标特效之前的导航栏颜色一致。即便鼠标处在hover的状态,不过等于是按键下面多了一条特殊的颜色。有些网页是故意做这种特效的,所以我觉得从美观上还能接受。不知道现在还有多少用XP的人会访问我的网页,估计用移动终端的更多吧。移动终端默认会用插件的移动界面,所以那里看到的不是我设计的Color3模板。所以呢,最终Color3模板是给谁看的呢?大概目标人群就只是我自己吧。

昨天从上午开始就在折腾Access,到下午下班之前思路理清了,但还是没办法解决我的联合查询,于是我就找网友帮忙了。他秒杀就解决了我的问题,我折腾了那么一大轮原来最终跪在了一个拖放的字段关联操作上。如果没有高人指点,我自己折腾一个星期都不会想得出还可以这样,因为我已经把所有右键以及菜单栏里的详细菜单都翻遍了。如果我真找不到可视化操作方式,我也可以用SQL语句实现那样的关联,具体语句是“31 INNER JOIN 32 ON [31].ID=[32].ID”(把表31的ID字段和32的ID字段关联),然后就可以在查询里一次性地筛选合并出31和32的内容了。这一点很多人都能想到,但具体该怎么操作则需要知识。我学习Access的路还有很长~

研究代码是个烧脑的过程,但又不会太剧烈。

归档:2017-09-07 Taare Zammen Par

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