excel表格_excel函数公式大全_execl从入门到精通
Power Query中列名是当天日期的时,导致数据抓取失败的处理办法2024-03-05 18:44:42
在网络抓取的过程中,经常有这种情况:表列的名字是用当天的日期来命名的,当我们对表列进行操作时,就要引用这个日期,如果是单次抓取没什么大问题,但是要每天更新数据时,就会报错。
要解决这个问题也不是很难,就是要把列名与日期联动起来,需要用到日期时间函数:
Date.ToText:日期转为文本,有点类似Excel中的Text函数,或者是DAX中的FormatDateTime.Date:将日期时间转换成日期DateTime.LocalNow:给出本地时间,相当于Excel函数中的Now函数#duration:时间间隔步骤一:正常抓取
使用从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=d1&" 单位净值", a2=d1&" 累计净值", a3=d2&" 单位净值", a4=d2&" 累计净值",日期后面还有文字,中间用连字符连接起来就可以了。
最后一步是替换列标题,用a1、a2、a3、a4替换掉具体日期的列名称:
这样这个抓取函数就制作好了
引用
建立空查询,直接引用制作好的抓取函数就可以了:
更多Power Query知识请订阅专栏:
标签: excel如何抓取最近日期数据