3.3 直条图
直条图是使用矩形条来表示数量多少、大小的统计图。直条图包括直方图、柱形图和条形图。直方图的矩形条没有间隔,多用于表示连续变量。柱形图和条形图的矩形条有间隔,多用于表示离散变量。矩形条垂直呈现就是柱形图,水平呈现就是条形图。柱形图和条形图在用法上的主要区别在于,有正负数时,最好使用柱形图,以适合人们的视觉习惯;数据标签长或数据量多时,最好使用条形图,使数据标签向右或向下有充足的排列空间。在Excel中,柱形图和条形图都能制成簇状、堆积、百分比堆积3种形态,每一种形态都有二维和三维之分,柱形图还能绘制成三维柱形图。单一柱形图和条形图的制作比较简单,本书略去不述,只介绍复合柱形图、误差条图、双向条形图和不等宽柱形图。
3.3.1 复合柱形图
复合柱形图是指至少使用两种形态的柱形图,例如簇状柱形图和堆积柱形图的组合图表。
图3-31 长江公司销售费用表
例3-6 在文件“第3章统计图.xlsx”的“直条图”工作表中,有一个“长江公司销售费用表”,表中罗列了长江公司上年1—6月的销售费用数据,如图3-31所示。如何在Excel中绘制一个直条图,使“销售收入”通过与“销售成本”“管理费用”“财务费用”的比较能够看出利润的情况?
解题思路:“销售收入”要与“销售成本”“管理费用”“财务费用”比较看出利润情况,显然,“销售成本”“管理费用”“财务费用”要堆积起来,而且要置于“销售收入”之内,这可以绘制一个复合柱形图来实现。
解题过程:插入柱形图,更改图表类型,更改坐标轴边界,更改次坐标轴边界,更改分类间距,更改图表颜色,更改形状填充色,更改形状效果。
(1)插入柱形图。操作过程为:
➊ 选择A2:E8区域(因标题与数据表为一个不可分割的整体,所以不能单击任意单元格让图表自动选择数据区域)。
➋ 单击“插入”选项卡。
➌ 在“图表”组中单击“插入柱形图或条形图”按钮。
➍ 在下拉菜单的“二维柱形图”组中选择第一个图表,即“簇状柱形图”。
➎ 将标题更改为“长江公司销售费用柱形图”,缩小标题字号。
操作过程及结果如图3-32所示。
图3-32 插入柱形图
(2)更改图表类型。操作过程为:
➊ 右击图表区。
➋ 在快捷菜单中选择“更改图表类型”命令。
➌ 在弹出的“更改图表类型”对话框的“所有图表”选项卡下,单击“组合”按钮。
➍ 将“销售成本”系列更改为“堆积柱形图”,勾选为“次坐标轴”。
➎ 将“管理费用”系列更改为“堆积柱形图”,勾选为“次坐标轴”。
➏ 将“财务费用”系列更改为“堆积柱形图”,勾选为“次坐标轴”。
➐ 单击“确定”按钮,完成设置。
操作过程如图3-33所示。
图3-33 更改图表类型
(3)更改坐标轴边界。操作过程为:
➊ 双击“垂直(值)轴”。
➋ 在弹出的“设置坐标轴格式”任务窗格的“坐标轴选项”组,将“边界”的“最小值”更改为“0”(此时,“最大值”会根据数据的真实最大值“2595”和图表的主要刻度单位“500”自动调整为“3000”)。
操作过程如图3-34所示。
(4)更改次坐标轴边界。操作过程为:
➊ 单击“次坐标轴垂直(值)轴”。
➋ 将“坐标轴选项”组“边界”的“最大值”更改为“3000”(目的是与“垂直(值)轴”的最大值“3000”等量齐观)。
操作过程及结果如图3-35所示。
图3-34 更改“垂直(值)轴”的边界
图3-35 更改“次坐标轴垂直(值)轴”边界
(5)更改分类间距。操作过程为:
➊ 单击“销售收入”的柱体。
➋ 在“设置数据系列格式”任务窗格的“系列选项”组,将“间隙宽度”的滑块拖向合适的位置,或在其右侧框中将数值改为一个合适的数字,例如“60”,或利用微调按钮进行调节,目的是让“销售收入”柱体作为其他3个柱体的背景。
操作过程及结果如图3-36所示。
图3-36 更改分类间距
(6)更改图表颜色。操作过程为:
➊ 单击“图表样式”按钮。
➋ 单击“颜色”选项卡。
➌ 在“彩色”列表框中选择一种对比强烈的颜色,例如“颜色4”。
操作过程及结果如图3-37所示。
图3-37 更改图表颜色
(7)更改形状填充色。操作过程为:
➊ 单击“销售收入”的柱体。
➋ 在“图表工具·格式”选项卡中单击“形状填充”按钮。
➌ 在下拉菜单的“标准色”组中选择一种比较浅的颜色,例如“黄色”。
操作过程及结果如图3-38所示。
图3-38 更改形状填充色
(8)更改形状效果。操作过程为:
➊ 在“图表工具·格式”选项卡中单击“形状效果”按钮。
➋ 在下拉菜单的“阴影”组中选择一种形状效果,例如“内部”组中的“内部居中”效果。
操作过程及结果如图3-39所示。
图3-39 更改形状效果
3.3.2 误差条图
误差条图是在用条图表示均数的基础上,在图中标识标准差的范围,以此反映数据分散情况的一种统计图。
例3-7 在文件“第3章统计图.xlsx”的“直条图”工作表中,有一个“小白鼠三周后体重增长情况表”,表中列出了使用4种营养素喂养小白鼠3周后体重增长的情况,如图3-40所示。如何在Excel中绘制一个直条图,以反映出每种营养素喂养小白鼠3周后体重增长的情况,并标示出数据的标准差?
解题思路:要反映出小白鼠体重增长的情况,可以绘制一个柱形图;要标示出数据的标准差,可以再添加误差线。
解题过程:插入柱形图,更改样式,添加误差线,设置误差量。
(1)插入柱形图。操作过程为:
➊ 选择A16:B20区域(因标题与数据表为一个不可分割的整体,所以不能单击任意单元格让图表自动选择数据区域)。
➋ 单击“插入”选项卡。
➌ 在“图表”组中单击“插入柱形图或条形图”按钮。
➍ 在下拉菜单的“二维柱形图”组中选择第一个图表,即“簇状柱形图”。
➎ 将标题更改为“小白鼠三周后体重增长情况柱形图”,缩小标题字号。
操作过程及结果如图3-41所示。
图3-40 小白鼠三周后体重增长情况表
图3-41 插入柱形图
(2)更改样式。操作过程为:
➊ 单击“图表样式”按钮。
➋ 选择一种样式,例如“样式11”。
操作过程及结果如图3-42所示。
图3-42 更改标题和样式
(3)添加误差线。操作过程为:
➊ 单击“图表工具·设计”选项卡。
➋ 在“图表布局”组中单击“添加图表元素”按钮。
➌ 在下拉菜单“误差线”的级联菜单中选择“其他误差线选项”命令。
操作过程如图3-43所示。
图3-43 添加误差线
(4)设置误差量。操作过程为:
➊ 在“设置误差线格式”任务窗格的“误差量”组中单击“指定值”按钮。
➋ 在弹出的“自定义错误栏”对话框中,将鼠标放置于“正错误值”框中,清除原有的“={0}”,拖动选择C17:C20区域。
➌ 再将鼠标放置于“负错误值”框中,清除原有的“={0}”,拖动选择C17:C20区域。
➍ 单击“确定”按钮,完成设置。
操作过程及结果如图3-44所示。
图3-44 设置误差量
3.3.3 双向条形图
双向条形图是指使用左右方向相反的两个条形图来反映两类事物的对比。
例3-8 在文件“第3章统计图.xlsx”的“直条图”工作表中,有一个“两个公司的销售额”表,表中罗列了两个公司1—6月的销售额情况,如图3-45所示。如何在Excel中绘制一个直条图,以反映出两个公司1—6月销售额的对比情况?
解题思路1:要反映出两个公司1—6月销售额的对比情况,可以绘制一个条形图,并将标题更改为“两个公司的销售额条形图”。
图3-45 两个公司的销售额
解题过程:插入条形图,更改坐标轴,更改次坐标轴边界,更改坐标轴边界,更改标签位置,添加数据标签。
(1)插入条形图。操作过程为:
➊ 选择A27:C33区域(因为标题与数据表为一个不可分割的整体,所以不能单击任意单元格让图表自动选择数据区域)。
➋ 单击“插入”选项卡。
➌ 在“图表”组中单击“插入柱形图或条形图”按钮。
➍ 在下拉菜单的“二维条形图”组中选择第一个图表,即“簇状条形图”。
➎ 将标题更改为“两个公司的销售额条形图”,缩小标题字号。
操作过程及结果如图3-46所示。
图3-46 插入条形图
(2)更改坐标轴。操作过程为:
➊ 双击B公司柱体(橙色)。
➋ 在“设置数据系列格式”任务窗格的“系列选项”下选择“系列绘制在”组中的“次坐标轴”单选按钮。
操作过程及结果如图3-47所示。
图3-47 更改坐标轴
(3)更改次坐标轴边界。操作过程为:
➊ 单击“次坐标轴水平(值)轴”。
➋ 在“设置坐标轴格式”任务窗格中单击“坐标轴选项”按钮 。
➌ 再单击“坐标轴选项”选项。
➍ 将“边界”的“最小值”更改为“-1500”(此时,“最大值”会同步更改为“1500”,“主要”单位也相应更改为“500”)。
操作过程及结果如图3-48所示。
图3-48 更改“次坐标轴水平(值)轴”边界
(4)更改坐标轴边界。操作过程为:
➊ 单击“水平(值)轴”。
➋ 在“设置坐标轴格式”任务窗格,将“坐标轴选项”选项“边界”的“最小值”更改为“-1500”(目的是与“水平(值)轴”的最小值“-1500”等量齐观)。
➌ 勾选“逆序刻度值”复选框。
操作过程及结果如图3-49所示。
图3-49 更改“水平(值)轴”边界
(5)更改标签位置。操作过程为:
➊ 单击标签。
➋ 在“设置坐标轴格式”任务窗格中单击“标签”组。
➌ 将“与坐标轴的距离”框中的值修改为适当数值,此处不变。
➍ 在“标签位置”下拉列表中选择“高”选项。
操作过程如图3-50所示。
图3-50 更改标签位置
(6)添加数据标签。操作过程为:
➊ 删除“次坐标轴水平(值)轴”(即次要横坐标轴)。
➋ 单击“图表元素”按钮。
➌ 勾选“数据标签”复选框。
操作过程及结果如图3-51所示。
图3-51 添加数据标签
解题思路2:利用Excel条件格式中的数据条可以反向的功能制作双向条形图。
解题过程:创建第一个条件格式,创建第二个条件格式。事先将“两个公司的销售额”数据表复制到N27单元格,将O、P两列的宽度调宽,而且宽度相等,以便对比。
(1)创建第一个条件格式。操作过程为:
➊ 选择O28:O33区域。
➋ 单击“开始”选项卡。
➌ 在“样式”组中单击“条件格式”按钮。
➍ 在下拉菜单中选择“新建规则”命令。
➎ 在弹出的“新建格式规则”对话框的“选择规则类型”列表框中,已默认选择“基于各自值设置所有单元格的格式”选项,这里不变。
➏ 在“基于各自值设置所有单元格的格式”组的“格式样式”下拉列表中选择“数据条”选项。
➐ 在“条形图”组的“填充”下拉列表中选择“渐变填充”选项。
➑ 在“颜色”下拉列表中选择一种颜色,例如“浅蓝”。
➒ 在“边框”下拉列表中选择“实心边框”选项。
➓ 在“颜色”下拉列表中选择一种颜色,例如“浅蓝”。
在“条形图方向”下拉列表中选择“从右到左”选项。
单击“确定”按钮,完成设置。
操作过程及结果如图3-52所示。
图3-52 创建第一个条件格式
(2)创建第二个条件格式。同理,为P28:P33区域创建“数据条”这种条件格式,填充和边框的颜色选择另外一种颜色,例如“紫色”,“条形图方向”为“从左到右”,结果如图3-53所示。
图3-53 双向条形图的结果
3.3.4 不等宽柱形图
当Excel表中的两列数据存在乘积关系或需要将柱形图的X轴用不同宽度的柱体来表示时,可以制作不等宽柱形图。在Excel中,没有现成的不等宽柱形图,但可以利用多种方法达到目的。下面分别介绍利用面积图、柱形图、散点图等图表制作不等宽柱形图的方法。
1.利用面积图制作
众所周知,在Excel柱体图表中,从柱体的高度(Y轴纵坐标)能直观地了解数据的大小,但X轴上的数据表示的柱体的宽度不具有任何数据意义。两个柱体的高度悬殊再大,它们的宽度却总是一样的,柱体只是用来作为分类或仅作为视觉格式处理的一种手段。如果要绘制X轴不等距的柱体图形,则使柱体的宽度也有了一定的数量意义。
Excel中有时间刻度轴的概念,又可称为时间轴,但用得很少。时间的特征是延绵不断的,Excel中的时间轴也是连续的,即使数据源中没有出现、没有使用的日期也会在时间刻度中体现出来。利用这一点,就找到了制作不等宽形图的金钥匙。
不等距柱体的问题,可以利用Excel图表的时间轴的连续性来处理,也就是将空间的间隔转换为时间延续:以试图描写柱体宽度的数据(空间长度的数据),换作为一个在时间刻度轴上的时间延续长短的数据。
例3-9 已在“不等宽柱形图”工作表中将4种水果的单价和数量整理成“水果售价表”,如图3-54所示。如何在Excel中根据4种水果的单价和数量制作不等宽柱形图?
解题思路:将“数量”累积后的值作为X轴,制作面积图,再将X轴更改为时间轴,最后对图表进行适当美化。这样,单价反映在纵轴高度上,数量反映在横轴宽度上,每个柱形的面积即总金额。
解题过程:建立辅助表,获取辅助表数据,插入组合图,完善散点图的源数据,更改水平(分类)轴标签的数据,更改坐标轴类型,为散点图添加自定义的数据标签,美化图表。
(1)建立辅助表。建立“数据标签辅助表”“不等宽柱形图辅助表(面积图和时间轴)”2个辅助表,如图3-55所示。
图3-54 水果售价表
图3-55 两个辅助表
K2:N2区域的水果名称可以利用函数公式得到,函数公式为“{=TRANSPOSE(A3:A6)}”。TRANSPOSE函数可返回转置单元格区域,即将行单元格区域转置成列单元格区域,反之亦然。一对花括号“{}”是数组公式的标志,通过“Ctrl+Shift+Enter”组合键输入。
(2)获取辅助表数据。如果数据量不大,可以使用手工方法在两个辅助表中直接输入数据,但使用该方法输入的数据生成图表后,如果修改了源数据,图表将无法自动更新。手工输入的数据如图3-56所示。
图3-56 在两个辅助表中直接输入数据的效果
如果数据较大或者希望制作一个便于使用的模板,就可以利用函数公式自动获取数据。“不等宽柱形图辅助表”将利用“水果售价表”和“数据标签辅助表”的数据。下面介绍通过函数公式自动获取数据。
在E3单元格输入公式“=SUM($C$3:C3)”,得到水果数量的累积数。
在F3单元格输入公式“=MEDIAN(E2,E3)”,得到数据标签的X轴的值,MEDIAN函数得到两个值的中点值。
在G3单元格输入公式“=B3*0.5”,得到数据标签的Y轴的值。“0.5”表示标签在Y轴的高度比例,这个数可以根据需要调整。例如,如果希望标签在柱形的上方,可以将“0.5”改为“1.1”。
在H3单元格输入公式“=B3&"×"&C3&"="&B3*C3”,得到数据标签外观。因为这里是想通过一个标签将水果的“单价”“数量”“金额”一并标示出来。这个公式可以根据需要调整。也可以通过两个标签来标示水果的“单价”“数量”,这样就需要再增加一个标签的Y值。
利用填充柄将E3:H3区域的函数公式向下填充至需要的地方,例如H6单元格。
在J4单元格输入公式“=IF((ROW()-3)>((COUNT($E$3:$E$6)-1)*2+1),,OFFSET($E$2,CEILING.MATH(ROW()-3,2)/2,0))”,得到面积图(之后的柱形图)的X轴的值。
将J4单元格的函数公式向下填充至需要的地方,例如J10单元格。
在K3单元格输入公式“=IF(MAX($J3:$J4)=VLOOKUP(K$2,$A$3:$E$6,5,0),VLOOKUP(K$2,$A$3:$B$6,2,0),)”,得到面积图(之后的柱形图)Y轴的值。
将K3单元格的函数公式向右、向下填充至需要的地方,例如N10单元格。
参照本书2.1.5小节的方法隐藏K3:N10区域的0值。
最终结果如图3-57所示。
图3-57 使用函数公式得到不等宽柱形图辅助表的数据
【函数公式解析】
J4单元格的函数公式“=IF((ROW()-3)>((COUNT($E$3:$E$6)-1)*2+1),,OFFSET($E$2,CEILING.MATH(ROW()-3,2)/2,0))”比较复杂,用到的函数较多,为帮助读者把握,下面由内到外对用到的函数进行介绍,并对整个公式进行解析。
式中,ROW函数返回引用的行号。具体语法为:
ROW([reference])
reference:可选,是需要得到其行号的单元格或单元格区域。如果省略reference,则假定是对ROW函数所在单元格的引用。如果reference为一个单元格区域,并且ROW作为垂直数组输入,则ROW将以垂直数组的形式返回行号。reference不能引用多个区域。
式中,CEILING.MATH函数将数字向上舍入为最接近的整数或最接近的指定基数的倍数。具体语法为:
CEILING.MATH(number,[significance],[Mode])
number:必需,数字必须小于9.99E+307并大于-2.229E-308。
significance:可选,为number舍入的倍数;在默认情况下,对于正数为+1,对于负数为-1,对带有小数部分的正数将向上舍入到最接近的整数,对带有小数部分的负数将向上舍入(朝向0)到最接近的整数,对于整数将数字向上舍入到最接近的整数(为指定基数的倍数)。Mode为可选,对于负数,控制number是按朝向0还是远离0的方向舍入,Mode参数不影响正数。
式中,OFFSET函数是一个易失性函数,会随着工作表的刷新而动态刷新。OFFSET函数是一个使用频率很高的函数,返回对单元格或单元格区域中指定行数和列数的区域的引用。具体语法为:
OFFSET(reference,rows,cols,[height],[width])
如果将这个语法翻译过来,就是:
OFFSET(作为基准的单元格或区域引用,第几行,第几列,[高度],[宽度])
reference(引用):必需,要以其为偏移量的底数的引用,该引用必须是对单元格或相邻的单元格区域的引用,否则OFFSET返回错误值#VALUE!。
rows:必需,需要对左上角单元格引用的向上或向下行数,可为正数(这意味着在起始引用的下方)或负数(这意味着在起始引用的上方)。
cols:必需,需要对左上角单元格引用的从左到右的列数,可为正数(这意味着在起始引用的右侧)或负数(这意味着在起始引用的左侧)。
height:可选,需要返回的引用的行高,必须为正数。
width:可选,需要返回的引用的列宽,必须为正数。
式中,COUNTA函数计算非空单元格的个数。具体语法为:
COUNTA(value1,[value2],…)
value1:必需,表示要计数的值的第一个参数。
value2,…:可选,表示要计数的值的其他参数,最多可包含255个参数。
式中,IF函数对值和期待值进行逻辑比较。具体语法为:
IF(logical_test,value_if_true,value_if_false)
logical_test:必需,表示计算结果为TRUE或FALSE的任意值或表达式。
value_if_true logical_test:必需,TRUE时返回的值。
value_if_false logical_test:可选,为FALSE时返回的值。如果将这个语法翻译过来,就是:
如果(内容为True,则执行某些操作,否则执行其他操作)
IF语句可能有两个结果,第一个结果为True,第二个结果为False。Excel允许嵌套最多64个不同的IF函数。
本式,用IF函数作统帅。在第1参数,ROW函数获取当前单元格的行号为“4”,减去“3”,得到“1”。COUNT函数获取E3:E6区域的数字个数为“4”,减去“1”得到“3”,再乘以“2”得到“6”,再加“1”,得到“7”。ROW函数段的结果“1”与COUNT函数段的结果“7”进行比较,结果为“{FALSE}”,IF函数就执行。在第3参数,ROW函数段的结果“1”作为CEILING.MATH的,CEILING.MATH函数将“1”舍入为“2”的倍数,结果为“2”,再除以“2”得到“1”,作为OFFSET函数的。OFFSET函数对E2单元格偏移“1”行“0”列,得到“3”。
K3单元格的函数公式“=IF(MAX($J3:$J4)=VLOOKUP(K$2,$A$3:$E$6,5,0),VLOOKUP(K$2,$A$3:$B$6,2,0),)”也较为复杂。下面由内到外对用到的函数进行介绍,并对整个公式进行解析。
式中,VLOOKUP函数是Excel中的一个纵向查找函数,它与LOOKUP函数和HLOOKUP函数属于一类函数,在工作中都有广泛应用。VLOOKUP是按列查找,最终返回该列所需查询列序所对应的值;与之对应的HLOOKUP是按行查找的。VLOOKUP函数的语法为:
VLOOKUP(lookup_value,table_array,col_index_num,[range_lookup])
lookup_value:需要,在数据表第一列中进行查找的数值,可以为数值、引用或文本字符串;当省略查找值时,表示用0查找。
table_array:需要,在其中查找数据的数据表,使用对区域或区域名称的引用。
col_index_num:数据表中查找数据的数据列序号;如果小于1,函数VLOOKUP返回错误值#VALUE!;如果大于数据表的列数,函数VLOOKUP返回错误值#REF!。range_lookup为一逻辑值,指明函数VLOOKUP查找时是精确匹配,还是近似匹配;如果为false或0,则返回精确匹配,如果找不到,则返回错误值#N/A;如果为TRUE或1,函数VLOOKUP将查找近似匹配值,也就是说,如果找不到精确匹配值,则返回小于的最大数值;如果省略,则默认为近似匹配。
式中,MAX函数返回一组值中的最大值。具体语法为:
MAX(number1,[number2],…)
number1:必需,后续参数是可选的,最多为255个参数。参数可以是数字或者是包含数字的名称、数组或引用,逻辑值和直接键入到参数列表中代表数字的文本被计算在内;如果参数不包含任何数字,则MAX返回0;如果参数为错误值或为不能转换为数字的文本,将会导致错误。
本式,用IF函数作统帅。在第1参数,MAX函数获取J3:J4区域的最大值为“3”。VLOOKUP函数根据K2单元格的值“苹果”在A3:E6区域的第“5”列进行精确查找,得到的值为“3”。MAX函数的值“3”与VLOOKUP函数的值“3”进行大小比较,结果为“TRUE”,IF函数就执行。在第3参数,VLOOKUP函数根据K2单元格的值“苹果”在A3:E6区域的第“2”列进行精确查找,得到的值为“15”。
(3)插入组合图。操作过程为:
➊ 使用Ctrl键选择G2:G6和K2:N10两个不连续区域。
➋ 单击“插入”选项卡。
➌ 单击“图表”组,查看所有图表按钮(即对话框启动器)。
➍ 在弹出的“更改图表类型”对话框中单击“所有图表”选项卡。
➎ 在左侧列表中选择“组合”选项。
➏ 在右侧“为您的数据系列选择图表类型和轴”列表框中,在“Y轴”系列的“图表类型”下拉列表中选择“带直线和数据标记的散点图”。
➐ 在“苹果”系列的“图表类型”下拉列表中选择“面积图”。
➑ 在“龙眼”系列的“图表类型”下拉列表中选择“面积图”。
➒ 在“榴莲”系列的“图表类型”下拉列表中选择“面积图”。
➓ 在“香蕉”系列的“图表类型”下拉列表中选择“面积图”。
单击“确定”按钮,完成设置。本例4类水果系列也可以使用堆积面积图。
操作过程及结果如图3-58所示。
(4)完善散点图的源数据。操作过程为:
➊ 选择图表后,单击“图表工具·设计”选项卡。
➋ 在“数据”组中单击“选择数据”按钮,弹出“选择数据源”对话框。
➌ 在“图例项(系列)”组中选择“Y轴”选项。
➍ 单击“编辑”按钮。
➎ 在打开的“编辑数据系列”对话框中,将鼠标放置于“X轴系列值”引用框中,用鼠标选择工作表的F3:F6区域。
➏ 单击“确定”按钮,完成设置。
图3-58 插入组合图
操作过程及结果如图3-59所示。
图3-59 完善散点图的源数据
(5)更改水平(分类)轴标签的数据。操作过程为:
➊ 继续在“选择数据源”对话框的“图例项(系列)”组中选择“苹果”选项。
➋ 在“水平(分类)轴标签”组下单击“编辑”按钮。
➌ 在弹出的“轴标签”对话框中,将鼠标放置于“轴标签区域”的引用框中,用鼠标选择J3:J10区域。
➍ 单击“确定”按钮2次,完成设置。
操作过程如图3-60所示。
图3-60 更改水平(分类)轴标签的数据
(6)更改坐标轴类型。操作过程为:
➊ 双击水平(分类)轴。
➋ 在弹出的“设置坐标轴格式”任务窗格中单击“坐标轴选项”按钮 。
➌ 单击“坐标轴选项”选项。
➍ 在“坐标轴类型”组中选择“日期坐标轴”单选按钮。
操作过程及结果如图3-61所示。
图3-61 更改坐标轴类型
(7)为散点图添加自定义的数据标签。操作过程为:
➊ 选择散点图。
➋ 单击“图表元素”按钮。
➌ 勾选“图表标签”复选框。
➍ 2次单击第一个数据标签。
➎ 将鼠标放置于编辑栏中,输入“=H3”(或输入等号后用鼠标选择),按回车键。
➏ 如法依次为第二、三、四个标签设置自定义标签,编辑栏中的公式分别为“=H4”“=H5”“=H6”。
操作过程及结果如图3-62所示。
图3-62 为散点图添加自定义数据标签
(8)美化图表。操作过程为:
➊ 单击“图表工具·格式”选项卡。
➋ 单击“形状轮廓”按钮。
➌ 在下拉菜单中选择“无轮廓”。
➍ 将图表标题修改为“水果销售情况图”。
➎ 删除“水平(类别)轴”和“Y轴”图例。
操作过程及结果如图3-63所示。
图3-63 美化图表
2.利用柱形图制作
例3-10 针对例3-9,换一种思路,如何根据4种水果的单价和数量制作不等宽柱形图?
解题思路:先将每类水果按“数量”重复相应的次数形成源数据,使每个单价生成柱形图时有多个柱体,再将多个柱体进行合并,最后对图表进行适当美化。
解题过程:制作辅助表,获取辅助表数据,插入柱形图,调整分类间距,美化柱形图。
(1)制作辅助表。将“水果售价表”的数据复制到A14单元格,建立“不等宽柱形图辅助表(多个柱形图合并)”。
结果如图3-64所示(隐藏了部分行)。
图3-64 两个数据表
(2)获取辅助表数据。辅助表的数据,可以使用手工方法直接输入,或者通过函数公式自动获取。这里使用函数方法自动获取数据。
在E16单元格输入公式“=SUM($C$16:C16)”,得到水果数量的累积数。
在F16:F25区域输入数组公式“{=IFERROR(N(OFFSET($E$16,COUNT($E$16:$E$23)-MMULT((TRANSPOSE($E$16:$E$23)>=ROW(INDIRECT("1:"&MAX($E$16:$E$23))))*1,IFERROR($E$16:$E$23^0,1)),)),)}”,为每个单价拥有多个柱体而在X轴上占位。
在G16单元格输入公式“=IF($F16=VLOOKUP(G$15,$A$16:$E$19,5,0),VLOOKUP(G$15,$A$16:$B$19,2,0),)”。
将G16单元格的公式向右、向下填充至需要的地方,例如J25单元格。
参照本书2.1.5小节的方法隐藏K3:N10区域的0值。
结果如图3-65所示。
图3-65 使用函数公式得到不等宽柱形图辅助表的数据
【函数公式解析】
F15:F24区域的数组公式比较复杂,用到的函数较多,下面由内到外对未介绍的函数进行介绍,并对整个公式进行解析。
式中,INDIRECT函数返回由文本字符串指定的引用。具体语法为:
INDIRECT(ref_text, [a1])
ref_text必需,对单元格的引用,包含a1样式的引用、r1c1样式的引用、定义为引用的名称或对作为文本字符串的单元格的引用;如果不是合法的单元格引用,则INDIRECT返回错误值;如果是对另一个工作簿的引用(外部引用),则被引用的工作簿必须已打开,如果源工作簿没有打开,则INDIRECT返回错误值#REF!。
a1:可选,一个逻辑值,用于指定引用的类型;如果a1为TRUE或省略,ref_text被解释为a1样式的引用;如果a1为FALSE,则将ref_text解释为r1c1样式的引用。
式中,MMULT函数返回两个数组的矩阵乘积。结果矩阵的行数与array1的行数相同,结果矩阵的列数与array2的列数相同。MMULT函数的语法为:
MMULT(array1, array2)
array1、array2必需,是要进行矩阵乘法运算的两个数组。array1的列数必须与array2的行数相同,而且两个数组中都只能包含数值。
N函数是Excel中的信息函数,也是最短的函数之一,它的作用是将非数值形式的值转换为数字,将数值转换成数字,日期转换成序列值,TRUE转换成1,其他对象转换成0。具体语法为:
N(value)
N函数常用在offset、indirect中,将这两个函数形成的三维引用转换为二维数据。
式中,IFERROR函数返回公式计算结果错误时指定的值;否则返回公式的结果。具体语法为:
IFERROR(value, value_if_error)
value(值):必需,检查是否存在错误的参数。
value_if_error:必需,公式计算结果错误时返回的值;错误类型包括#N/A、#VALUE!、#REF!、#DIV/0!、#NUM!、#NAME?或#NULL!。
本式,MAX函数获取E15:E22区域(这里扩大了区域)的最大值为“10”,与文本字符串“1:”合并,成为INDIRECT函数的参数,结果再作为ROW函数的参数,得到一列纵向数组“{1;2;3;4;5;6;7;8;9;10}”。TRANSPOSE函数转置E15:E$22区域后得到一行横向数组“{3,5,9,11,0,0,0,0}”。两个数组进行大小比较,得到一个8行10列的逻辑数组,该数组乘以“1”,将逻辑数组转换为数值数组“{1,1,1,1,0,0,0,0;1,1,1,1,0,0,0,0;1,1,1,1,0,0,0,0;0,1,1,1,0,0,0,0;0,1,1,1,0,0,0,0;0,0,1,1,0,0,0,0;0,0,1,1,0,0,0,0;0,0,1,1,0,0,0,0;0,0,1,1,0,0,0,0;0,0,0,1,0,0,0,0}”,作为MMULT函数的第1个参数。MMULT函数的第2个参数为“IFERROR($E$3:$E$10^0,1)”,结果为8行1列的数组“{1;1;1;1;1;1;1;1}”。MMULT函数是本式的核心,计算结果为10行1列的数组“{4;4;4;3;3;2;2;2;2;1}”。COUNT函数获取E3:E10区域数字的个数为“4”,减去MMULT函数的计算结果,得到“{0;0;0;1;1;2;2;2;2;3}”,作为OFFSET函数的,即偏移的行数。OFFSET函数得到“{3;3;3;5;5;9;9;9;9;10}”,作为N函数的参数。N函数将三维引用转换为二维数据。最后,使用IFERROR函数将错误值转换为“0”。
(3)插入柱形图。操作过程为:
➊ 选择G15:J25区域。
➋ 单击“插入”选项卡。
➌ 在图表组中选择“插入柱形图或条形图”图标按钮。
➍ 在下拉菜单中的“二维柱形图”中选择第一个图形,即“柱状柱形图”。
操作过程及结果如图3-66所示。
图3-66 插入柱形图
(4)调整分类间距。操作过程为:
➊ 双击图表的柱体。
➋ 在“设置数据系列格式”任务窗格中单击“系列选项”组。
➌ 将“系列重叠”的滑块拖向最右边,或在其右侧框中将数值改为“100”,或利用微调按钮进行调节。
➍ 将“间隙宽度”的滑块拖向最左边。
操作过程及结果如图3-67所示。
图3-67 调整分类间距
(5)美化柱形图:操作过程为:
➊ 将图表标题修改为“水果销售情况柱形图”。
➋ 删除X轴标签。
➌ 单击“图表工具·设计”选项卡。
➍ 在“图表布局”组中单击“更改颜色”按钮。
➎ 在下拉菜单中选择一种颜色,例如“颜色4”调整图例的位置。
操作过程及结果如图3-68所示。
图3-68 美化柱形图
3.利用散点图制作
例3-11 已在工作表“不等宽柱形图”中将5种产品的市场占有率和销售额整理成“产品销售情况表”,如图3-69所示,如何根据表中数据制作不等宽柱形图?
解题思路:如图3-70所示,一个柱形图就像一个由散点来支撑的构架,如果找到所需支点的参数就好办了。先制作一个散点图,然后利用辅助表中的误差线(垂直/水平误差线)数据来画横向线和纵向线,最后对图表进行适当美化。
图3-69 产品销售情况表
图3-70 柱形图结构图
解题过程:制作辅助表,获取辅助表数据,插入散点图,添加误差线,设置水平误差线,设置垂直误差线,美化图表。
(1)制作辅助表。建立一个辅助表,结果如图3-71所示。
图3-71 建立辅助表
(2)获取辅助表数据。辅助表的数据通过函数公式自动获取。
在E30单元格输入函数公式“=SUM($B$31:B31)”,得到各产品市场占有率的累积数,作为散点图的X轴值。
在F30输入公式“=C31”,得到各产品销售额,作为散点图的Y轴值。
在G30输入公式“=C32-C31”,即销售额的下一个值减去上一个值,得到散点图Y轴误差线的正值。
将E30:G30区域的公式向下填充到G35单元格。
散点图X轴误差线的正值可指定B30单元格,X轴误差线的负值为B31:B35区域。散点图Y轴误差线的负值为C31:C35区域。数据如图3-72所示。
图3-72 散点图误差线数据
(3)插入散点图。操作过程为:
➊ 选择E31:F35区域。
➋ 单击“插入”选项卡。
➌ 单击“图表”组的“插入散点图(X、Y)或气泡图”按钮。
➍ 在下拉列表中选择“散点图”选项。
操作过程及结果如图3-73所示。
图3-73 插入散点图
(4)添加误差线。操作过程为:
➊ 选择散点图后,单击“图表工具·设计”选项卡。
➋ 在“图表布局”组中单击“添加图表元素”按钮。
➌ 选择下拉菜单“误差线”级联菜单中的“标准误差”命令。
操作过程及结果如图3-74所示。
图3-74 添加误差线
(5)设置水平误差线。操作过程为:
➊ 双击散点图。
➋ 在弹出的“设置误差线格式”任务窗格中单击“误差线选项”按钮。
➌ 在下拉菜单中选择“系列‘Y值’X误差线”命令。
➍ 单击“误差线选项”按钮。
➎ 在“水平误差线”的“方向”组,自动选择了“正负偏差”单选按钮。
➏ 在“末端样式”组中选择“无线端”单选按钮。
➐ 在“误差量”组中选择“自定义”单选按钮。
➑ 在右侧单击“指定值”按钮。
➒ 在弹出的“自定义错误栏”对话框中,将鼠标放置于“正错误值”引用框,清除原来的数据,用鼠标单击B27单元格。
➓ 将鼠标放置于“负错误值”引用框中,清除原来的数据,用鼠标选择B28:B32区域。
单击“确定”按钮,完成设置。
操作过程及结果如图3-75所示。
图3-75 设置水平误差线
(6)设置垂直误差线。操作过程为:
➊ 在“设置误差线格式”任务窗格中单击“误差线选项”按钮。
➋ 在下拉菜单中选择“系列‘Y值’Y误差线”命令。
➌ 单击“误差线选项”按钮。
➍ 在“垂直误差线”的“方向”组中自动选择了“正负偏差”单选按钮。
➎ 在“末端样式”组中选择“无线端”单选按钮。
➏ 在“误差量”组中选择“自定义”单选按钮。
➐ 在右侧单击“指定值”按钮。
➑ 在弹出的“自定义错误栏”对话框中,将鼠标放置于“正错误值”引用框,清除原来的数据,用鼠标单击G28:G32区域。
➒ 将鼠标放置于“负错误值”引用框中,清除原来的数据,用鼠标选择C28:C32区域。
➓ 单击“确定”按钮,完成设置。
操作过程及结果如图3-76所示。
(7)美化图表。具体操作有:选择图表后,在“图表工具·设计”选项卡,通过“图表布局”组中的“图表布局”下拉菜单,为图表添加轴标题、添加标签,并将标签通过单元格引用链接到产品名称;再在“图表工具·格式”选项卡,为图表设置一种填充色,例如“绿色,个性色6,淡色60%”;最后将图表标题修改为“产品销售情况图”。结果如图3-77所示。
图3-76 设置垂直误差线
图3-77 美化图表