在网络抓取的过程中,经常有这种情况:表列的名字是用当天的日期来命名的,当我们对表列进行操作时,就要引用这个日期,如果是单次抓取没什么大问题,但是要每天更新数据时,就会报错。

要解决这个问题也不是很难,就是要把列名与日期联动起来,需要用到日期时间函数:
使用从web获取数据,输入网址,提取表格,更改类型,删除不需要的列:

查询右键,创建函数:

先要做准备工作,制作会随日期变化而自动变化的列标题:
列标题是文本,首先要做出来日期的文本格式:
d1= Date.ToText(DateTime.Date(DateTime.LocalNow()),"YYYY-MM-DD"),
d2=Date.ToText(DateTime.Date(DateTime.LocalNow()-#duration(1,0,0,0)),"YYYY-MM-DD"),
一共有两个日期,当天和前一天,其中DateTime.LocalNow(),会得到日期+时间的一个值,DateTime.Date(DateTime.LocalNow())就会把这个值的日期部分保留下来,Date.ToText(DateTime.Date(DateTime.LocalNow()),"YYYY-MM-DD"),就是转换成文本的日期,格式是用短划线连接的。前一天的就减掉一天,-#duration(1,0,0,0)就是减去1天的意思。
接下来是制作4个列标题:
日期后面还有文字,中间用连字符连接起来就可以了。
最后一步是替换列标题,用a1、a2、a3、a4替换掉具体日期的列名称:

这样这个抓取函数就制作好了
建立空查询,直接引用制作好的抓取函数就可以了:

更多Power Query知识请订阅专栏:
| 留言与评论(共有 0 条评论) |