如果需要从一个地址中找出该地址所处的省份、城市,如果是结构化的地址,比如“北京市海淀区丹棱街5号”,可以通过分列或者文本函数提取出相关信息,但是如果一个特定的地址不包含城市信息,比如“中央电视台总部大楼”,这种情况下你如何自动找出所在的位置信息呢?
更进一步的,我们还想返回这些地址的经纬度信息,这种需求也很普遍,但通过简单的文本函数已无法实现。
不过还好有更强大更方便的实现方式:调用地图网站的API.
关于什么是API就不再细说,可以自行搜索相关信息,下面直接介绍PowerQuery如何调用API,并返回一个位置信息的相关维度。
各大地图网站都有可供调用的API,这里我们使用高德地图的API,首先需要申请一个key,关于如何申请,请自行百度,有了这个key以后,就可以在PQ中开始操作了。
以返回"中央电视台总部大楼"所在的城市、辖区、经纬度等信息为例,来分步操作。
1、获取数据>web,输入网址:https://restapi.amap.com/v3/geocode/geo?address=中央电视台总部大楼&output=XML&key=你申请的key
2、点击编辑进入pq编辑器中,3、逐步展开Table中的数据并删除不必要的列,就可以得到我们想要的信息,(调出来的信息很丰富,也包括国家、区号、结构化地址等信息,可以根据自己的需要来选择保留哪些列)
上面的这些步骤只是获取地址信息的sample,我们不能每查询一个地址都要操作一遍这些步骤,下面才是重点。
还记得之前介绍的自定义函数吗?(认识Power Query的自定义函数),这里就是将以上的步骤封装成一个函数,随时调用。
右键该表>创建函数,
输入一个函数名,自己随便写,不冲突就可以,我这里用location作为函数名,这样就建好了一个自定义函数location。
然后打开这个自定义函数的代码,在括号中输入参数,并将地址更改为参数,比如参数设为x,将上面步骤中的“中央电视台总部大楼”替换为参数x。然后这个自定义函数就建好了。
如果想找到上海东方明珠的位置信息,直接输入参数框并调用即可,
对于批量的地址,还可以直接通过添加列来批量调用自定义函数location,
利用PowerQuery调用API是不是很强大呢,全程没有输入一行代码,只是通过界面操作,点点鼠标,就批量获得你想要的各类地址信息。
我是采悟,PowerBI星球作者,如果你刚开始接触PowerBI,可在微信公众号后台回复"PowerBI",获取《七天入门Power BI》电子书,帮你快速提升工作效率。
如果文章对你有帮助,别忘了点赞转发哦。