PQ上的纠结
晚上洗澡的时候我一直在想着某个Power Query的问题。某个功能我曾经试过用别的步骤去实现,但是到了最后一步的时候,发现某个东西算不出来,所以我就放弃了那个方法,文件也被我删掉了。晚上,当我遇到一个新问题的时候,我觉得用下午的那种方法才最容易实现。晚上洗澡的时候,我突然意识到,实际上下午的时候我几乎成功了,只剩下最后一步。当时我没想到,其实可以用一个以退为进。我可以做一个判断,如果if的判断等于空,就计算,如果不等于空,就是继续保留某数据。我并不知道如何修改PQ里某一列的数据,于是我的实现方法是新增一列对旧的那一列判断,然后把旧的那个删掉,新的那个重命名。这样就解决了下午我最后我没解决的问题。虽然这样做有点笨。高手一定不会这样做的,高手一定会有一些暂时我还无法参透的各种套叠解决问题。
要实现某个功能,最终我用了31行,更之前我用某个其它方法做出来的那个一样多,但后来的方法显然更容易理解。因为整个代码都是我手写出来的,命名也更加人性化。当然其实我也可以对系统自动生成的名字做修改,达到类似的颜值,但是某些自定义函数光靠系统的可视化窗口无法做到。经过这一番折腾以后,我更进一步地明白到之前我已经模仿做到的模糊查询到底做了什么操作。和之前我模仿回来的模糊查询比起来,这一次我实现的功能要麻烦一点。一开始的操作二者挺相似,模糊查询做完第1步以后,基本上就只剩下删除列和排序了,而我做的那个在完成的那一步以后,只不过是刚入门。我也不知道这一次摸索我到底是怎么折腾出来的,那显然,如果没有看见星光的M语言课程,我会继续迷糊。也正是因为第4节里说到了上下文,说到了新增列判断条件以及上下文的使用,才可以让我顺利流畅地通过第1步,也正是因为经过这一次练习,我觉得我已经略微掌握了上下文那个东西。
软件这种东西,光是看教程、听课,而不于实际操作,是没有用的,因为那个东西不会入脑。要形成条件反射,要让那些技能成为自己的东西,只有通过思考和练习。高手和低手的区别,我觉得大概在于高手的思考时间远远不需要那么长,所以他们可以有更多时间练习,而我这种低手,要在思考那里花好些时间,后来的练习当然比不上人家。基础的了练习尚且不够,就更不用说读懂练习中的异同。这种东西,在我高中的时候特别明显。高手在刷题的时候,我还在理解,至于为什么高手可以理解得那么快,至今,我都想不明白。大概这个东西不是想就能明白的。
经历过纠结以后,我觉得自己的脑洞又大了不少,在遇到问题的时候,我奇怪的思路又增加了一些。就是这些旁门左道的扩展,让我在处理正统问题上,貌似又更进了一步。