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
8

PQ终于重新可用

By xrspook @ 17:29:50 归类于: 烂日记

昨天晚上,在不断的折腾之后,我的Excel里的Power Query终于可以用了。但实际上,这不是一个晚上的功劳,上周回家之后我发现,家里那台Win7上的Microsoft 365用得好好的,无论是Power Query还是Power Pivot。这到底是哪里出了问题?我实在搞不懂。家里那台电脑Microsoft 365的版本也是20988,版本号跟单位那台电脑没有重装Office之前完全是一样的,但是家里那台电脑Office更新的那个位置没有一个黄色的标记。为什么会有这种问题,我也搞不懂。在单位访问github和npm大多时间是眨眼间的事,但是在家里访问npm非常慢,慢到简直下载不了。进行pip类别的python插件安装得靠运气,运气好的时候可以做到,运气不好的时候,只能用镜像。但貌似在家里,我从来没有遇到过访问微软出状况。而单位访问微软的时候出状况太正常了,比如我续费Ofice 365,需要把那串序列号填入到我的账号。我试过一个晚上不断尝试,还是失败,最终我让台式机用我手机的热点,然后再访问,一次就成功了。这到底是什么原因导致单位的网络访问微软这么糟糕呢?但是这种糟糕又不是一直都那样,而是偶尔抽风,但说不准抽风到底会在什么时候发生。

让Power系列重新可用的关键是上周五回家的时候,当我在电脑里打开Power Query,发现Excel右下角显示正在加载net framework。这就意味着,Power Query是一个需要框架支持的东西。之前我从来没有发现过这种事,大概是因为PQ打开得太快了,我的眼睛主要放在屏幕的左上方,没有看右下角。在加载Power Pivot的时候,右下角会写着正在加载数据模型。单位的Excel,一开始打开Power Query的时候,右下角也会显示正在加载net framework,但是过不了一阵,中间就会弹出错误提示。如果我不把错误提示按掉,右下角会一直显示正在加载net framework。这让我觉得大概就是,net framework不对劲,导致单位的Excel用不了PQ功能。第1次加载PQ,弹出错误代码按掉以后,当我第2次再按,右下角就不会显示加载net framework了,而会直接弹出错误代码。

家里的net framewor用的是4.7.2,单位用的是4.8,理论上4.8更高级,但我说不准会不会跟Win7有什么冲突,虽然4.8理论上是支持win7 SP1的。一开始我的想法是把4.8卸载了,但无论如何都卸载不了,卸载不了高版本的,就没办法装低版本。昨天晚上我做的是下载了一个net framework的修复软件,修复软件里面有两个选项,1个是修复,另外1个是直接卸掉。之所以我确定一定跟4.8有关,是因为在无意之中我打开MeGUI,发现也出错了,根本运行不了。错误代码写的是签名错误,那一堆东西里拿第1个错误提示去搜索,别人说这就意味着这个软件不支持高版本的net framework。所以,让我选卸载掉4.8还是修复4.8的时候,我毫不犹豫,但是在卸载4.8之前,我又重新下载了个4.7.2的脱机版本回来,因为把那东西成功卸载后,电脑不装net framework是不行的,很多软件都会运行不了。其实在卸载4.8之前,我已经已经试过运行过脱机版本的4.7.2,发现是无论如何装不上。当我毫不犹豫地卸载4.8,装上了4.7.2以后,我的MeGUI可以用了,Excel里面的PP也可以用了。而这个net framework 4.8大概是之前我想升级PowerShell,但无论如何都做不到。PowerShell升级的其中一个要求好象是net framework的版本必须4.8,但是,又有点状况。理论上这些事情我应该很早就发现,但显然,近段时间我根本就没有纠结那个东西,所以就有了之前的折腾。

感觉从前的软件没有现在这么神经质啊!

2020-09
3

这是暗暗的报复吗

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

从粉到黑其实完全不需要经过什么大波澜,可能只是无意之间等一件事而已。一直以来,我都是Office的粉丝,非常拒绝WPS,现在我依然不喜欢WPS,尤其当我有点迷恋上VBA以后。之所以VBA,因为数据透视表已经在某些方面无法满足我懒的需求了。但我只是一个新手,所以即便是很简单的东西,我的VBA脚本也要经过很长时间才能琢磨出来。

爱上周我突然发现自己Microsoft 365上面的Power Pivot不能用了。昨天,我又突然发现,原来自己连Power Query也不能用。这两个不能用,意味着所有高端的Office功能全部歇菜。这些东西全部都不能用以后,我付费的Microsoft 365和从前不用钱,而且体积还很小、几乎不出错的Office 2003,仅仅只剩下界面比较好看,公式多了一些而已。从Office 2003到Office 365,我花了很长时间,因为一直以来我都不觉得自己必须改变。因为工作上某些公式打不开,某些功能很厉害,但我做不到。在深思熟虑以后,我才终于换到了Office 365,但是当我的Office 365。用了不到两年之后,Office 365,变成了Microsoft 365,进而发生了Office软件里最强大的功能居然失效这种事。这是我电脑自己的问题吗?但我又不能完全保证这只是某台电脑的问题,为什么单位这台机就不能开,家里那个就没问题呢?两台机都是64位的Win7,理论上应该差不多。之所以会发生这种事,是不是因为家里那台机我没有进行升级呢?虽然微软说2020年1月他们已经停止对Win7的支持,从那里以后,Microsoft 365仅仅能得到安全更新,但实际上不是这样的,因为他们新的函数,我通过更新也能使用了,而且在我完全没有察觉的前提下,插入界面也多了一个叫做加载项的东西,那里的内容一定是新的,之前我没见过,不仅仅是我没见过,我之所以判定那是新的东西,因为那个功能居然还没有翻译成中文,部分东西是英文的。这就意味着这个功能并不完全成熟,就像在Office 2016的家庭及学生版里,Power Query用的是英文界面,到了Office 365,那个东西已经是内置功能,不再是加载项了,那已经融入到了软件本身。既然微软条款上说,只对Win7系统下的Microsoft 365,进行安全更新、没有新功能,但实际上新的函数可以用,界面上也有一些不知道是什么东西的家长进怎么理解?我非常有可能相信,两个强大的Power数据处理是为他们故意屏蔽掉的,但这只是我的猜测,或许真的是我的电脑出了状况才导致那两个不能用呢。我需要回家好好验证一下。功能不能用,我把错误代码拿去搜索,得出的结果很少,而且通常都是Power BI的。数据合并这种东西如果不用Power Query,就自己写个VBA。至于Power Pivot的思路,应该能在其它更强大的数据分析软件里用,因为这可是Office 2010就可以插件使用的功能啊!

微软的作死,只会让他死得更快!

2020-09
2

恶劣的微软应答

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

上周,当我要在一个加入了模型的数据透视表里加入计算项的时候,发现那个东西灰色,隐隐约约之中我记得加入了模型的数据透视表字段项不在一般透视表的位置设置。当我打开Power Pivot的时候,傻眼了,马上弹出一个框“无法在PowerPivot窗口中加载表”。理论上我源数据都应该在那里表示,但现在我完全看不到,看不到就意味着我没办法在那里继续玩,这到底是什么鬼?!你说数据过不去嘛,又不完全是,因为加入模型了的数据透视表应该能做到的基础东西我的电脑里都能实现,但高端上档次的,必须在PowerPivot里操作的东西我却完全动不了,这到底是什么情况???表打不开,从菜单看来,理论上是等于没有源数据,但这个没有又不是真的没有,有些东西还是有的,比如实际上里面有我源数据的所有字段,理论上在那里瞎折腾还是能折腾出一些东西的,虽然我没有试过。PowerPivot这个东西其实我一直没有仔细用过,因为我是在学习基于Office 2013的数据透视表里第一次见识这个的,但当时我用的是Office 2003,2003根本用不了,连插件都没有,所以我就只能靠看书和想象。我已经不记得当我用上Office 365后我有没有真的打开过PowerPivot,印象之中好像没有,我只打开过Power Query,而且用得极少。

“无法在PowerPivot窗口中加载表”会给我一个错误的详细信息,里面言简意赅地写着“签名不正确。”,外加一大堆调用的东西。因为错误写得太简要了,而且是中文,我这个经常用数据透视表的人尚且很少用Power Pivot,这意味着遇到这种情况的人更少。我试着用各种排列组合的方式去搜索答案,结果都失败,还是那句,用的人太少了。签名,到底是什么签名???

于是呢,我去找微软客服。

第一天我找的是微软的官方微信群,当我把截图发过去的时候他们硬是说我用的是Win 7,已经停止技术支持,不予回答我的问题。你丫的有病啊,我用的是Microsoft 356,是付费的服务,你们凭什么不给我支持!你们为什么根本没检查过就说签名错误是Win 7导致的,而不是Microsoft 365自己的问题!那个客服还用惊讶兼鄙视的语气反问我为什么Win 7居然能装上Microsoft 365。你丫的,我开始用Office 365的时候Microsoft 365还不存在呢!即便是微软放弃支持Win 7,但他们就没说不能在Win 7上用Microsoft 365,只说在停止支持Win 7以后软件只能接受安全更新,到2023年,才会停止所有更新。既然有更新就意味着虽然不是所有功能都一定能用,但软件的基本使用是没问题的。为了用一个操作系统下的办公软件而买一个操作系统又或者是换一台电脑,这不是脑子进水是什么?!PowerPivot这个东西,从Office 2010起就已经支持,不过那时需要手动装插件,到高端上档次的Microsoft 365你居然告诉我操作系统原因所以软件不支持,不支持你卖东西的时候不提醒我啊!我发现东西用不上,要不你给我退款?!这种霸王条款跟单位的垃圾管理系统一定得用IE,而且是低端的IE才能用一个样。国内开发的软件必须配合低端的东西才能用,卖软件的公司告诉你低端的系统我们不支持。支持不支持这种东西,纯粹是懒惰的借口,你们能说出到底具体是什么原因导致不支持吗?有一个不支持原因的列表吗?我中了哪一条?!只要不是范围内的东西,出现状况就说版本原因不支持,太恶心了。如果是Win 7就不支持PowerPivot,我家的Win 7用同样的Microsoft 365,为啥就没有毛病?!

第二天,我再去找微软的在线客服,在线聊天是无法截图的,但我可以把错误信息一次性贴到对话框里。最后的回复是他们让工程师在1-8小时内座机和我联系,结果呢,已经过去18个小时了。

一个已经出现10年以上,并被列入常规功能的东西都不能保证正常使用,微软的死期真不远了。

2020-09
1

微软的末日?

By xrspook @ 15:25:21 归类于: 烂日记

好长一段时间我都觉得。自己把电脑和微软画上了等号。从前,台式机就意味着只有微软,无论是Dos系统还是后来的Windows系统。在我的世界里,除了Windows,就没有其它了。但显然,这是因为我知道的太少。后来我知道了,有些人会用苹果系统,还有些程序员会用各种编程语言写的各种系统。安卓也是一个系统,那是开源的,只不过通常我们都不用在台式机上面用安卓。微软几乎可以这么说。在过去几十年里,一直称霸着电脑系统。不仅仅是操作系统,还有里面的办公软件Office。一直以来,Windows是一回事,Office是另一回事。直到今年,微软把他们的Office 365,改名为了Microsoft 365。一开始我不觉得这到底有什么问题,但昨天我才暗暗地觉得这很不妥。

或许有一天,大家都不需要买系统了,系统是一个全家桶,你所有的资料都通过云的方式存储在上面。你可以通过任何一个机器上能获取信息,也可以进行各种操作。过去对我们来说,一个台式机就是一个世界,未来可能会被颠覆,因为到那个时候,台式机也好,其它智能设备也好,不过是一个获取信息的终端而已。终端都是一个样的,有一定的存储能力,但只是暂时。所以到那个时候,根本就不需要离线的操作系统。那么,微软就变成了一个软件。我不知道他们是不是这么想的。现在你用盗版软件,依然可以通过操作系统做其他事情,但是到了那个时代。所有人的东西都通过某个账号存储在云里面,如果你不给钱,或者你违反了某些规定,你就没办法访问到你自己的东西。那个时候,根本无所谓私隐,东西放在那里,那些人会跟你说,那是绝密资料,加了多少个密钥,但实际上,不允许你访问的时候,你没有任何办法;某些人要获得又或者销毁你资料的时候。你也毫无办法。

在单机就是一个世界的时代,自己的电脑就是一个宝库,没有互联网,所有东西都在上面。情况就像从前的人有钱,家里肯定会有个保险箱,甚至地下藏宝室之类的东西。我现在没必要这么干。如果谁有钱的话,会把钱放在某个银行又或者某些银行里,又或者他们在某个银行里还有一个非常高级的私人定制保险库。有钱人会不会担心某一天钱不在自己身边,银行会冻结了自己的资金,又或者你的资金会因为某些原因,银行不得不把它交给某些人呢?情况就像美国强行拿走伊朗在卢森堡银行账号上的钱。

Windows这东西,一代比一代厉害,但到Win10以后,其实,我并没有感觉有多么的牛逼,反而是各种bug会层出不穷。一些低端弱智的东西,居然也会出现,这么多年来,之前的系统从来没有这般水过。大概因为从前微软的操作系统就是世界之巅,而现在,其他操作系统已经崛起,甚至有超越之势,所以,最牛逼的人可能已经不在微软了,所以,临时工犯下任何错误都是很正常的。

我觉得可能某一天,中国人会极少,甚至不用微软的操作系统了。首先可能是因为他们的流氓条款,我们不能接受,其次是因为其它系统已经比他们做得更好,没必要吊死在微软这棵树上。之前我从来没有试过有这种感觉,但今天,不知道为什么我的这个念头非常强烈。

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