2022-10
14

继续挣扎

By xrspook @ 8:59:29 归类于: 烂日记

又是投篮的第2天,我又没有做任何的运动,依然是坐在那里,整个晚上都把心投在Power Pivot上。但这一次我没有上一次那么好运,可以解决困扰了我很长时间的问题,整整一个晚上我都毫无收获。增长的只是我越来越不知道自己在做什么。但跟前两天相比,我没有一直都耗在那里,而是给自己划定一个底,超过那个时间我就回宿舍洗澡睡觉。在睡觉之前我拿出架子上的另外一本关于Power BI的书,之所以我说那是Power BI,因为那本书大半本都在说Power Query,有部分章节是说Power Pivot,然后是二者的融合。但话说回来,我又不能说那是Power BI,因为那本书是基于Excel而不是Power BI的。

就公式参数的复杂程度来说,我感觉PQ要比PP麻烦很多,尤其是虽然你看上去PQ的界面就只有那么几个按钮,但实际上要发挥 PQ的所有潜能,所有东西都必须在高级编辑器里面完成,尤其是一些非常高效的操作。有些结合的步骤,或许你觉得高级的步骤结合起来跟分步没什么区别,的确对一些一般操作来说,这是可以做到的,但是某些步骤必须层层堆套,而且公式里面的参数有很多的时候,让人感觉脑子就不好使了,从表到列到记录到具体数据。以前我曾经死磕过PQ,觉得非常强大,也非常烧脑。经过一堆操作以后,的确可以做到想要的效果了,但问题是其实那样的效率并不高。所以最终我没有采用PQ的方式,而是直接自己写VBA。相对于 PQ而言,我觉得VBA返倒更符合一直以来我学习其它编程语言的思路,比如说一开始接触到的C又或者后来接触到的Python。但和Python相比,VBA里面有很多默认的公式套路,但起码VBA里的公式套路还可以理解,而不像PQ那样复杂到让你觉得望而生畏。

PP让我觉得很烦恼的地方是可能它就那么几个函数,但是它的组合方式却是千变万化的。你可以用同样的代码在不同的地方放置,但效果完全不同,你也可以写完全不一样的代码实现同一个效果。当然,更多时候你想用一堆代码实现某个效果,但是别说出效果,你通常会被卡在公式审核那一步。我觉得PP让我绝望的地方在于我还没办法以它的思路分步执行,我无法预判如果我这么写的话会达到什么效果。当然这只是一个初学者的烦恼,当我把所有规则都烂熟于胸之后,我觉得这一切都不再是问题。PP我觉得是一个我必须越过去的坎。因为那跟大数据有那么一点关系,虽然这又跟大家说经常听说的那种大数据有很大区别。对我来说,几千上万条数据已经是大数据了。当这些数据经过这种盘曲折叠以后,最终的量可能是数倍甚至以次方的形式增加。我小小的脑袋瓜当然不可能预判出这种事情。

大概我现在的这种烦恼,我有一种方式能稍微缓解一点,就是放下自己手头上要解决的问题,纯粹只投入各本教材中最经典的简单案例。当我把那些都融会贯通了以后,再开始DIY我的方案。

2022-10
11

填充单价

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

工作出现了些许空余的时光,于是我赶紧继续开始看我的《DAX权威指南》。筛选上下文、行上下文这种东西实在让人非常抓狂。有些时候我是完全理解那种关系到底是什么,但实际上当用起来的时候又好像各处碰钉子。

一步步的学习DAX这没有任何问题,但学着学着自然而然我就会往自己的问题上面靠,于是心就飞走了,然后虽然已经学了100多页,但是感觉我还是找不到思路。我不知道如何在Power Pivot里面把两个日期扩充为一个日期列表。于是我就折腾了一番,这个在Power Query里实现我100%肯定是轻而易举就能做到的。以前我好像做过。支持我使用的方法是修改人家的高级例子,从前只是一步一步按部就班来。以日期扩充之后的表为基础查询模型里的计算库存不是不可以,但是翻来覆去非常耗时间。从前在PQ里计算库存,在情况不那么复杂的情况下弯曲折叠各种填充已经很耗费人力物力,而这种库存的计算实际上在DAX里面是秒杀完成的。这也就是为什么当年我放弃了继续走PQ这条路计算库存以及库存费用。在PP里,计算库存其实我早就已经搞出来了,虽然实际上那个筛选条件我至今都没搞懂。现在的问题是那个阶梯费用表达把我难住了。从简单的几个时间区间生成一堆连续日期单价对PQ来说实在太简单了,但为什么这种事情用DAX去表达却那么的难呢?所以实际上我觉得这个问题跟库存的计算一样,我还没想到那个方法该如何表达,也就是说理论上要做到这个也是很容易的。

如果我的单价用PQ实现,我的库存用PP去实现,最终我只需要很笨地把两边的数复制一下,然后在另外一个地方做一个很弱智的合并,显然这样也能曲线救国,以我现在的知识储备可以这般做到,但显然这不是我想要的效果。这个问题在近期我又开始纠结之前,已经困扰了我一年有多。

虽然不知道最后的那个灵感什么时候才会到来?但我知道那一定会到的。

就在这篇东西口述出来后,那个晚上我什么都没干,没有运动,也没做其它别的,一心就扑在PP里实现单价这个问题上。接近晚上10点,这个问题好像终于有了破解的苗头。用的是LASTNONBLANK函数,网上教程用的是LASTNONBLANKVALUE,但PP里没有这个东西,为什么呢?Power BI里面有但Excel里没有???

LASTNONBLANK ( <列名>, <表达式> ):为表的每行计值表达式,返回结果不为空的最后一个列值。

LASTNONBLANKVALUE ( <列名>, <表达式> ):为表的每行计值表达式,返回结果不为空的最后一个列值所对应的表达式的值。虽然被归为迭代函数,但与 LASTNONBLANK 不同的是,LASTNONBLANKVALUE 的<表达式>参数在筛选上下文中计值,这是由于存在一个隐式的 CALCULATE 将行上下文进行了转换。

https://www.powerbigeek.com/dax-functions-lastnonblank/?f=1
https://www.powerbigeek.com/dax-functions-lastnonblankvalue/?f=1

以我现在的水平我是搞不懂他俩到底什么情况,但Excel里没有我也没办法,把LASTNONBLANKVALUE的东西转化为适用于LASTNONBLANK,这又折腾了好些时间。其实这个东西说白了就是为了向下填充,如果这个地方空白,就用这一列对上一个有数的那个东西向下填充。当然,其实这个东西一开始的意图不是填充,是为了找到最后一条记录,这种东西要准确,通常默认跟时间关联。

虽然道路是曲折的,但我总算在单价这个问题上发现了我觉得应该很简单的实现方式。

2022-09
30

Power Pivot上瘾

By xrspook @ 8:52:56 归类于: 烂日记

对上一次晚上10点之前单位就结束所有业务,晚上11点之前我已经完成了所有事已经不知道是多久以前的事了。晚上11的时候我一个人坐在宿舍在书桌前,关了空调,开着风扇,一边等头发干,一边在看Power系列的书。通常在那个时候我都不会看技术类的书,因为非常有可能越看越精神,然后我就睡不着了。绝大多数情况下,在那个场合,我会看小说,但不知道为什么,前天晚上我选择了拿下一本已经被我放在书架上冷落好久的Power纸质书。那本书里面主要是说Excel里面的Power Query和Power Pivot。一本书要讲好这两个强大的东西,尤其是Power Query,显然不可能讲得那么透彻,但实际上我只是想看PP。办公室我正在看的那本叫《DAX权威指南》,那本书跟我放在宿舍里那本薄薄的2合1来说高端太多了,但是权威指南准确来说是一本翻译的书,我觉得原书的作者以及翻译的人都很用心,所以看上去并没有感觉太别扭,但因为里面所引用的事例全部都是英文的。示例里面用的是英文,但实际上翻译的时候有些地方用英文,有些地方用中文,虽然都很简单,翻来覆去都那几个单词,但是你还是得有一些反应时间,但是宿舍的那本书,完全是中国人写的,里面以一问一答的方式开展教学。一方面我觉得这挺弱智的,另一方面我觉得因为他们的软件以及他们的示例都是基于中文,这样的话我就可以快速阅读很多东西,因为这不是一本翻译的书,所以在某些表述上我会觉得比较正常。如果某一天我也要去教学,我也会用一些比较通俗的话来解释那些比较深奥的东西,但我又明白那些看上去很深奥的东西,实际上是术语,所以正规翻译得那样,但有些时候只要把问题讲清楚,让不懂的人搞懂就可以了。机器有机器的语言,但要把某些东西教会别人,还是得说人话。最高境界当然是用通俗的语言把机器的思路讲清楚讲明白,但显然这不是一件容易的事。

还有一件很尴尬的事,就是《DAX权威指南》非常牛逼,书本配套了大量素材,但问题是学习的时候我应该用什么软件呢?我应该怎么使用那些素材呢?如果是Excel教程,他们会告诉你这本书是基于什么版本的Excel,然后你找那个版本就好了,但是这个东西你可以在Excel的PP里运行,当然了,只有某些版本的Excel才自带这个东西,有些即便自带了,却有一些模棱两可的感觉,好像部分翻译了,但是又翻译得不太到位。在我印象之中,家庭学生版的Office2016有PQ,但是界面有些是中文,有些是英文,后来不知道从什么渠道我才知道理论上Office2016的家庭学生版是没有power系列的。后来当我用上了Office365就再也没有遇到过中英文对半这个情况,而且好像相对而言PQ的启动速度会更快。

Power系列的工具原生在Power BI里出现,但是除了Power BI,其实Excel里某些东西也都能用,我用的是Microsoft365,但PQ很正常,但PP会出现卡顿,当你要调试某个东西的时候,总感觉那不是一个靠谱的窗口。当高手们要在Excel里面使用PP,估计都会装个DAX studio。studio装上后写代码爽快多了,但问题测试度量值要看报表效果,根本没办法在studio里做,所以还是得把studio的代码贴到Excel里。这样显然就很不科学。PQ里有高级编辑器,你在里面敲代码就行了,既然PP也需要这种东西,为啥我就不能在某个地方敲代码呢?如果它内置了一片可以用来敲代码的编辑器的话,我也就不需要跳到studio里实现了。《DAX权威指南》可能是基于Power BI的,但实际上没有明确指定学习这套东西你得用某个软件。光看不练会让人很迷茫,感觉自己看懂了,但实际上用的时候一团糟。

一旦上瘾了,我就完全停不下来了。办公室看,宿舍看,家里也看,幸好从前买的书够多,可以到处放一本。

2022-09
24

耗电的微信

By xrspook @ 15:14:56 归类于: 烂日记

自从用上小米CIVI1S之后,我有个癖好,就是过一段时间就看一下电池的情况。看一下降的百分比,看一下电池的温度,也看一下电量的使用情况。电池使用情况那里有显示大概每个APP的使用时长,但我觉得那个东西不太准确,所以我有时会看一下屏幕使用时间。以前我不会这么神经质,所以看到电量低到一定程度去充电。之所以这样,一开始的时候,我为的是观察这个手机的电池到底如何,后来不知不觉之间居然形成了我的习惯。

昨天我发现一个很奇怪的现象,上午充完电以后我基本上没有亮屏,除了出去做核酸开了一下健康码,吃饭的时候也打开了一下二维码。几乎可以这么说,加起来就没亮屏多少时间,但让我觉得很意外的是下午的时候再看电量,居然不到90%了,这是很不正常的。电量使用情况排第一的不是屏幕,而是微信。所以微信到底是凭什么这么活跃呢?

上班时间对我来说,微信完全可以挂掉,因为我的电脑已经登录了微信。当我用电脑登录微信的时候,手机微信默认是不提示的。从现在的情况看来,即便微信选择不提示,但是微信接收到的信息还是有很多,所以手机还是有反应的,只不过没有发出声响或震动而已。如果是这种情况导致微信很耗电的话,我该怎么办呢?难道当电脑登录微信以后,我要直接把手机的微信给退出?不知道到底有多少人是在电脑登录了微信以后,还要手机微信给提示。对一些可能不经常在电脑旁边的人来说,打开电脑微信,不过是一个同步接收文件图片信息等的方法。但是对我这种人来说,打开了电脑的微信,手机微信完全可以拜拜。所以是不是可以有这么一个选项?当我登录了电脑微信以后,手机微信可以进入一个休眠状态当我主动点开,会一次性同步期间所有信息。否则就只是处在一个休眠状态。如果微信可以做到这样的话,我感觉手机的耗电量可以大幅下降。对我这种一天到晚都坐在电脑旁边,即便不在电脑旁边,大概也只是上个厕所的人来说,绝对是个福音。但我也明白到对大多数人来说,微信是一个随身的提醒器,总的来说,使用微信绝大多数情况下都只是在智能手机或者平板上操作。电脑微信只是他们的一个辅助手段。安卓手机这个怪物如果不把微信锁在后台的话。不知道什么时候它就会自动清内存,即便不自动清内存,我也习惯了过一段时间就扫一下,也就是手动清内存。如果那样的话,如果我不自启动微信,同时也不锁定微信的话,下次打开微信我就得等待地球了。所以我感觉最佳的方式还是微信给我一个暂停的按钮,电脑登录了以后,我可以暂停手机微信的接收功能,然后我可以手动选一个同步功能,这样的话就等于是我早上8点登录了电脑微信,两个小时都在电脑上操作,那么到10点的时候,我可以打开手机微信,点一下同步,把信息都自动搞过去了,关闭手机,继续搞电脑。休眠状态的手机的微信就只是躺在那里而已,除非是被某些特殊的东西唤醒,比如语音或者视频通话。唤醒是一回事,后台一直在工作,又是另外一回事,其实我想的仅仅是让微信不要自动后台工作而已,但是它可以挂在后台。

不知不觉之中,微信已经成为我们的羁绊了,叹气。

2022-09
20

通常待机2天

By xrspook @ 9:27:38 归类于: 烂日记

不知不觉之中,我的小米civi 1S的续航时间,现在通常都达到了两天或者以上。最牛逼的时候,好像是60个小时。即便在接近60个小时的时候,我的手机剩余电量也有20%以上,这并不说明这台手机的续航有多么的牛逼,而是我控制自己尽量不把注意力放在手机上,有可能是把注意力放在电脑上、电视上、kindle上又或者纸质书上。再或者这些东西都不是,我把那用在运动上面。通常情况下,如果我没有疯狂消消乐一两个小时,48小时以上的续航时间是比较正常的。当我去充电的时候,通常电量会剩下30%以上,如果有些时候在买买买的地方看得比较多,有可能剩余电量会接近20%,但总的来说30%以上的几率多一点。用了两天还剩下30%的电量,是因为大概这两天里面我的累计亮屏时间不超过三小时。几乎可以这么说,要续航两天以上的话,亮屏时间超过4个小时,几乎是奇迹。但是如果一天一充,一天之内手机亮屏时间超过5个小时这是一点问题都没有的。我也搞不懂这套手机为什么会这样。从电量排行上看来,对我来说,绝大多数时候电量消耗的最大的是屏幕,然后是微信,接下来可能是淘宝也可能是支付宝。所以可想而知,即便我不买买买,支付宝个人感觉一天只是做了一点小任务而已,实际上耗电量也是挺大的,为什么支付宝我感觉没用多长时间,而且也没耗费多少流量,却耗费了我这么多电量呢?的确值得我们去深思。让我觉得挺惊讶的是,当我开野小兽又或者是语记的时候,通常都意味着我肯定是在亮屏,因为不亮屏的话,这两个东西是完全没办法操作的,但让人出乎意料的是,即便语记每天都亮屏10分钟以上,野小兽每天亮屏15分钟以上,但在电量消耗方面这两个app的排行通常会5位开外甚至开到10位以后,所以实际上app亮屏其实不怎么耗电,我感觉主要跟网络使用而且有没有经常的刷新有关。微信感觉没干什么,却会消耗很多电量,淘宝这个东西,无论是电量还是流量都是变态大户。所以我感觉近些时间我在努力的控制住自己的购买欲。因为购买欲控制住了,所以也就不会有手机沉迷,同时也不需要经常充电了。

我发现在家里好像耗电要比在单位慢。在家里充电,我只是用以前18W的充电器和,与这台手机标配的55W充电器我放在了单位,用55W充电的话,如果在剩下30%以上电量的前提下,不到40分钟就能充满。但同样的剩余电量,如果在家里用18W的充电器,那必须得一个小时以上。不知道是不是我的错觉,我感觉用慢充的充电器充电以后电量消耗会慢一些,或者根本没有这回事,是因为我在单位的时候手机信号很差,WiFi信号要经常切换,于是就导致我在这些无聊的东西上面耗费很多电量。

手机使用两天,每次充电只需要40分钟,这个感觉还是挺爽的。

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