excel图表技巧:如何在折线图上标注极值

news2024/12/24 2:30:49

折线图是大家日常工作中经常使用的一类基础图表,作用是体现数据的变化趋势。例如将每月的销售额通过折线图展示出来,数值变化就会很直观:

抛开图表的美化,基本上大家做出来的折线图都是上图中的样子,而老菜鸟做出来的折线图是这样的:

和大家的折线图只有一点点细微的差别:多了两个点,最大值和最小值;少了一条线,坐标轴的0值网格线。别小看这点区别,正是这点小区别,老菜鸟总是比同事的奖金多了一丢丢。

下面介绍具体的操作步骤,童鞋们一起跟着操作:

1.在数据源添加辅助列:最值,使用公式提取出最大值和最小值。

公式:=IF(OR(B2=MIN($B$2:$B$13),B2=MAX($B$2:$B$13)),B2,"")

公式解析:

OR(B2=MIN($B$2:$B$13),B2=MAX($B$2:$B$13))的作用是当销售额与最大值或最小值中的任何一个相等时返回TRUE,都不相等是返回FALSE;

使用IF进行判断,当OR的结果为TRUE时返回该销售额,为FALSE时返回空值。

2.添加折线图

3.修改辅助列的图表类型

将最值系列的图表类型修改为散点图,取消次坐标轴的勾选。

4.修改最大值和最小值的数据点格式

操作要点:选择数据点时,第一次单击是选择全部,再次单击才能单独选择;最大值和最小值的颜色应选择反差较大的颜色。

5.调整坐标轴格式

根据自己的数据情况,调整坐标轴的最小值。

调整后可以看到0值对应的这条横线不见了,图表下面的空白部分被隐藏了,同时隐藏的还有那些不需要显示的圆点。

到这一步有些朋友可能会有疑问,如果自己的数据需要从0值开始,不能隐藏网格线,那些多余的圆点怎么办?

其实也很简单,把辅助列公式中的""用#N/A代替,修改后的公式为:

=IF(OR(B2=MIN($B$2:$B$13),B2=MAX($B$2:$B$13)),B2,#N/A)

效果如图所示:

原理也很简单,#N/A这个错误值不能被图表识别,但换成其他错误值就未必有这个效果了,有兴趣的朋友可以自己测试一下。

6.修改图表标题,删除图例

到这一步其实图表已经算是完成了,并不难对吧。

看到这里,可能有的小伙伴要纳闷了:可以直接在销售额的折线上单独修改最大值和最小值的数据点格式啊,为什么非得加个辅助列,还用散点图这么麻烦。

原因是这样的:如果你的数据源只有一个并且不会变化,也就是说只需要做一次折线图的话,直接修改没问题。但是如果数据源有多个,例如每个分支机构都需要一个这样的图,你就要在每个图上手动去找最大值和最小值,用辅助列的意义就在于它可以自动找到需要标注的点,而避免了每次手动去处理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/164360.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

<Linux>进度条小程序和git使用详解

进度条小程序和git使用详解 文章目录进度条小程序和git使用详解一、Linux第一个小程序 - 进度条1.\r && \n2.行缓冲3.进度条二、git使用详解1.git概述1.1.历史背景1.2.版本控制1.3.集中式与分布式的区别2.Gitee仓库创建2.1.新建仓库2.2.复制仓库链接2.3.克隆仓库2.4.扩…

Redis基础命令操作四之集合类型HASH

HASH命令 命令举例说明HSETHSET [OUTKEY] [INKEY][INVALUE]集合添加键值对[INKEY][INVALUE]HGETHGET [OUTKEY] [INKEY]获取集合中inkey对应的valueHGETALLHGETALL [OUTKEY]获取集合中所有key,value信息HDELHDEL [OUTKEY] [INKEY]从集合中删除inkey键值对HLENHLEN [OUTKEY]获…

linux部署KubeSphere和k8s集群(二)

上一篇文章讲述了在单个节点上安装 KubeSphere和k8s,这节主要讲解k8s多节点集群部署 第一步:设置主机名称hostname--(3台机器都设置) hostnamectl set-hostname k8s-master hostnamectl set-hostname k8s-node1 hostnamectl set-hostname k8s-node2 第二…

_Linux多线程--生产者消费者模型篇

文章目录1. 为何要使用生产者消费者模型2. 基于BlockingQueue的生产者消费者模型3. C queue模拟阻塞队列的生产消费模型条件变量使用规范简单测试1. BlockQueue (缓存--超市)2. ConProd.cc3. 结果展示升级版测试&&设计与RAII风格的加锁方式1. BlockQueue.hpp2. Task.hp…

MATLAB 实现路由算法详细教程(完整代码+数据)

问题描述:鉴于我们小组成员都来自计通学院,我们对专业知识计算机网络内的路由器进行研究。我们知道在整个互联网中,有着很多个小的无法互相连通的小网络,早在上世纪六十年代,针对不同网络无法互联的问题,路…

IC芯片类元件创建

--摘自凡亿教育 一、VS1003音频芯片 首先,先创建新的元器件库 按箭头所指的即可。 然后,我们右击箭头所指的键,选择第六个矩形。 然后,依次放置管脚 点击箭头所指,既可放置管脚。 由于我们放置管脚的时候&#xff…

python的webdriver应用

本文总结如何使用python的webdriver插件,应用自动化测试以及爬虫抓取数据。工具选择谷歌版本下载:https://www.iplaysoft.com/tools/chrome/webdriver版本:http://npm.taobao.org/mirrors/chromedriver/ 或https://chromedriver.storage.goog…

顺序表学习指南,请查收~

作者:爱塔居的博客_CSDN博客-JavaSE,数据结构领域博主 专栏:数据结构 作者简介:大三学生,希望一起进步! 文章目录 目录 文章目录 一、顺序表基本概念 二、练习 一、顺序表基本概念 🌺顺序表是用一段物理地…

常用工具的常用操作

写在前面 记录可能用到的各种工具常见技巧。 1:sublime 1.1:操作多列 首先选中要操作的列所在的行: 然后点击selection,spit lines: 接下来移动左右键就可以操作了,删除或者批量添加内容: 1…

创客匠人助力机构招生获客转化

后疫情时代,各行各业部署线上化成为一门必修课。 创客匠人作为一家专注教育培训行业的知识付费技术服务商,为了更好的帮助教培机构、教育企业立足于内容传播需求,打通线上线下资源通道,将线下资源向"线上核心平台"靠拢…

无极低码:100套大屏可视化源码,包含多个行业

随着互联网的发展,各项技术的不断成熟,数据可视化在新的时代,人们对数据的呈现方式开始有了新的要求。科技感、美观、直观、动感等等都成为现代软件系统新的设计和思考方向,特别是硬件的发展和数据的发展,数据分析的需…

Vue3商店后台管理系统设计文稿篇(一)

记录使用vscode构建Vue3商店后台管理系统,这是第一篇,主要记录Vue3项目创建过程,以及数据的挂载 文章目录一、Vue3项目创建二、取消代码规范检查三、数据简单挂载正文内容: 一、Vue3项目创建 使用如下命令全局安装yarn npm i -g …

Java开发 - Mybatis框架初体验

前言 在前文中,我们已经学习了Spring框架,Spring MVC框架,相信大家对这些基础的内容已经熟练使用了,今天,我们继续来学习Mybatis框架。就目前而言,Mybatis框架依然是比较实用的框架,这篇博客&a…

SpringMVC知识点记录

SpringMVC知识点记录1. SpringMVC简介2. 入门案例3. RequestMapping注解4. SpringMVC获取请求参数5. 域对象共享数据6.SpringMVC的视图7. RESTful8. RESTful 案例9. SpringMVC处理ajax请求10. 文件上传和下载11. 拦截器12. 异常处理器13. 注解配置SpringMVC14. SpringMVC执行流…

hgame2023 week1 writeup

#WEEK1 RE 1、re-test_your_IDA ida打开可见flag: int __cdecl main(int argc, const char **argv, const char **envp) {char Str1[24]; // [rsp20h] [rbp-18h] BYREFsub_140001064("%10s");if ( !strcmp(Str1, "r3ver5e") )sub_140001010…

移动端 - 搜索组件(search-input篇)

我们先来看一下最终效果 这样的搜索组件在移动端是很常见的, 大部分需求都是: 1. 搜索框进行搜索关键字 2. 热门搜索 3. 搜索历史 4. 搜索结果(提供上拉加载效果) 上述的基本需求也是我们现在需要去实现的, 先来说一下大致的方向: 1. search 一般都是一个路由组件, 所以先…

20.Isaac教程--Python接口(Python API)

Isaac Python接口(Python API) ISAAC教程合集地址: https://blog.csdn.net/kunhe0512/category_12163211.html 虽然 Isaac SDK 的大部分部分都是用 C 编码的,但您可以选择使用 Python 构建您的应用程序。 本文档介绍了 Isaac SDK 的 Python API。 Python API 允许您…

Day859.高性能队列Disruptor -Java 并发编程实战

高性能队列Disruptor Hi,我是阿昌,今天学习记录的是关于高性能队列Disruptor的内容。 并发容器 中Java SDK 提供了 2 个有界队列: ArrayBlockingQueueLinkedBlockingQueue 它们都是基于 ReentrantLock 实现的,在高并发场景下&…

人工智能的过去与未来——萌芽

1943年—M-P模型 美国神经生理学家Warren McCulloch和数理逻辑学家Walter Pitts在合作的《A logical calculus of the ideas immanent in nervous activity》论文中对生物神经元进行建模,并提出了一种形式神经元模型,命名为McCulloch-Pitts模型。 生物…

65. Python __init__方法

65. __init__方法 文章目录65. __init__方法1. 知识回顾在类的方法中调用类的属性2. 知识回顾调用方法时传值3.体验__init__方法4. __init__的作用5. __init__方法的写法6. __init__方法调用类的属性7. 课堂实操1. 知识回顾在类的方法中调用类的属性 【目标任务】 创建一个类…