随着关注Power Query的人越来越多,很多人发现用Power Query处理一些比较复杂的问题的时候,步骤比较多,但胜在分成多个步骤之后,操作起来就比较简单了——这也是我大力推荐普通用户去使用Power Query的原因。
当然,随着对Power Query的深入学习和对M语言及函数的熟悉,我们不一定要追求大部分问题的复杂的一步解法,但是,我们仍然可以在熟练运用常用的函数时,使问题的解决过程得以极大简化。
比如今天看到的一个问题——将公式中星号(*)前的数字取出来进行求和,如下图所示:
这个问题如果分步骤来解,大致如下:
Step 01重复一列出来用于分列
Step 02用“ ”号分列
Step 03提取分隔符(*)之前的文本
Step 04分组求和
从这里面可以看出,通过几个简单的步骤,你就可以实现原来在Excel中很难实现的问题,而且可以随着数据变化而一键刷新。
【讲一步解法前先用广告做个分割线】
那么,如果我不想用那么的操作步骤,能不能一步搞定呢?当然是可以的,而且公式也不是很复杂,如下所示:
整个公式的思路比较明确:
- 按 号进行分列(Text.Split)
- 通过List.Transform函数对分列出来的每一项内容按*号分列(Text.Split)并取出分列后的第一({0})个值,同时,由于分列后的值是文本,所以要通过Number.From函数转为数值
- 通过List.Sum函数进行求和
难吗?熟练后当然不难,但我个人觉得,对于大多数普通用户来说,这个比起用Excel函数或VBA应该要好一点儿——再说,即使不用函数一步搞定,仍然可以用多几个步骤嘛。
那么,你更喜欢用什么呢?欢迎留言讨论,并且说说您的感受?