题目:
根据关键词根,爬取淘宝所有商品数据。

思路:
关于PQ网抓,前面已介绍过几个类似的案例,点击前往,那个理解的话再做这个会比较容易。
但是抓淘宝和之前的题相比又有些特殊,因为我们知道在淘宝中搜索关键词,返回的结果肯定不止一页,我们除了要实现翻页效果,还要知道每个关键词搜索出来的结果[......]
国内首个M语言分享博客
要写得一手好代码,离不开一款顺手的编辑器。VBA有VBE,DAX有DAX Studio,而M。。。什么都没有。。。
没有怎么办?那就自己造呗~
使用Notepad++,打造一款自己专属的M语言编辑器,它可以:
①智能高亮显示

②关键字和函数智能提示

③参数智能提示

原文由张文[......]
尽管PQ非常灵活,但仍然存在一些不太方便的地方,比如文件路径为绝对路径,无法动态刷新,做好的报告发给同事后必须修改路径才能刷新。但是PQ做不到的,工作表函数也许能做到。
首先我们打开报告,新建一个sheet,先来测试一下,在任一单元格输入=CELL("filename"),返回了当前文件的动态路径[......]

如图,从左表到右表,提取各指标中TOP5所对应的姓名。
常规思路,逆透视后分组,排序并添加索引,筛选出TOP5然后展开。
let
源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content],[......]

如图,需要提取多项式中每一项中的系数,如第一行的系数为3和2,并对其求和,最终结果为5。
本题主要考察对文本信息的拆分和提取,通过多次拆分不难得到结果。
其中一个难点在于如第2行,"N150+E70"系数均为1,但拆分后得不到正确的结果,所以用try Number.F[......]
在工作中我们经常会遇到很多不规范的表格,比如这样:

一个sheet里塞了很多张格式一模一样的表,但是横向排列的,非常不便于做分析,所以需要把这些表格进行合并。如果这种独立表格的数量不多我们可以手动框选区域分别插入表格,然后用PQ追加查询,但是如果表格有很多显然不现实。
[......]
根据指定URL,提取网页中所有锚链接,即href=""中引号之间的部分。


使用Text.FromBinary和Web.Contents的组合获取目标网页的HTML源码当作文本处理,然后使用Text.PositionOf获取共有多少个分隔符,List.Tr[......]
在PQ中我们经常需要对数据进行展开,而这个动作通常只是需要点一下鼠标不需要我们写公式的,所以一般也不会注意到如何去简化。比如如下一组数据,对其先分组再展开,虽然得到的结果还是它。

先完全界面化操作,不作任何修改,看下系统自动生成的公式:
let
源 = Excel.Curren[......]

把[列4]第3行的数据替换为999,其他数据不变,数据源自拟。
本身并不是什么难题,单一个Table.ReplaceRows函数就能做到,但问题是如果列数很多需要把所有的列名都写上,太长了。利用record合并后相同字段会替换前面保留最后一个值的特性,就能简[......]

将替换区的数据,挨个按顺序替换源数据,多出的补全在下面,需保持原来的顺序。
let
待替换= Excel.CurrentWorkbook(){[Name="表2"]}[Content],
源 = Excel.CurrentWorkbo[......]