Excel Power Query – 从dynamic工作表单元格的网页值
我们有一个每月更新的电子表格,从我们的服务器查询一些数据。
查询url如下所示:
http://example.com/?2016-01-31
返回的数据是json格式,如下所示:
{"CID":"1160","date":"2016-01-31","rate":{"USD":1.22}}
我们只需要从上面的值1.22,我可以得到插入到工作表没有问题。
我的问题:1.如何使用单元格值[包含date]在查询中传递date参数[2016-01-31],并将结果显示在其旁边的单元格中。 2.列中有很长的date列表,可以在每个date自动填充这个查询吗? 3.当我将查询结果加载到工作表时,它总是成对加载。 [占用两个单元格,一个表示“Value”,另一个包含在我的例子中为“1.22”的值)。 理想情况下,我只需要“1.22”,而不是标题,这可以删除? [德尔不会工作,会给你一个“第1列”,或者你必须隐藏整个行将弄乱布局]。
我知道这是很多要问的,但是在过去的几天我尝试了很多search和阅读,我不得不说M语言打败了我。
提前致谢。
-
将您的Web.Contents()请求转换为函数:
let myFunct = ( param as date ) => let x = Web.Contents(.... & Date.ToText(date) & ....) in x in myFunct
-
引用你的数据请求函数从一个新的查询,包括你需要的任何转换(在这种情况下,JSON.Document,表扩展,删除多余的数据。随意删除所有额外的数据在这里,包括只包含标签“价值” 。
-
(假设你的域值表已经存在)添加一个类似的自定义列
=Expand(myFunct( [someparameter] ))
编辑:回家,进入我的书签。 以下是您正在寻找的更详细的参考资料: http : //datachix.com/2014/05/22/power-query-functions-some-scenarios/
对于表格 – 在获取数据和parsingJSON的位置添加列
let tt=#table( {"date"},{ {"2017-01-01"}, {"2017-01-02"}, {"2017-01-03"} }), add_col = Table.AddColumn(tt, "USD", each Json.Document(Web.Contents("http://example.com/?date="&[date]))[rate][USD]) in add_col
如果你只需要一个值
Json.Document(Web.Contents("http://example.com/?date="&YOUR_DATE_STRING))[rate][USD]