2019-09
10

Excel内部套打

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

我花了一个下午的时间,做了一件Excel内部套打,实际上这个功能很早以前我就已经可以用Word和Excel联合实现。出来的效果很完美,问题只是核心数据要贴在Excel,打开Word的时候,必须点一个对新手来说可能不知道该怎么办的窗口。如果那是一大堆的数据的话,这样的操作绝对值得,但如果那只是仅仅一两条数据,这样的操作貌似比较麻烦。所以昨天我就在Excel里面做了个模板,然后用定位的方式在文件内部实现套打。这样的好处是只需要打开一个文件,就能实现打印而且不会弹出一些让新手很困惑的窗口。很多函数都可以实现这个功能,但最终我选择的是一个定位函数,虽然那是一个动态函数。但因为我要实现的东西很简单,提取的东西不会超过10条结果,我需要进行筛选的总表里面也没有成千上万的东西需要纠结,所以我无需考虑运行效率这个问题。之所以选择INDIRECT这个函数,是因为参数比较少,而且在我定义函数的时候我可以轻松地借用到原数据的列标签,不需要思考一下我要怎么把那个转化为数字。

打印数据的控制可以通过手动输入,也可以通过我随手拉出来的一个控件。控件的好处是可以一个一个地向上增加或减少,这样漏掉的几率就会比较低。当然,如果要暴力一点的话,可以直接在单元格里面输入任何你想输入的东西。当然那样的话就得不到应该有的效果。在不用VBA的前提下,我觉得这样应该实现不了批量数据生成。如果我在现在这个东西的基础上再加一些VBA语句,应该可以实现批量打印,而且难度不算太大。这样的话我就可以用它完全取代Word和Excel黄金搭档的邮件合并功能。虽然我现在做出来的这个小表格很直白简单,用起来方便,但入门的门槛不低。纯粹只是套用,其实没什么难度,但要把整套东西设计出来,还是得花一定的时间。相对而言,相比之下,Word和Excel的邮件合并好用得多。之所以那么好用,是因为一些我需要在Excel里DIY控件实现的功能他们有内置的控件。之所以我想到要加一个控件控制单元格步长,就是受到他们的影响,当然我也可以设置直接跳转到第一条数据和最后一条数据。之所以想到这个也是因为我看到他们可以实现。要如何在Excel里实现批量打印,我想出来的方法不是在一个工作表里面生成一大堆表格,而是一个表格生成一个工作表。打印的时候,我可以筛选有特定字符的工作表批量打印。其实在Word里面也是这么控制的。我之所以想到要生成一大堆工作表是因为我不知道如何在一个工作表里面连续生成N个格式一样的表格,这些表格在打印的时候必须刚好1表1页。要控制好这个,Word里在表格的后面插一个分页符就好,但是Excel里面貌似没有这个东西。当然如果我把表格的高度刚好就是一页纸的话,就应该能达到我想要的效果,但这该如何做到呢?暂时我还没想通。

一个下午就只干一件事,貌似工作效率有点低,但起码我做成了这件事。接下来我将继续在这个问题上动动脑筋研究出我想要的效果。

2019-06
5

用恰当的工具做恰当的事

By xrspook @ 8:41:58 归类于:烂日记

有些人喜欢拿Word去做表格,有些人喜欢用Excel去画画,这都是神一样的操作,但是做前者的人却绝大多数不会看作是异类,但是做后者的人你就只能觉得他真是个艺术家。的确,Office的软件能解决很多问题,而且基本可以这么说,对一个中小型企业来说,你根本不需要其他额外的软件,光是玩好这套Office,就足够满足你所有的需要。前提是你的业务量没有达到百万级,但其实这个数据量我也是瞎掰的,因为实际上,通常我最原始的数据,一年下来不到2万条。从而不到2万的数据就可以衍生无数多的东西。Excel教会了我原始数据和汇总数据是两种彻底不一样的东西。在那些不怎么懂的人眼里,表格永远都是混搭的。最让我痛心疾首的是,他们把混搭的表格当作原始数据。于是你还得一条一条地把那些无关紧要的东西删除掉,有些时候可能你能找到规律,但有些时候,规律真的不明显。

如何筛选信息,把无关紧要的删除掉,对我来数这是一个必备技能,但对有些人来说那是高深的学问。你可以用Excel的筛选功能。但相比于Word,可以精准的使用通配符,显然Excel就没有了。我还记得,我的大学课程里有一门叫做文献检索,在那里面,老师介绍了国内国外常用的数据库。国内的数据库,查询大都是那样,最高级的要算是中国期刊网的,但是外国的那些,不同的数据库总有不同的通配符。你要玩转那些地方,就得记住某个符号在那里是怎么用的。在程序语言的世界里,也经常会用通配符,尤其在正则搜索。当然,在不同的编程语言下,这些符号又会有差异。回到之前那个Excel删除信息的问题,在软件的数据筛选里,可能你用的是某些组合方式,但是如果你用的是VBA,用的是写脚本的方式筛选,那又是另外一回事。最终如果你足够厉害,无论用哪个方式都能实现你的功能,但显然,对新手来说,你打算用软件自带的套路直接放到VBA里面使用,那就不合适了。也不是说直接使用就不能实现目的,但显然,如果你从机器的角度考虑。你就会明白其实你用了一个不怎么懂的人给你做翻译,虽然最终事情也能做成,但显然效率就不高了。还记得从前我选择理科而不是文科,原因是我觉得“学好数理化,走遍天下都不怕”就是这么回事,这句话就意味着那些符号在各地是通用的,但是语言就不一样。编程语言又跟一般的语言不同,编程语言在哪里都是通用的,因为命令的规则都是一致的,无论你说的是哪一国的语言,只有遵守那些规则,才能让程序达到你的目的。在编程的世界里,只有高端的算法,没有狗屁不通的语言障碍,因为实际上,跟你交流的不是别国的程序员,而是机器。暂不说现在的AI有多厉害,一直以来机器这种东西是最直白的,懂与不懂他不会给你一个尴尬的回复。机器最终只会给你两种结果,一个是你想要的,一个是你完全没有料到的。有时候,相比于跟耍滑头的人类玩,我更喜欢跟那些耿直的机器对话。

很多东西都是你越是深入,你越会觉得他伟大。

2019-05
29

自动图表索引

By xrspook @ 8:39:31 归类于:烂日记

用了这么多年的Office,昨天是我第一次用插入题注以及交叉引用。之所以这样,是因为这一次我写的那篇统计分析里面的图表实在太多,加起来接近有20个。整篇文章的正文我用的是三号的方正仿宋简体,1.5倍的行距,有18页纸,字数大概是5700。再编一编,我可以轻轻松松写够6000,但是我觉得没有凑字数的必要了。现在已经18页纸,如果我再写点,哪怕再写一行,就会超过18页纸。写那么多又有什么必要呢?在写完一大堆以后,我要把文章缩短,因为只有那样我才能够在结束的地方写个日期,否则以现在的长度,某一段话只要再多几个字就会分到第19页了。因为里面的图表多,所以做编号也会把人做疯掉。如果我改变了文章段落的编排,图片的序号及定位肯定会非常痛苦,加入或者删掉其中一个都绝对会让人疯掉,所以唯一的办法就是利用软件自身的序列功能。之所以从前没用过是因为读大学的时候老师对论文有严格的格式要求,而自动生成的图表序号格式不符合老师的要求,所以虽然毕业论文我写了很多字,也用了非常多的图表,但最终所有图片序号我都是手工编制的。

图表的顺序改变不仅仅是图表的说明文字需要改变序号,连正文的引用也需要改变,但现在,如果我用好了Word的功能,所有改变只需要更新一下域,就能解决问题。我不知道用过Word的人有多少个懂得这个东西,之前我知道有这个东西存在,却一直没用过。我觉得知道这个东西且一直在用的人显然不多,毕竟对普通人来说,一篇文章不需要写那么长,插那么多图表。如果要搞那么多图表,还不如用个PowerPoint。其实我觉得统计分析这种东西,除了用Word去表达以外,用PowerPoint也是一个非常好的方式。对读者来说,Word就像是以文字为主的杂志,而PowerPoint则更像是看一个图册。谁说图册就不能说明问题,看看《国家地理杂志》!他们的书里图片是重点,文字是点缀,我觉得统计分析也应该这样。同样一个图表,不同人有不同的看法。虽然我是作者,但我跟读者看到的是一样的图,大家都可以由此发表感想,我的表述只代表我的个人观点,所以,那些文字只是一个意见的表达,甚至你可以说那只是一个有感而发。数据不会说谎,但当然如果我有主观的意向,同样的源数据能造出完全不一样的后期图表,并不是因为我对数据本身做了什么手脚,而是因为不同的排列组合以及数据筛选方式会得出完全不一样的结论。我觉得统计分析这种东西我看中的不是里面的文字说明,而是上面展示出来的大数据。也正是因为我觉得图表本身比说明文字重要,所以我觉得有更的大图表展示空间的PowerPoint更合适。当然了,PowerPoint本来是用作展示的,所以除了里面的内容以外,还应该配合人去讲解。如果我连一个Word都写不出来,即便全部都是我做的东西,我怎么可能在展示的时候有话讲呢。

虽然一直在用Office,但直到现在,我才终于渐渐体会到Office三剑客的伟大之处。

2018-01
5

居然有宏病毒

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

昨天下午我把一堆文件打包zip给总公司的人的时候,她给我个截图说那里有宏病毒!因为里面有N个文件我只好一个个拉去逐个发,进而发现宏病毒发生在Word那里。Word怎么就有宏病毒呢?显然我从来都不乱开文件,相对于Excel来说我的Word用得非常少。邮件合并的时候用一下,然后写各种总结的时候再用一下。通常来说,我写东西都是用txt文件,在Notepad++上写的,所以即便有影响也都无关紧要。所有重要的文件我都放在坚果云同步,即便一台电脑上的被错杀了,我其它电脑上还有。但也正是因为这个,所以我干掉了一个电脑的宏病毒以后如果那东西已经腐蚀了我的Word核心文件,比如说Normal.dot文件无论我用什么电脑,只要是生成的或打开过的文件都会被认为有宏病毒。说来也奇怪,我的Office 2003是一套的,有宏病毒为什么只影响Word而Excel没事呢???

既然别人说我的文件有问题,我不得不装个杀毒软件来查杀一下,虽然我最讨厌那些东西。那些叫什么“卫士”的东西实际上比什么都流氓,非不得已我不会安装,安装以后想卸载干净实在太难了。这次我装的是360。昨天我的同事也说我QQ发给她的那个Word文件有宏病毒。那个文件完全是我自己写的,没有从其它地方copy任何东西,如果这样的文件都有问题唯一能解释的就是我的基础默认模板已经被感染。但为什么她们的杀毒软件显示我发的文件有问题,而其他人却从来没有提出过这样的疑问呢?到底我是什么时候开始中招的呢?因为我的Word用得很少,接收别人的Word就更加少,所以我真的很难想起上一次从不知道谁那里拿到Word是什么时候的事。

下午我在办公室的电脑上装了个360杀毒,一开始宏病毒查杀就说我的文件里有macro.ole.jork.9v宏病毒,第一个查出来的文件是Word的Normal.dot文件,果然不出我所料!完全由我自己建立的文件如果有问题必须一定是污染我的文件模板!!!首先查出来的是Office的模板,然后是Win7的模板(Win7也有模板???),接着是一些我近期有打开过的Word文件。没有打开过的没事,打开过的中招。Win7 64位系统下,如果360杀毒发现那个宏病毒处理方式是修复,全部都能修复成功,不会删掉我的原文件后就没有然后了,所以我的文件都在,坚果云显示的是那些被检测到有宏病毒的文件在某个时间被修改。下班以后我回宿舍,在10.1寸的上网本上也装了个360杀毒,跟办公室的电脑最大的不同在于小笔记本用的是XP。同样是装360杀毒,但在上网本上发现了宏病毒文件以后就直接删掉隔离,我可以把文件要回来,但原来放文件的地方显然文件没有了。怎么可以这么暴力?!为什么同一个软件在不同系统下运行处理方式会差那么远?杀毒这种活儿,你直接把我的文件删掉这怎么能行?!幸好我是先在Win 7 64位下做杀毒的操作,如果我一始就在XP下这么干我岂不是哭死了?!因为我刚写完的统计分析还没打印上交呢!当然,这还是有后悔药的,因为坚果云还会留存有历史文件。但如果每次把文件下载回来360都只是暴力删除而不是修复的话我依然囧死。

现在办公室的电脑速度快了,内存暂时来说也足够大,硬盘的空间更加是根本几年内塞不满的节奏,所以我还是用那台机装个杀毒把把关吧。

2017-09
11

救赎

By xrspook @ 23:39:45 归类于:烂日记

前天晚上1030就睡觉了,但到第二天早上800才自然醒,我觉得自己每个周日早上都会醒得很晚,无论周六是11点睡觉还是10点睡觉。今天早上是被尿醒的,才517,我的闹钟是530,于是我就又挺了一些时间再起来。昨晚也是10点多就睡觉了,睡觉前不看手机感觉入睡得更快。睡觉之前必须把手机翻看个遍我觉得是无聊空虚的表现。以前睡觉之前一定要看手机是因为也只有在那个时候我才会打开微信来看一看。但现在因为工作的需要我的PC上有装微信客户端,所以对我来说睡觉前没必要再看手机了。

昨晚做了个奇怪的梦,因为今天有人过来检查,我紧张了。虽然电子版本都已经准备就绪,但把那些东西都打印出来、整理、签名还是要花不少时间。外加今天是周一,本来需要处理的原始单据就多(周五到周日,3天)。遇到这种事我会莫名地感到压力,虽然能在昨晚做的事我都已经做了,今天要做的事也都已经理清思路该怎么个操作法。但我是那种喜欢把所有工作都做在前面,用充足的时间做好准备的人,显然这个检查对我来说实在太仓促了,我觉得今天我应该可以在规定时间内做完所有事,但不排除有其它因素影响。这样就会让我觉得莫名的烦心,因为我自己的运气不好,所以我不会把我的RP赌在运气上。昨晚我已经在家里的电脑里测试批量选择,然后用右键打印。因为家里没有实体打印机,所以只能通过PDF打印出来。其间有一个保存的步骤。当然如果有实体打印机,就不会有这种烦恼。出乎我意料的是,今天用实体打印机打印的时候,如果一个文件里面有多个表格。我如果只是点击文件然后右键打印,只会打印出正在呈现的那个表格。今天我也试过批量选择13个文件,但出来的表格貌似没有13个。幸亏绝大多数的交表格我都是一个表一个文件,所以还能用这种打印方式,如果我是一个文件里面有N个表,我必定吐血而死了。如果要我仔细地记录各种数据,发现其中的规律,我还觉得有点意思,但是如果把所有时间都耗在找错别字以及这种重复的工作上,真的非常浪费生命。为了避免这种事情发生,大概我要写个程序写个脚本去实现这种功能。我一直觉得,我现在正在苦逼打印的账本是可以通过套打实现的。所以昨晚我放弃了看电影的一个多小时,去折腾Word。很早以前我就已经懂得Word和Excel的邮件合并,但是如果我需要合并的是一个表格的数据而不是其中的一行,该怎么实现呢?昨天,我试过把表头和表尾放到页眉和页脚。这样不是不可以,但是在Word你要调节表格,实在太痛苦了。那远远没有在Excel里做那么方便。而且,我该如何实现上年结转以及承上页过次页的功能呢。上年结转不过是个词语而已,但是如果要实现过次页承上页就等于必须在那里插入两个空行,该怎么去判断要不要插入呢?如果写个脚本,光从理论上说,可以判断,测试数据的行数是不是到达了目标行数,如果大于那个数就打印目标函数减一那么多,然后空两行,继续打印后面的部分。我曾经看过Access的报表里是可以实现表头和表尾以及节头和节尾不一样。而且Access也有比Word和Excel更强大的自带脚本功能。折腾一下那个估计能实现我的愿望,但是再回过头来想,这些套打的报表软件估计很早以前就已经有,只是我不知道而已。所以我是不是要去了解一下那个?如果不能满足我的要求,我再自己动手。三年前做统计的时候,我就觉得这个事很烦,当时我并没有去想解决办法。现在我又要干这个了,这种事完全不能避免,而且被查的频率只会越来越高。如果我还用以前那些拼勤奋的办法,显然是在浪费生命。

人要过得勤奋踏实,也要过得有智慧。

Page 1 of 41234»
COPYRIGHT @ 我的天 | Theme by xrspook | Power by WordPress | Valid XHTML 1.1 and CSS 3 Go to top