随着关注Power Query的人越来越多,很多人发现用Power Query处理一些比较复杂的问题的时候,步骤比较多,但胜在分成多个步骤之后,操作起来就比较简单了——这也是我大力推荐普通用户去使用Power Query的原因。

       当然,随着对Power Query的深入学习和对M语言及函数的熟悉,我们不一定要追求大部分问题的复杂的一步解法,但是,我们仍然可以在熟练运用常用的函数时,使问题的解决过程得以极大简化。

       比如今天看到的一个问题——将公式中星号(*)前的数字取出来进行求和,如下图所示:

Power Query之所以好用,是因为老菜咸宜……_普通用户

       这个问题如果分步骤来解,大致如下:

Step 01重复一列出来用于分列

Power Query之所以好用,是因为老菜咸宜……_普通用户_02

Step 02用“+”号分列

Power Query之所以好用,是因为老菜咸宜……_数据_03

Step 03提取分隔符(*)之前的文本

Power Query之所以好用,是因为老菜咸宜……_分隔符_04

Step 04分组求和

Power Query之所以好用,是因为老菜咸宜……_普通用户_05

       从这里面可以看出,通过几个简单的步骤,你就可以实现原来在Excel中很难实现的问题,而且可以随着数据变化而一键刷新。

【讲一步解法前先用广告做个分割线】

       那么,如果我不想用那么的操作步骤,能不能一步搞定呢?当然是可以的,而且公式也不是很复杂,如下所示:

Power Query之所以好用,是因为老菜咸宜……_普通用户_06

      整个公式的思路比较明确:

  1. 按+号进行分列(Text.Split)

  2. 通过List.Transform函数对分列出来的每一项内容按*号分列(Text.Split)并取出分列后的第一({0})个值,同时,由于分列后的值是文本,所以要通过Number.From函数转为数值

  3. 通过List.Sum函数进行求和

      难吗?熟练后当然不难,但我个人觉得,对于大多数普通用户来说,这个比起用Excel函数或VBA应该要好一点儿——再说,即使不用函数一步搞定,仍然可以用多几个步骤嘛。

       那么,你更喜欢用什么呢?欢迎留言讨论,并且说说您的感受?