2020-09
16

迷上Power Query

By xrspook @ 8:50:36 归类于: 烂日记

从完全不用Power Query到天天都用那个东西,我感觉这实在太不可思议了。这种变化仅仅发生在一周之内。一周前我还在纠结,为什么我的Microsoft 365用不了Power Pivot和Power Query。自从我重新能用PP以后,我就在不断地探索,但是平时我处理的东西已经没什么可探索的了,因为那都是用了几年的成熟方案。我觉得已经很顺畅了。如果要再高效一点,就是把所有东西放进数据库,但我又不想真那样。并不是说我的确做不了,而是我还是想把这些东西用普通的office软件解决,毕竟实在说不准以后会怎样。会不会某一天我不续费365,又或者是我可以这么操作,但是和我搭档的人无法接受我的高端。如果我只是把软件交给他们用,这对他们来说学不到什么东西,他们只是用软件。当然这对我来说是很有好处的,因为无论是软件的使用还是软件的开发,我都了如指掌。这也正是我一直都很着迷的事。我不仅仅喜欢研究某一个部分,从某一个部分开始,我会快乐地发散开去,无论是纵向的还是横向的,最后全流程我都熟悉了。大概到了那个时候,我会换另一种东西开玩。

说回PQ这个东西。其实几年之前我已经听说这个强大的存在。Office 2003有个MS Query,但那个东西跟PQ其实是两回事,MS Query更类似于数据库的界面,PQ我觉得应该是Power BI的一个组成部分。Power BI除了PQ以外,还有Power Pivot和Power View。说是这么说,实际上我没用过Power BI。PV这个东西非常强大,动态展示数据,五颜六色,各种花式,但问题是,即便我能把那些东西放在网上,当我要交作业的时候,领导还是比较喜欢长篇大论。其实我更倾向于做个PPT,然后由我上去讲我的想法,而不只是写一篇纸上静态的东西说明问题。

PQ让我着迷的首先是逆透视。逆透视在从前的教学里,唯有通过数据透视表高级处理,现在貌似我已经不记得应该怎么用了,但是PQ非常简单,没有做不到,只有你想不到。二维表变一为表是秒杀的事。既然可以逆透视,当然也可以透视,所以你也可以把一维表变成二维的,为什么会有这种需要呢?之前我也不觉得要这么干,但昨天论坛里某个网友还真提出了这样的要求。他要合并两个表的数据,其中一个表的某两列得先进行透视处理。为什么会这么折腾呢?从原始数据看来,我不觉得他的表有什么问题。如果是我设计的原始表格,也就那样了。最终,他想做到的效果也很正常,因为那一大堆的数据,最后要得到的,其实也就是为了看那些东西。一开始,我想用PP连接两个表。结果发现连不上,说那不是唯一的ID,我有点理解为什么会连不上,因为实际上两个表除了某列数据有共同点以外,其他东西完全不相干,但是PQ却可以把他们用接近变态的方式粘合起来。从最后组成的大表结构看来,的确很乱来,但是要的不就是最后的数据吗?整合之后,一点问题都没有,当然,如果你要筛选两个表格,关联部分以外的字段肯定会出状况,而且这个状况是无法避免的,因为那些根本是不共有的信息。

我对PQ有好感的另外一个原因是那个东西有高级编辑器这种神奇之物。那种感觉就像PQ是一个可视化的网页制作软件,而它的高级编辑器就像是源代码。路人甲玩的是可视化,高手操控的是源代码。PQ的源代码用的是M语言。这是一种介乎于函数和编程语言之间的东西。能玩好这个的人没多少,能玩好这个的人绝对会让别人觉得是个神。数据的整理变成弹指间的东西,非常的伟大。几句代码就能解决平时我们只能靠努力,甚至非常努力都仍然解决不了的问题。

是网友们的问题,让我的脑洞又大了。

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的标配。

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

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
4

微软,你可以去死了

By xrspook @ 12:44:49 归类于: 烂日记

首先清理的垃圾、打补丁,接着整碎硬盘,然后连注册表都改了。试过单机修复,没有效果,于是连接修复。悲剧发生了。Microsoft 365弹出一个无法安装软件的提示,那个东西没有退路,只有一个关闭按钮。关了以后。程序里的Microsoft 365就消失了,所有Office文件变白了。最后弹出来的那个英文界面仅仅委婉地说这个软件需要更高级的Windows系统。我明明是中文版的Microsoft 365,却给我弹出一个纯英文的界面,什么意思?!不能装新的也就算了,在那个前提下,居然把我的旧的卸载了,这又是什么意思呢?!我明明按的是更改而不是卸载!这就是说,要不你买个Win10,在买个Win10之前,你得先买个电脑,然后这个Microsoft 365就听话了。Microsoft 365个人版是一个付费软件。我的使用期限还有1年多,他们的协议说Win7的安全更新支持到2023年,但现在当Win7非主观原因卸载掉Microsoft 365以后就再也装不上了,这到底什么意思呢?!其实,这也没有什么别的意思,你懂的。美国人想到你这里抢钱,从来都是不需要理由的。他们的协议里说但微软停止支持Win7以后,Microsoft 365将不给Win7的系统推送新功能,但不包括安全更新。他们依然有给我推送更新。软件的界面是有发生变化,虽然变化不大。软件样子的变化倒不是重点,他们的推送限定了系统,必须得Win10,否则就阉割掉一些很重要的功能,这才是重点!

昨天,当我的Office文件全部变白了以后,我脑子里也一片空白,实在不知道该怎么办了。因为一时之间肯定找不到Office 2016的key,那么我该怎么工作呢?幸好2018年底,当我开始用Office 365的时候我下载的是离线文件。荔枝软件的客服推荐我在脱机环境下安装。好不容易安装上了,虽然样子有点土。软件里的设置居然跟我被卸载之前一模一样,账号也没有登出,但是提示我需要联机激活。联机激活实际上就是需要我的账号允许这台机器跟我关联。我的账号没登出,所以这个激活很简单,但以后会不会有困难我不知道。因为现在微软停止支持IE 11了,虽然我的电脑上已经安装了Microsoft Edge。

刚重装完的时候,我试验过Power Query是可以用的,那个界面是经典的Office 2016。但过了几分钟以后,界面发生了变化,变成了Microsoft 365的样式,从那时开始,Power Query就用不了了。在联机激活之前我明明已经把Office 365的自动更新取消掉,但是那个条款写的是一些安全性能方面的更新将仍然自动进行。多么流氓的一个设置!他们的安全更新没有把一些新的函数给我,而且那些是Win7停止支持之前就已经更新了的函数。取而代之的是他们禁止了我Power Query的使用。经过这一次重装以后,我确信这个软件不是因为电脑出问题而不能用,而是被故意禁止的。至于Power Pivot,那是COM加载项,必须手动调出。这个加载项每次我都得把它调出来了,但文件关掉后,加载项又消失,无论多少次都这样。注册表我也按照他们的官方指引修改过,依然是这个模样。之后,当我要开始干活了,却发现另存为根本用不了,这是一个让人非常慌的事!文件不能另存为,那我的格式怎么转换?!想想都觉得很疯狂,但幸好这种事在我重启电脑以后解决了,另存为终于可用,每次都消失的Power,Pivot也总算出来了,而且居然可以用。对比之前的不可用和现在的可用,最大区别是错误代码里没有了签名错误。现在我觉得,大概这个签名错误指的就是Windows版本不对吧!我不知道家里的Power Query和Power Pivot还能不能用,所以大概回家之后,我得第一时间把网线拔了。然后把软件设置为停止自动更新,但即便这样,该不能用的东西他们还是不会给我用的。付费的软件,功能还不如纯粹的免费!

在经历过这个风波以后。我觉得那些漂亮的图表和高端的函数现在对我来说已经没有吸引力了。要做到那些,我完全可以用其它方式。没有系统函数,我就自己写自定义函数,搞不出高端的图表,我干脆就用高端的专业软件去做。

对别人的依赖,就是给自己挖坟。

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就可以插件使用的功能啊!

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

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