首先Power Query并不是一个专门的网抓或者爬虫工具,没有编程语言那么专业,实现的功能也比较有限,但其优势就是简单易学,且无缝对接excel,所见即所得。
网上关于网抓的资料有很多,但没有用PQ实现的,之前写过一篇《Power Query网抓案例》,今天来详细讲讲。
本文将以纯新手的角度,[......]
分类: 困难
分词词频统计
网上随便找段文字,就以Power BI官网上这段文字为例好了:
想要统计其中的词频,实现如下图的效果:
解法1:使用输入法词库
其中的难点无疑在分词了,中文不像英文可以按空格拆开分词,仅仅单靠Power Query中的功能遇到这种问题好像没法搞,因为它不知道你要按什么规则来拆,不知[......]
连续衰减问题
题目:
现有用料ABC,已知期初库存,以及连续5周每周需求的用料数,求这5周剩余的用料数。
解法:
先来捋捋思路,要求剩余用料,也就是用期初库存,减去前几周以及本周的用料。
实际上就是个累计求和,把整个表分为两部分,前2列为一部分,后5列为另一部分,那么只需要算出第二部分的累计求和,[......]
连续日期展开问题
题1:
如图,将左表的日期范围,展开为连续的日期。
在此之前,我们已经介绍过不少数字类型的展开问题,比如"1-99"展开,我们只需要先将首尾拆分,然后构建list展开即可。
{Number.From(Text.BeforeDelimiter([范围],"-"))..Number.Fro[......]
提取各指标TOP5
题目:
如图,从左表到右表,提取各指标中TOP5所对应的姓名。
解法1:
常规思路,逆透视后分组,排序并添加索引,筛选出TOP5然后展开。
let 源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content],[......]
同一属性横向展开
题目:
左表转成右表,同一[Aircraft][Model][WheelNum]依次横向排列。
解法:
先分组,表和列之间多次转换后,展开即可。
let 源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content],[......]
Power Query网抓案例
本篇为案例篇,详细步骤见《Power Query网抓详解》
1、翻页URL会变化,直接get方式提交
URL:http://quote.stockstar.com/stock/ranklist_a_3_1_1.html
此为沪深A股数据,需要抓取1-20页的所有数据。点击下一页后观察URL发现[......]
在Power Query中使用正则表达式
方法:
PQ本身没有正则,但是M语言不能我们可以借助其他语言:一种是在PBID中使用R.Execute
由R调用,另一种就是使用Web.Contents
由php调用,本文介绍后者。
php脚本如下:
如果懂环境配置的话可以保存到本地,然后localhost调用,不懂的话也没关系,我已[......]