现在的疫情,大家比较关注的话题了,宅在家中的小编,决定利用所学知识,使用Excel来实时统计一下数据,正好复习一下相关知识,本文仅供学习Excel知识使用!
具体我们要做的效果大概如下:
(以下演示数据2020-01-28 新浪新闻,如有不当,请联系小编)
地址:https://news.sina.cn/zt_d/yiqing0121
一键刷新,实时获取统计数据:
确诊人数省份树形图:
确诊人数地图:
制作方法如下:
由于涉及知识比较多,这里只讲大体方法,不讲细节,具体演示文件下载地址在文末
1、使用Power Query动态获取采集新浪新闻数据
代码(看不全,左右滑动滚动条):
let
当前时间戳 = Number.IntegerDivide(Duration.TotalSeconds( DateTime.LocalNow() -#datetime(1970,1,1,8,0,0))*1000,1),
data = Json.Document(Web.Contents("https://interface.sina.cn/news/wap/fymap2020_data.d.json?"&Text.From(当前时间戳)))[data],
总数据=Table.FromRecords({[实时时间=data [cachetime],确诊=data[gntotal],疑似=data[sustotal],死亡=data[deathtotal],治愈=data[curetotal]]}),
明细数据=Table.RenameColumns(Table.FromRecords(data[list]),{{"name","省份"},{"value","确诊"},{"cureNum","治愈"},{"deathNum","死亡"}} ),
结果 = Table.RemoveColumns(明细数据,{"susNum", "city"}),
更改的类型 = Table.TransformColumnTypes(结果,{{"确诊", Int64.Type}, {"死亡", Int64.Type}, {"治愈", Int64.Type}})
in
更改的类型
2、树形图制作
3、地图制作
a、准备一份可以编辑的中国地图
b、使用公式获取填充颜色的RGB值
c、使用VBA来完成自动刷新及颜色填充
代码截图
源码:
'作者:EXCEL办公实在小易
'功能:刷新数据及地图作色
Sub 刷新()
Range("B8").ListObject.QueryTable.Refresh BackgroundQuery:=False
Call 地图作色
End Sub
Sub 地图作色()
Dim arr, i As Integer
arr = Worksheets("data").Range("a5").CurrentRegion.Value
For i = 2 To UBound(arr)
dataColor = Split(arr(i, 5), "|")
Worksheets("data").Shapes(arr(i, 1)).Fill.ForeColor.RGB = _
RGB(dataColor(0), dataColor(1), dataColor(2))
Next
End Sub
小结:首先最想说的是:武汉加油!大家出门一定要记得带口罩,既是对自己负责,也是对大家负责,不给社会添乱,有条件的可以为武汉尽自己的一份力!今天小编也是通过Excel来帮助大家及时获取最新动态,关注疫情发展,不用每次都打开网页去查找!
申明:本文数据取自新浪新闻,仅供学习Excel交流使用,恶意转载,篡改意图发布者,后果自负!