2022-10
15

休假期间的烦恼

By xrspook @ 20:08:42 归类于: 烂日记

我的手机依赖症到底有多重呢,当我认真起来,当我专注在做某事的时候,几乎可以说我没有任何的依赖症。某次我发现如果我登录了PC微信,但是手机微信却一直没有登出的话,不知道为什么在电池电量方面微信会消耗很大,甚至超过了显示屏,这意味着我的电量不是因为我主动操作手机消耗的,而是因为微信后台在不断交互数据。于是我就直接主动地把微信踢出局了。上班时间,只要我坐在电脑旁边,我就把微信关掉,这样的话一天下来就能省下很多因为微信数据交互而导致的电量耗费。或许你会说为什么我直接不关掉手机的WiFi呢?因为有些时候我还是要偶尔用一下手机的,比如说用支付宝喂个鸡,又或者去淘宝打一下卡,但是相对微信一天到晚都挂着,操作那些的时间很短。正常情况下都很短,一两分钟之内就能完事,当然也不排除有些时候会在上面摸鱼。

微信是一个很作死的存在,因为那个东西让我们变得任何时候都在工作,没有工作时间和非工作时间,没有休息日跟非休息日,比如周五,理论上我休假了,所以我人不在单位,我回家了,但问题是从早上8点多开始微信就响个不停,全部都是跟单位相关的东西。几乎可以这么说,如果我的微信响起的话。95%以上都是因为单位,余下了5%是我妈。之所以工作日上班时间微信的交互量会这么大是因为各个群都在那里噼里啪啦的发相关工作的信息,不仅仅是文字的,可能还有图片的,语音的,又或者是各种链接。除了单位的群会不断地有消息涌入以外,公众号也有很多消息,但是相对于单位的那些消息来说,公众号上面的算不怎么占地方了,因为如果不打开的话,那就只是个标题图片以及文字链接。

休息的时候不断有单位的事情打搅,有些事情还是你必须手边有电脑才能完成的,这就让人很不爽。所以当我的同事说为什么你有年休假,却不休,我可以休吗?我越是不在的时候,越是有这种事情往我身上靠,一点办法都没有。经常会发生的是,我在单位上班,但一天下来没有多少人找我。也没有多少必须马上用电脑解决的问题,但是当我休假的时候,这些东西就扑面而来,这到底是为什么?简单来说就是越怕鬼就越见鬼。很多玩意,如果我在电脑边,如果我正常上班,那就只是几分钟的事情而已,那是轻而易举的就能做到,但如果我在休假,尤其是我在外面。得用手机流量,但电话信号又不太好。外加我身边根本就没有笔记本。那些举手就能完成的事情就会变得非常的复杂。遇到这种事情可以怎么办呢?最省事的方式就是不休假,于是这就导致了为什么去年10天的年休假到最后截止的时候,我依然没有休完。因为我根本就没有时间可以闲得出来休假。当我去休假的时候,我还得忐忑着会有这种事情发生。

当别人休假的时候你也休假,这再正常不过,但这就意味着到处都有很多人,并不是我想要的状态。当别人在上班,你在休假的时候,我觉得这种感觉才是真正的休假。但这种快乐得建立在我时刻都会有加倍麻烦的风险之上,而且这个概率还不低。

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
13

纠结迷茫中

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

我好像知道自己在做什么,我知道我要什么结果,但是我却好像完全没有头绪我正在做些什么。这句话看上去好像很矛盾。以前,当我用Power Pivot的时候,没有这个感觉,但是当我把《DAX权威指南》越看越多以后,我的茫然感在不断增加。这其中一个很重要的原因是他们在书里主要讲原理,虽然里也有很多例子,但并不是以实例出发。在DAX里,计值上下文是很重要的东西,其中又包括了筛选上下文以及行上下文,筛选上下文对整个模型起作用,行上下文只能迭代单表。这是两句看上去很绕的话,同样让人觉得很类似,但完全不一样的还有度量值和计算列。度量值这个东西,我个人感觉挺飘渺,在没有报表的前提下,我简直不知道该如何考究那个东西,但实际上度量值这个玩意最终无非是某些聚合。以数据透视表的逻辑去考虑,只能放在数据透视表右下角的值里面,所以归根到底那就是某个计算的东西,但是它有可能是某个文字吗?这是有可能的。但到那个时候估计就是不是求和,而是一个计数了。比如说如果你返回东西是一个表,那么估计最终你就只能顶多在外面再套一个函数计算表的行数,然后把那个结果表达出来,但显然你要的不是这个表的行数,而是要这个表本身。但是话又说回来,度量值最终理论上不应该返回这种东西。

以前我觉得计算列很简单,一般的Excel里面也经常会用到,那跟用超级表没什么区别。但是当我知道得越来越多以后,我简直不知道该如何碰那个东西了。因为好像怎么整都不对劲。之所以这样,是因为如果这只是一个Excel的表的话,我知道用什么东西能实现我的功能,但是到了PP里,所有东西都乱套了。但实际上之所以发生这种事,倒不是因为PP真的有问题,相比于度量值,我在计算列上碰到的问题少很多。但我为什么要用PP呢?因为我需要得到的那些结果是单纯的表无法给我的。从一个表查询另外一个表的数据,这个我可以做到,但是通过度量值生成的那个表,再以那个表为基础查询原始表的数据再互相结合这个又该如何做到呢?以前我觉得PP可以把很多表的各种关系联系起来。这样用很方便了。相比于从前的Excel只有用SQL连接,文件换了一个电脑行不通,因为数据库本身是存在第一台电脑的某个地方。

大概这是学习必然会经历的某个境界吧。当我扛过了这个烦恼,我就能重获新生。但在此之前,我不知道我还得挣扎多长时间,还有一个就是实际上我是不是不应该从那本《DAX权威指南》开始看起呢?我应该先找一些比较低端说人话的教程,慢慢去让自己接受这个体系?

学习过好几门计算机语言,也学习过不少理工科的东西,我觉得学习DAX是我这辈子以来学得最纠结迷茫的。

2022-10
12

换新鞋

By xrspook @ 8:25:14 归类于: 烂日记

不知道为什么国庆回来那一次投篮,三分球命中率相当的糟糕。两轮100个三分都花了50分钟以上的时间,这到底是什么情况???是因为十一假期我过于放飞自我吗?我感觉自己也没做什么。只不过那几天假期我都没做过很剧烈的运动而已。用时很长除了意味着跑动很多人很累以外,另外一个更重要的因素是心死,越投越没有信心,越没有信心就越容易浪投,造成恶性循环。第一轮三分的时候,我感觉挺糟糕的,估计要花50多分钟,但没想到都快用了60分钟了。第二轮的时候我感觉比第一轮要好一点点,估计花40多分钟,但实际上真的只比第1轮好一点点,用了55分钟。

气温和湿度已经下降,也没有什么可抱怨,唯一可以抱怨的就是鞋子,那是一双天越的飞织运动鞋。一开始的时候还不那么明显,当鞋子穿旧了以后,开始有些松动后我不得不重新绑上鞋带。但可能因为鞋面跟鞋带的设置有点问题,我总感觉如果鞋带绑太紧,脚背会受压迫,但如果鞋带不绑紧,脚又会不断向前冲,尤其是进行投篮这种不断需要跳跃的运动的时候。当然,如果我只是投个罚球,感觉不会那么明显,因为那只要把全身的弹力调动起来基本上就可以了,但是三分球对我来说就必须得加上跳跃。一开始穿那双鞋的时候,我直接把鞋带抽掉,因为感觉怎么办绑都不对。鞋面的张力已经可以跟我的脚贴合。但后来我发现,投篮的时候脚趾会不断地往前顶。倒不是因为脚趾头踢到了鞋头,而是因为大脚趾上方的压迫越来越明显。为什么会这样呢?如果我换一双薄一点的鞋垫,会不会好一点呢?还是说之所以会发生这种事,是因为这双鞋我买小了,如果买大一个码就不会有这种问题?之前我从来没有买过一体式鞋袜类型的飞织运动鞋。之前买过的New Balance跟Nike都有一点飞织的味道,但是那种飞织依然要靠鞋带串联起来,而不是纯鞋套。那双鞋我感觉挺奇怪的,如果不运动日常穿,坐下来的时候,尤其是水分不断往下堆积的时候,你会感觉到脚被压迫,但是运动的时候却没有了那种感觉。穿那双鞋打羽毛球或者跑步一点问题没有,尤其是用来跑步,但是用来投篮那种脚趾上方的压迫实在让我感觉非常困扰。穿过这么多年的鞋,好像我从来没有遇到过这种事情。我遇到过鞋子太窄,所以总感觉小脚趾被摩擦,当我穿帆布鞋的时候,无论什么牌子都会这样。我的脚型和帆布鞋的鞋型决定了这种事必然会发生。小时候还在长身体的时候,脚在不断变大,所以总会遇到顶指的情况。我知道鞋太小,脚趾容易顶到前面是什么感觉,但我从来没有遇到过。鞋子上方压力大这种情况。大概是因为自从小学高年级以后,我基本都只穿绑鞋带的鞋,几乎不会穿一脚蹬的鞋。现在单位用来平时通勤的鞋的确我可以用一脚蹬的方式穿脱,但那只是因为我把鞋带弄得很松而已。

投篮很糟糕,我就把问题丢给了鞋子。第2天我就赶紧去看鞋子,第3天早上新的鞋子送到了。第3天晚上我又去投了一次篮,效果惊人。两轮三分球,第一轮用了47分钟,第二轮用了38分钟。虽然穿的是一双新鞋,但是我却完全没有感觉到任何不适。看来打篮球这种运动还是得穿篮球鞋。我的脚的大小根本买不到成人的篮球鞋。因为女性的篮球鞋非常的少,即便有,只会有两种情况,一个是很专业,但价格很高,另外一个是价格合适,但那只是潮鞋。所以最终我选择了一双特步的儿童篮球鞋,而且还是男童的,因为女童的遭遇跟成年女性没区别,可选择的东西少之又少。

在这种几乎被中国市场忽略不计的篮球运动里。中国的女子篮球队现在排名世界第二。

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,这又折腾了好些时间。其实这个东西说白了就是为了向下填充,如果这个地方空白,就用这一列对上一个有数的那个东西向下填充。当然,其实这个东西一开始的意图不是填充,是为了找到最后一条记录,这种东西要准确,通常默认跟时间关联。

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

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