我们有一个每月更新的电子表格,用于查询来自我们服务器的一些数据。
查询网址如下所示:
http://example.com/?2016-01-31
返回的数据采用json格式,如下所示:
{"CID":"1160","date":"2016-01-31","rate":{"USD":1.22}}
我们只需要上面的1.22值,我就可以将其插入到工作表中而没有任何问题。
我的问题: 1.如何使用单元格值[包含日期]在查询中传递日期参数[2016-01-31],并在其旁边的单元格中显示结果。 2.列中有很长的日期列表,每个日期可以自动填写此查询吗? 3.当我将查询结果加载到工作表时,它总是成对加载。 [占用两个单元格,一个说"值"另一个包含值" 1.22"在我的情况下]。理想情况下,我只需要" 1.22"而不是标题,这可以删除吗? [Del赢得了工作,会给你一个"第1列和第34列;相反,或者你必须隐藏整行,这将弄乱布局]。
我知道这有很多要问,但我在最近几天尝试了大量的搜索和阅读,我不得不说M语言打败了我。
提前致谢。
答案 0 :(得分:1)
将Web.Contents()请求转换为函数:
let
myFunct = ( param as date ) => let
x = Web.Contents(.... & Date.ToText(date) & ....)
in
x
in
myFunct
从新查询中引用您的数据请求函数,包括您需要的任何转换(在本例中为JSON.Document,表扩展,删除无关数据。请在此处删除所有额外数据,包括仅包含的列包含标签'value'。
(假设您的域名表已经存在)添加一个自定义列,如
=Expand(myFunct( [someparameter] ))
编辑:回到家,进入我的书签。以下是您要查看的内容的更详细参考:http://datachix.com/2014/05/22/power-query-functions-some-scenarios/
答案 1 :(得分:0)
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]