学习Excel技术,关注微信公众号:

excelperfect

在《Excel图表学习60:给多个数据系列添加趋势线》中,我们手工给多个散点图系列添加了一条趋势线,如下图1所示。

图1

在图表中,最开始有3个数据系列,其公式分别为:

=SERIES(Sheet1!$C$2,Sheet1!$B$3:$B$11,Sheet1!$C$3:$C$11,1)

=SERIES(Sheet1!$E$2,Sheet1!$D$3:$D$11,Sheet1!$E$3:$E$11,2)

=SERIES(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 IfEnd Sub

在工作表中选取图表,运行上述代码,可以看到图表中自动添加了一条趋势线。

以上面的代码为基础,创建可以为多个数据系列添加趋势线的加载宏。可以在完美Excel微信公众号底部发送消息:

添加趋势线

下载该加载宏使用和研究。

安装该加载宏后,Excel功能会新增一个名为“Multi Trendline”的选项卡,带有一个名为“Multi ScatterTrendline”的命令按钮,如下图2所示。

图2

在工作表中选择图表,运行“Multi Scatter Trendline”命令,会弹出一个对话框,可以选取要添加趋势线的图表数据系列前的复选框,如下图3所示。

图3

选择要添加趋势线的数据系列后,单击“ok”按钮,图表中会自动绘制一条趋势线,如下图4所示。

图4

注:本文学习整理自peltiertech.com,有兴趣的朋友可以直接到该网站上学习原文。

图表添加特定横轴数据_Excel图表学习61: 编写一个给多个数据系列添加趋势线的加载宏...相关推荐

  1. 《R数据科学》学习笔记|Note8:使用dplyr处理关系数据

    使用dplyr处理关系数据 往期文章 <R数据科学>学习笔记|Note1:绪论 <R数据科学>学习笔记|Note2:使用ggplot2进行数据可视化(上) <R数据科学& ...

  2. wps js宏开发表格数据归类拆分和excel文件合并的xlam加载宏插件

    前言 用wps js宏编辑器开发的表格数据拆分与合并的加载宏工具,写好代码把工作簿另存为xlam加载宏文件,然后添加到加载项即可使用.xlam文件你可以理解为没有工作表的工作簿,先看动画演示效果: 主 ...

  3. R语言data.table导入数据实战:data.table中编写函数并使用SD数据对象

    R语言data.table导入数据实战:data.table中编写函数并使用SD数据对象 目录 R语言data.table导入数据实战:data.table中编写函数并使用SD数据对象 #data.t ...

  4. 编写一个学生和教师数据的输入和显示程序,学生数据有编号、姓名、班号和成绩,教师数据有编号、姓名、职称和部门

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 题目: 编写一个学生和教师数据的输入和显示程序,学生数据有编号.姓名.班号和成绩,教师数据有编号.姓名.职称和部门. 要求将编号.姓名 ...

  5. 习题:编写一个学生和教师数据输入和显示程序,学生数据有编号、姓名、班级和成绩,教师数据有编号、姓名、职称和部门。

    完整题干: 编写一个学生和教师数据输入和显示程序,学生数据有编号.姓名.班级和成绩,教师数据有编号.姓名.职称和部门.要求将编号.姓名输入和显示设计成一个类person,并作为学生数据操作类stude ...

  6. python数据预测_利用Python编写一个数据预测工具

    利用Python编写一个数据预测工具 发布时间:2020-11-07 17:12:20 来源:亿速云 阅读:96 这篇文章运用简单易懂的例子给大家介绍利用Python编写一个数据预测工具,内容非常详细 ...

  7. [TensorFlow深度学习入门]实战七·简便方法实现TensorFlow模型参数保存与加载(ckpt方式)

    [TensorFlow深度学习入门]实战七·简便方法实现TensorFlow模型参数保存与加载(ckpt方式) 个人网站–> http://www.yansongsong.cn TensorFl ...

  8. 学生的基本信息包括学号、姓名、成绩, 写出表示学生数据的结构类型,编写一个程序,输入整数n,再输入n个学生的信息,输出成绩最高的学生信息。

    学生的基本信息包括学号.姓名.成绩, 写出表示学生数据的结构类型,编写一个程序,输入整数n,再输入n个学生的信息,输出成绩最高的学生信息. 代码如下: #include<stdio.h>s ...

  9. 图表横坐标怎么改倾斜_Excel 图表横轴文字太长,不想让它倾斜,如何分行显示?...

    Excel 中的图表,如果横轴文字过长,就会自动倾斜显示.有些同学觉得倾斜的文字不美观,希望仍然横排,超出长度可以自动换行.有没有可能实现? 图表本身并没有这个功能,但是我想了一个很简单办法,就可以实 ...

最新文章

  1. MySQL面试题 | 附答案解析(五)
  2. [转] javaweb学习-jstl-c:forEach中 varStatus的属性简介
  3. 在颜值上,我 Bootstrap 真的没怕过谁
  4. veket智能机器人
  5. 怎么改HTML表单数据,form设置的数据怎么添加到table
  6. redis学习笔记二
  7. Git:解决Git向码云中push文件报错:! [rejected] master -> master (fetch first)
  8. 基于单片机USB接口的温度控制器
  9. 【小程序项目开发-- 京东商城】uni-app之分类导航区域
  10. 解决Latex中文PDF目录出现乱码问题
  11. IT服务台基础概念及创建方法
  12. 体育健身类毕业论文文献有哪些?
  13. docker: Error response from daemon: Conflict. The container name “/mysql“ is already in use by conta
  14. 感恩节 今天,留一天时间感谢自己
  15. 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
  16. PHP获取星期六星期日
  17. 思维导图解析——《红楼梦》人物关系
  18. python求50的阶乘_python中的阶乘
  19. 行业趋势 | AI+的智能化工作时代,谁能做风口先行者
  20. linux dns无法解析,Linux服务器内部无法解析域名

热门文章

  1. 8天玩转并行开发——第四天 同步机制(上)
  2. 解决Bootstrap中代码不高亮问题
  3. PAT 1015__部分正确__已解决
  4. 存储安全 系统的最后一道防线
  5. python爬取网页上的特定链接_python3下scrapy爬虫(第三卷:初步抓取网页内容之抓取网页里的指定数据)...
  6. linux fifo 视频,Linux FIFO学习
  7. php ping 命令注入,CTF关于ping命令注入问题
  8. 微页导出为html文件怎么打开吗,h5自动生成工具(示例代码)
  9. android教程 - android ui 介绍,多图详解 “Android UI”设计官方教程
  10. java数组缓冲,java – 字节数组缓冲图像转换速度慢