excel图表制作:给多个数据系列添加趋势线的加载宏
发布时间:2022-12-18 07:11:51
我们手工给多个散点图系列添加了一条趋势线,如下图 1 所示。
图 1
在图表中,最开始有 3 个数据系列,其公式分别为:
=系列(Sheet1!$ C $ 2,Sheet1!$ B $ 3:$ B $ 11,Sheet1!$ C $ 3:$ C $ 11,1)
=系列(Sheet1!$ E $ 2,Sheet1!$ D $ 3:$ D $ 11,Sheet1!$ E $ 3:$ E $ 11,2)
=系列(Sheet1!$ G $ 2,Sheet1!$ F $ 3:$ F $ 11,Sheet1!$ G $ 3:$ G $ 11,3)
注意,图表的系列公式一般有 4 个参数:
= SERIES(系列名称,X 值,Y 值,绘图顺序值)
后来,我们添加了一个所谓的“趋势线”的新系列,合并了原来的 3 个系列的 X 值和 Y 值,其公式为:
= SERIES(“ 趋势线”,
(Sheet1!$ B $ 3:$ B $ 11,Sheet1!$ D $ 3:$ D $ 11,Sheet1!$ F $ 3:$ F $ 11),
(Sheet1!$ C $ 3:$ C $ 11,Sheet1!$ E $ 3:$ E $ 11,Sheet1!$ G $ 3:$ G $ 11),
4)
组成 X 值和 Y 值的多个单元格区域被包含在括号中。
下面,我们使用 VBA 代码来自动添加趋势线。
代码执行的操作是对图表中的系列进行计数,依次读取每个系列公式,分解其参数,然后将单独的 X 和 Y 值连接为组合的 X 和 Y 值。接着,代码将应用系列公式的参数添加新系列,隐藏标记并添加趋势线。
Sub ComputeMultipleTrendline()
If Not ActiveChart Is Nothing Then
With ActiveChart
Dim ixSeries As Long
For ixSeries = 1 To .SeriesCollection.Count
Dim SeriesFormula As String
SeriesFormula = ActiveChart.SeriesCollection(ixSeries).Formula
SeriesFormula = Mid$(SeriesFormula, InStr(SeriesFormula, “(“)+ 1)
SeriesFormula = Left$(SeriesFormula, Len(SeriesFormula) – 1)
Dim SeriesArgs As Variant
SeriesArgs = Split(SeriesFormula, “,”)
Dim XAddress As String, YAddress As String
XAddress = XAddress & SeriesArgs(LBound(SeriesArgs) + 1) &”,”
YAddress = YAddress & SeriesArgs(LBound(SeriesArgs) + 2) &”,”
Next
XAddress= “=(” & Left$(XAddress, Len(XAddress) – 1) & “)”
YAddress= “=(” & Left$(YAddress, Len(YAddress) – 1) & “)”
With ActiveChart.SeriesCollection.NewSeries
.Name =”趋势线”
.XValues = XAddress
.Values= YAddress
.Format.Line.Visible = False
.MarkerStyle = xlMarkerStyleNone
With.Trendlines.Add.Format.Line
.DashStyle = msoLineSolid
.ForeColor.ObjectThemeColor = msoThemeColorText1
.ForeColor.Brightness= 0
EndWith
End With
End With
End If
End Sub
在工作表中选取图表,运行上述代码,可以看到图表中自动添加了一条趋势线。
安装该加载宏后, Excel 功能会添加一个称为“ Multi Trendline” 的选项卡,带有一个称为“ Multi ScatterTrendline ”的命令按钮,如下图 2 所示。
图 2
在工作表中选择图表,运行“ Multi Scatter Trendline”命令,会弹出一个对话框,可以选择要添加趋势线的图表数据系列前的标记,如下图 3 所示。
图 3
选择要添加趋势线的数据系列后,依次“确定”按钮,图表中会自动绘制一条趋势线,如下图 4 所示。
图 4
猜你喜欢
- iCloud照片同步时一直卡在1%,上传了2G就卡着不动,也不上传,关上重启没有用。问题描述:想把手机上的照片同步iCloud上去,结果上传
- ①首先我们打开Excel,我是跟大家演示,所以我随便输入了一些数据来举例。 ②下面,我们要计算出报名人数超过20的
- 问:工作表同一行中每三个单元格同时只能有一个单元格显示数据。如下图 1所示,在单元格区域 B6:D6中,如果在单元格 B6中输入了数据,那么
- 大家知道,打印前,一定要进行打印预览。但有的Excel表格打印预览时,有些框线不见了,这是什么原因?如图所示:这是编辑区的表格
- excel表格中的数据怎么使用多条件排序?excel表格中的数据想要排序,不只地按照一个关键词,想在年龄从大到小的基础上按工资的多到少排序,
- 有的时候我们会用右击桌面进行快捷新建Excel表格,但是有的时候我们会发现右肩芯片里面竟然没有Excel表格,那么这时候怎么办呢?因为现在W
- word2010中怎么使用画笔修改表格线条样式?word2010中想要修改表格的线条,该怎么使用画笔修改呢?下面我们就来看看使用画笔工具修改
- word2007提供的纹理效果也可以应用于艺术字,从而能够为艺术字设置纹理填充 word2007提供的纹理效果也可以应用于艺术字,
- 在WORD中画流程图,如何微调箭头及在箭头上写字?其实方法很简单的,下面小编就为大家详细介绍word怎么在箭头上显示一些文字方法,不会的朋友
- 1、在驱动图标上鼠标点击右键,选择 “打印机属性”。见图一 2、选择 “设备设置”。见图二 &nbs
- Win10系统是可以指定共享资源的访问权限的,有小伙伴需要共享文件给其他的工作伙伴,但是又不想让其他不相关的人接收到。那么win10如何只允
- win10系统是当下使用人数最多的系统之一,但是系统并不如win7稳定,比如重装或者安装系统快完成的时候卡死了,这个问题如果碰上了要怎么解决
- 在word插入做背景的图片太小了?那么具体要怎么设置,对于刚从其它版本转型过来的应该就不会太懂吧,没关系,接下来小编教你怎么设置成符合的大小
- 首先选定需要调整宽度的单元格单击word中的开始菜单,选择段落对话框在间距中把段前、段后的均设为0行,然后单击确定设置以后,我们再来拖动单元
- 1、office2010、wps office2010制作的word文档转换成pdf格式的方法ord 2010、WPS Office可以直接
- 文泰刻绘集刻绘、雕刻、海报制作等功能于一体,能够完成用户刻字绘图的全部需要,图形最为其中的基本单位,可以对其进行平移、缩放、旋转、镜像、倾斜
- excel表格打印预览出现虚线怎么办?excel表格中每次打印预览以后表格中都会出现虚线,该怎么去掉虚线呢?下面我们就来看看详细的教程,需要
- 在Word2003中输入中文和英文时,中文输入是以字为单位,而英文输入是以单词为单位。由于单词是由多个字母组成,并且单词与单词之间又用分隔符
- 新建一个需要使用到的word文档并且打开它。方法一:打开之后,点击上面的“插入”菜单。然后在打开的页面中点击“形状”选项,在出现的页面中点击
- 第一种方法找到并把normal.dot复制到另一个地方,重装WORD后再复制回原来的位置。或者“工具→选项→文件位置→用户模板”,“用户模板