回想起自己对Power Query里(x)的体悟过程,可能针对一个知识点“反复”地进行一些类似的练习,会非常有利于增加对这个知识点的理解。
因此,本次我们就拿一个例子进行改改改的练习,来体悟(x)的工作原理!
首先,我们做个简单的操作,比如对下面数据的“公众号”列的内容全部转换为大写:
此时,生成的步骤公式如下图所示:
前面的文章《关于(x)的又一种简化写法》中,我们说过,这是(x)=>Text.Upper(x)的简化写法。
现在,我们重新来认识一下这个参数的含义:Table.TransformColumns是将“公众号”这一列每行的当前值,给这个参数准备好,然后经过这个参数的加工(如这里的转换为大写Text.Upper),然后返回每个值加工后的结果。
而这个加工,是可以完全按照自己的需要进行的。
比如,我们如果要的不是将这个值转换为大写,而是小写,很简单:
同样的理解,Table.TransformColumns是将“公众号”这一列每行的当前值准备好,传递给这个参数,然后经过这个参数的加工(转换为小写Text.Lower),然后返回对值加工后的结果。
或者我们再改动大一点儿,我们只提取其中的英文内容:
再改大一点儿,不管传进来的是啥,全部返回结果“Power BI”
也就是说,虽然Table.TransformColumns函数传递了公众号的内容,但是,怎么处理,是我的事,你传给我的数据,我可以用,也可以不用,对不对?
再改一下,比如,把姓名中的“大海”替换为“黄海剑”,实际上,我们完全可以用Table.TransformColmns来实现,而不用Table.ReplaceValue替换的方法(当然,Table.ReplaceValue有它强大的地方,这个我们后面再讲):
你还可以按需要进行更加复杂的改造,只要你掌握了这个参数的本质:就是将某列每一行的当前值准备好,传递给这个参数,然后按需要进行加工,然后返回每一个值加工后的结果。至于怎么加工,你自己按需要进行——关键是你要知道传递了什么数据进来,想要加工成什么样子。
墙裂建议大家跟着文章的步骤操作,只有自己动手,才会真正触动理解,而不只是看着都懂的感觉。