做地区可视化的同学可能经常需要使用地址去查询对应的经纬度方便我们精准制图,但是很多时候我们拿到的地址信息真的是杂乱无章,使用网上的转换工具根本没法处理,今天我们就交大家如何使用Excel轻松搞定这个问题,小白你都可以搞定!
效果演示
在动画中,我们输入想查询的地址,即可得到他的完整地址信息省市县
输入:北京三里屯
结果:北京市朝阳区三里屯
是不是有点酷,有点好用
详细教程
我们要用到的工具:高德地图API+Excel-Power Query
01 | 注册高德地址API-拿的Key
1、直接百度搜索高德地图
第二个提示有API的,点击进入
注册登录进入,点击【控制台】 – 【应用管理】 – 【我的应用】-【创建新应用】
名称和类型,随便填写,新建即可
点击添加
这里申请key,也是我们的唯一身份标识,使用API基本都要这个东西
完成后,你的下面就会多出一行 ,我们要的就是这个Key,其他都不重要!
高德地图这一块就算完事了!
02 | 简单了解高德API如何使用
我们要根据模糊地址查询,就需要高德的API,然后使用PQ去发起请求!
我们通过点击 【开发支持】 -【Web服务 API】可以查看全部可用API
进来最后,第一个基本就是我们本次使用的 – 地理/逆地理编码
考勤到小白教程,直接下拉到下面 服务示例,可以点击运行测试查询结果
我们要的是示例中的API请求地址,
http://restapi.amap.com/v3/geocode/geo?address=北京市朝阳区阜通东大街6号&output=XML&key=<用户的key>
其中只有两个地方需要我们修改,一个是查询的地址信息,第二个就是Key,我们第一步已经申请,复制过来即可!
03 | 使用PQ发起请求
我们使用【数据】 – 【自网站】,输入示例中的URL并加入自己的Key,&output=XML 可以选择删除,返回JSON格式,确定!
确定后结果如下:我们要的结果在geocodes
动画演示:获取地址等信息
两次右击深化,即可得到详细地址等信息
你可以选择 到表中
生成表,【主页】 – 【关闭并上载 】加载到Excel即可!
这是我们查询默认的地址,其他地址大家可以根据实际查询需要修改即可!
关于Excel中输入直接查询,需要使用部分VBA事件知识,这里就不再赘述!
代码就一句,非常的简单!
B2单元格内容发生改变,刷新我们PQ加载的结果表即可!
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address(0, 0) = "B2" Then [b5].ListObject.QueryTable.Refresh BackgroundQuery:=False End IfEnd Sub
Excel办公实战 通过实战案例分享Excel 函数、技巧、图表、VBA、PBI等知识!你想学的,这里都有! 762篇原创内容 —
04 | 自定义函数与批量应用
简单修改一下,如果你有PQ基础看上去应该更好理解一些,没有基础的同学
稍微修改一下,通用一点,每次调用,填写x-查询内容和 自己的key即可
let // x 查询内容, key- 申请的key 源 = (x, key)=> let a = try Json.Document( Web.Contents( "http://restapi.amap.com/v3/geocode/geo?address="& x &"&key="&key) )[geocodes]{0}[formatted_address] otherwise null in #table({"查询信息","结果"},{{x,a}})in 源
这里我们就可以批量解析了,比如通过Table.AddColumn来调用此函数!