【英才职场特训】教你做好看的 Excel 图

2014年07月28日 英才教育悉尼站



怎样用 Excel 做出这样的图?还是只能用 Photoshop?

第一步,输入数据,发布时间是自己估的,懒得一个个查了……大家不要学我

第二步,插入图表的 bubble 图,选平面的那种,当然你要是喜欢一颗一颗还发光的我也没意见…

第三步,其实出来会是一张完全空白的表格,在表格白框框里面右键,选择数据。

一般来说,Excel 都是直接选中数据再插入图表,但是你会发现 bubble 图很特殊,Excel 会搞不清楚哪个是哪个,经常出来的东西就是一坨翔……建议这种图还是手动选择数据,勤劳致富。

第四步,系列名称随便你,可以空着,X 轴是时间(用小数形式更好调整),Y 轴是用户量,Bubble 的大小也是用户量。然后 OK 就能看到下面这张看上去差不多但是丑爆了的表。

第五步,调整格式:

纵坐标格式之范围:

纵坐标格式之颜色:

纵坐标格式之调用小箭头,通过 End type, End size 来调,结果如下图噢:

第七步,和刚才一样的流程调整横坐标,删除数据标签,调用小箭头~~

第八步,插入文本框,放起始时间和结束时间和“上线时间”的字样。

这里其实是可以通过数据直接设置,而不是手动加。但因为是用小数表示时间的,所以由于格式问题使得通过数据设置比较麻烦……我说不明白了 T T

反正如果你有心的话可以自己比较一下,不同情况用不同的方法啦~

第九步,上色:

这张图的逻辑是采用 APP 自己的颜色来给 bubble 上色,UC 是橙色的,新浪是红色的,微信是绿色的,你看到的我是蓝色的……

对着你要上色的 bubble 点一下选中所有图案,再点一下选择当下 bubble(注意是再点一下,不是双击,要停顿噢~~),直接格式设置:

第十步,完成上色之后,用文本框添加文字标签(这一步效率非常渣,我真的只会用文本框一个一个改,泪目

哪位同学有更快的方法请告诉我!)

最后,哪里看不顺眼再微调下就行了,成果图如下:

第十一步,前面说到这张图的逻辑就是 APP 自己的颜色,

Excel 画图神奇的地方就是可以用颜色来表示逻辑关系,所以你还可以尝试别的~

比如,你的重点关注对象是美图秀秀和其余 APP 的比较,那么:

再比如,题图表格的标题有第一梯队和第二梯队之分,所以你可以:

其实我觉得既然图上有了数据标签,纵坐标就比较没有意义,所以你会发现我把纵坐标都删了

最后,我想说....这种图用 PS 要怎么搞啊= =''

-----

更新

1 感谢很多 PS/AI 耍得很厉害的同学,可以通过把数据比变成面积比来设置泡泡大小

2 感谢 @LuciferSheng 提醒,日期写成了 20011……作为强迫症……我改好了

3 文字标签可以使用一个叫 XY Chart Labeler 的插件,下载地址如下:

The XY Chart Labeler Add-in

我的 Excel 是 2010 版,据说 2013 版自带文字标签功能。

插件的安装效果图如下:

我试了下,貌似一组数据是不能同时插入两组数据标签的,所以我把两组合并在一起,中间用空格分开:

插入数据标签以后,回车分行,批量修改格式,再微调下位置就 OK 啦~


环境:MS Excel 2010

1. 创建新文档,存储为“热心匿名用户的泡泡图.xlsm”。

在 A、B、C 列输入原始数据(必须按图示格式:A 列名称,B 列数值,C 列日期)。注意 B 列第一单元格请输入表格名称。

2. Alt+F11 呼唤神龙。猛击左栏“ThisWorkBook”。

3. 将以下代码复制在右栏:

Sub bubble()
Dim Bot_A As Integer, Bot_B As Integer, Bot_C As Integer
Bot_A = ActiveSheet.range("A65535").End(xlUp).row
Bot_B = ActiveSheet.range("B65535").End(xlUp).row
Bot_C = ActiveSheet.range("C65535").End(xlUp).row
'sort data
Columns("C:C").Select
ActiveSheet.sort.SortFields.Clear
ActiveSheet.sort.SortFields.ADD Key:=range("C1"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
Cells(1, 10).Select ' any cell but within data range is ok
'add chart
ActiveSheet.Shapes.AddChart.Select
With ActiveChart
    .ChartType = xlBubble
    .SeriesCollection.NewSeries
    .SeriesCollection(1).Name = Cells(1, 2).value
    .SeriesCollection(1).XValues = "=" & ActiveSheet.Name & "!" & "$C$2:$C$" & Bot_C & ""
    .SeriesCollection(1).Values = "=" & ActiveSheet.Name & "!" & "$B$2:$B$" & Bot_B & ""
    .SeriesCollection(1).BubbleSizes = "=" & ActiveSheet.Name & "!" & "$B$2:$B$" & Bot_B & ""
    .SetElement (msoElementDataLabelTop)
    'auto fill color
    .ChartGroups(1).VaryByCategories = True
    'del Legend
    .Legend.Delete
   End With
'modify text
Dim i As Integer
ActiveChart.SeriesCollection(1).Select
For i = 2 To Bot_A
    ActiveChart.SeriesCollection(1).Points(i - 1).DataLabel.Text = Cells(i, 1) & " " & Cells(i, 2)
Next i
End Sub

Ctr+S 保存。

4. 请仍然停留在代码界面,轻轻按下“F5”。是的,一定要带点温柔。

你看到了以下结果:

5. 乱码?!!!!请淡定。

6. 手动把图表大小调整一下呗。引用一楼的话,叫“勤劳致富”。

是不是有感觉一点。

希望能帮到同学们。

收藏 已赞