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语言打败了我。

提前致谢。

  1. 将您的Web.Contents()请求转换为函数:

     let myFunct = ( param as date ) => let x = Web.Contents(.... & Date.ToText(date) & ....) in x in myFunct 
  2. 引用你的数据请求函数从一个新的查询,包括你需要的任何转换(在这种情况下,JSON.Document,表扩展,删除多余的数据。随意删除所有额外的数据在这里,包括只包含标签“价值” 。

  3. (假设你的域值表已经存在)添加一个类似的自定义列

     =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]