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

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

2022-10
10

补洞洞

By xrspook @ 9:06:29 归类于: 烂日记

上一次投篮之后,我就打算把袜子丢掉了,因为其中一只袜子上面已经有两个洞洞。上一次投篮的时候,其实没用多长时间,我已经感觉到自己的大脚趾已经从洞洞里伸了出去。脚趾卡在洞洞上的感觉很不好。那次我以为自己已经把袜子丢到了垃圾桶,但结果晾衣服的时候却发现原来我又把它丢进了洗衣机。既然已经洗干净了,那就再穿一次吧。下一次穿的时候已经是下一次投篮。因为上一次的经历,所以这一次在开始之前我就拿出针线把那两个洞洞缝上。一开始我只想缝可其中一个,保证大脚趾不会伸出去,但实际上用锁缝的方式缝一个洞洞用不了几分钟,而且线还有剩余,于是我把第二个洞洞也缝上。看上去不好看,但穿在脚脚上一点感觉都没有,因为我缝在外面。如果要好看一点的话,肯定要放在里面,但是袜子这种东西为啥要好看,自己穿着舒服也就可以了。如果没有缝上那两个洞洞的话,袜子我该丢掉了,但因为缝上了洞洞,所以袜子又可以穿一段时间。袜子穿到什么时候才丢掉呢?其实我也搞不懂,小时候觉得袜子很容易会穿烂,又或者会有很大股味道,但自从我开始穿毛巾底的袜子以后,要把袜子穿烂很难。现在被我整出两个洞洞的袜子的确也是有毛巾底的,但问题是我买这批袜子已经好多年了,虽然之前没拿出来穿过,但是放在那里也会老化。绝大多数情况之下,毛巾底的袜子被我嫌弃换掉最主要的原因是脚踝那里越穿越大几乎没什么弹性,于是袜子就非常容易往下滑,因为我买的那种袜子基本上都是中筒。很久以前也买过短袜,但那种东西好像我总感觉他会掉下去。一直以来我都没有买高筒的袜子,因为相对于中筒的来说,高筒的要贵一大截。

在开始投篮之前,我做的所有运动基本上都不耗袜子,起码我不需要缝合什么地方。除了脚踝那里没有了弹性以外,另外一个原因可能是脚底已经被我踩得毛巾底扁平了。我感觉脚底太硬,所以就换掉。所以简单来说,跑步跟投篮相比,跑步基本上不耗袜子,但是投篮,已经把我好几双袜子穿出了洞洞,每一次那个洞洞都是大脚趾的地方。

现在我考虑是不是要换双鞋了。因为现在去投篮穿的是飞织的鞋子。随着血液的不断涌入脚步,投篮过程中脚会发胀。因为会发生这种事,所以我的鞋带不能绑得太紧。但不绑紧鞋带脚趾又会往前冲。于是很多时候我都能明显的感觉到脚趾那个地方有压迫感。我也搞不懂为什么天越飞织的鞋子,那种设计用来跑步的的运动鞋会有这种问题。他们的这个毛病到远远不是鞋太窄了。以前我穿的那双很便宜的迪卡侬儿童篮球鞋从来没遇到这种问题。之所以不穿那个是因为那鞋子透气性太差,而且因为也放了好长一段时间,所以不断开胶。对一般的运动鞋来说,只要用好之后两个洞洞就可以把脚踝固定在鞋跟部分,但是天越飞织的鞋子好像无论如何都做不到。

我是不是要买双靠谱的鞋呢?

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