分享

用EXCEL来搞艺术之地图气泡对比

 新鲜杂谈 2022-06-08 发布于广东

地图是个好东西,特别的直观。

我记忆不好,背课文简直就是噩梦,但我也有万中无一的牛逼,比如通背元素周期表,比如全球的国家、半岛、岛屿、河流、山脉、城市大多数就记得。每当说起一个地方,大脑里就出现一个地球,逐渐拉近直至这个地方的准确位置。不能太谦虚,这很牛逼。

也曾经因为奥赛需要去到西南师范大学集训,那时候还没有各种电子地图,没去过大城市的我一手地图、一手指南针全程无误的到达目的地,这很牛逼。

那对于做数据处理的我们,与其相关的数据能用地图直观呈现,这也很牛逼。

管理过一段时间的全国仓库商务事项,面积管理是日常工作之一。对于数据的表格管理已经炉火纯青,但总感觉还缺点啥。有一天突然就get到了那个点,我需要在地图上的分档填色。

说干就干。

首先,我需要一个中国地图,这个小意思,日常的积累中早就存下了各种版本的地图。

其次,对于每个仓库所在城市需要获取坐标,这个也非常简单,找到全国城市经纬表,然后对数据进行变换,方便在地图上进行展示,如果是做散点图,这就可以展示全国仓库的位置了。

再次,我们将各仓库的面积导入,进行适当的分档。这里需要根据需要来分,不是越多越好,否则看起来颜色多,容易凌乱。

最后,在VBA中,新建模块进行颜色控制:

Subfill_color()

    Dim i%, v, p

    ActiveSheet.ChartObjects("图表 2").Activate

    v =Evaluate(ActiveChart.SeriesCollection(1).BubbleSizes)

    Set p = ActiveChart.SeriesCollection(1).Points

    For i = 1 To 42

        Select Case v(i, 1)

            Case 0 To 999

            p(i).Format.Fill.ForeColor.RGB =Range("G43").Interior.Color

            Case 1000 To 1999

            p(i).Format.Fill.ForeColor.RGB =Range("G42").Interior.Color

            Case 2000 To 4999

            p(i).Format.Fill.ForeColor.RGB =Range("G41").Interior.Color

            Case Else

            p(i).Format.Fill.ForeColor.RGB =Range("G40").Interior.Color

        End Select

    Next

EndSub

代码这个东西吧,多看几遍就懂了。将代码与按钮关联,就实现了颜色的填充。这个案例中为了体现简洁性,仓库面积按F9随机变动,再按按钮就能够分档填色完成。

由此,感觉世界上又开了一个窗,如果我们开的窗越多,心中就会越敞亮。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约