最近新冠疫情的发展形势十分严峻,感觉新冠病毒已经出了六神装在大杀特杀啦有木有!!!(´⊙ω⊙`)!
本渣近日也是只能躲在家里瑟瑟发抖,不是必要根本不出门,感觉都要发霉啦~,在家里闲着也是闲着,就萌生了一个做一个每天自动更新疫情情况的小东西玩玩的想法。那么本次的小分享就是与大家探讨一下使用EXCEL去做一个每天自动更新疫情发展情况的方法。
首先,本渣在百度上先搜了一下关于疫情的数据来源,发现绝大部分都是实时的,并没有历史数据。没关系,在GitHub上搜搜,果然发现了有大侠做好的开源API~~٩(๑òωó๑)۶。
这是大侠的主页:https://lab.isaaclin.cn/nCoV/zh
本次使用的API及参数则是以下这个:https://lab.isaaclin.cn/nCoV/api/area?latest=0
首先我们需要使用EXCEL里的POWERQUERY组件(EXCEL版本需要在2016或以上)获取数据源,在数据选项卡里的获取数据——自其他源——自网站里输入疫情数据的API:
将API导入后EXCEL会加载API的数据进入POWERQUERY查询编辑器,通过POWERQUERY简单处理后可以看到自1月24日起每日每个国家与省份的疫情数据
在查询编辑器里导入数据后把每一行的数据格式都分别设置好,注意时间戳与数字类的字段需要设置成整数格式方便之后的公式计算哦。在观察数据结构的时候本渣发现,数据源并不是按日期每天定时更新一次,而是一天里会更新好几次,不能直接依据日期进行汇总。因此本渣把整个数据添加到了数据模型使用POWERPIVOT进行了链接回表的处理来得到每天更新的最晚时间O.O。PS(这一步有很多其他方法能做,例如POWERQUERY的分组,不过本渣比较熟悉POWERPIVOT,因此就直接在POWERPIVOT上建模了。。。(╯-_-)╯╧╧)
添加一个自定义列把UNIX时间戳格式转换成标准的日期格式,并添加自己需要的度量值,本渣添加的度量值有累计确诊,累计死亡,累计治愈,死亡率和治愈率。
在POWERPIVOT里时间戳转日期公式:
=FORMAT(("时间戳"/1000+8*3600)/86400+70*365+19,"yyyy-mm-dd")
先使用SUMMARIZE函数将数据模型以日期、洲、国家、省份的顺序进行组合,再把组合完成的表格以链接表的形式重新添加进POWERPIVOT,这样子数据疫情的链接回表就做好了,最后通过数据透视表与图的方式把疫情展示出来,效果如下:
整个建模做好以后,我们每天只需要点击EXCEL中数据选项卡下面的刷新即能实时刷新当天的数据,无需重复进行其他操作。
本次的分享需要用到的EXCEL知识点有点多,需要POWERQUERY与POWERPIVOT的知识作为支撑建模的支撑,希望能给大家带来一些关于EXCEL功能使用上的思路。