在连载的上一篇文章中,我们制作了【开始月份】和【终止月份】对应的下拉菜单。本节,小鱼将根据起止月份进行业绩求和(见图注 ①),同时将求和的范围在表格中表示出来(见图注 ②)。
下面,我们就来开始今天的学习!
一、动态范围求和
动态范围求和:用户自主选择起点、终点,求和范围随之变化。
1.1 定义名称【终止月份】
由于求和的范围会根据我们在下拉菜单中选择的【起始月份】和【终止月份】而发生变化,因此使用 SUM 函数进行求和时,关键的步骤也就落到了【动态范围引用】。
获取了动态范围,直接作为参数传入 SUM 求和即可。通过上一篇文章的学习,我们知道只要是动态范围,我们要马上想到 OFFSET + MATCH 函数。
在连载的上一篇文章中,我们使用 MATCH 函数计算起始月份在月份标题行中的位置,并将该公式定义成了名称:
为了确定求和的范围,我们自然也需要确定【终止月份】的位置,点击上述窗口中的【新建】或者点击【公式 - 定义名称】,我们来定义【终止月份】的位置计算公式。
输入名称为【终止月份】,在引用位置输入框中,我们直接录入公式 =MATCH(
,点击 P2
单元格录入查找值,填写 ,
,继续选择 C2:N2
的区域以录入查找区域,最后录入 ,0)
。
温馨提示:所有的标点符号均应在英文状态下录入;点击拖拽【新建名称】窗口的右下角,可以进行窗口缩放。
接下来,我们用定义的名称【起始月份】和【终止月份】完成求和区域的动态引用。
1.2 动态引用求和区域
提到动态范围引用,除了 MATCH 函数,还要立刻想到 OFFSET 函数。我们先来回顾一下 OFFSET 函数表达式:
=OFFSET(参考单元格, 行数, 列数, 高度, 宽度)
下面,我们假设选定的月份为 4月~7月 ,则对于产品 a1 计算全年销售额的求和范围就为 F3:I3
的区域,如下图黄色框所示:
参考单元格选定为 C3
,则定位区域 F3:I3
只需要向右偏移 3
列,即起始月份 - 1:4-1=3
。引用的区域高度为 1
行,宽度为 4
列,其中高度是固定的,宽度为终止月份 - 起始月份 + 1:7-4+=3
。
温馨提示:上述引用的【起始月份】和【终止月份】均为前面定义的名称,表示起始月份/终止月份在月份标题行中的位置。
下面,我们在 Q3
单元格录入 OFFSET
公式以验证参数是否正确。点击 Q3
单元格,录入如下公式:
=OFFSET(C3,0,起始月份-1,1,终止月份-起始月份+1)
其中,参考单元格为 C3
,偏倚的行数为 0
,即上下不需要移动;向右偏移的行数为 起始月份-1
,引用区域的高度为 1
行,宽度为 终止月份-起始月份+1
。
使用自动填充功能,完成所有产品的求和范围计算,通过核对,引用区域符合我们的预期:均为各产品 4~7 月份的销售额。
最后,我们只需要将 OFFSET 函数返回的引用区域传递给 SUM
函数求和就可以啦。点击 O3
和 P3
的合并单元格,录入公式:
=SUM(OFFSET(C3,0,起始月份-1,1,终止月份-起始月份+1))
回车之后,使用自动填充计算剩余产品的销售额统计:
至此,我们已经完成了动态范围求和,不过由于左侧数据比较多,我们很难一眼看出来是哪几列数据相加。为了进一步提升报表的可读性,我们将使用条件格式对求和所引用的区域进行颜色标注。
二、条件格式标注求和范围
条件格式:可以根据条件自动变化的智能格式。
2.1 选中条件格式设置区域
点击 C3
单元格,按住 SHIFT
键点击 N22
单元格,即可选中 C3:N22
的区域。
我们将为该区域设置条件格式,点击【开始】选项卡中的【条件格式 - 新建规则】选项。
弹出【新建规则】对话框,我们将在此对话框中,完成条件格式的设置:
- 使用公式设置规则
- 设置格式
2.2 使用公式设置规则
首先,选择规则类型:【使用公式确定要设置格式的单元格】。
在设置条件格式中,我们经常用到的两个函数为:COLUMN()
ROW()
,前者用来返回公式所在单元格的列号,后者返回行号。若使用参数指定了单元格,则返回该单元格的列(行)号。
此处,我们需要为选定区域中,位于求和范围内的列设置格式,因此需要用到 COLUMN
函数。我们不妨先在四月和七月所在的列录入 =COLUMN()
,观察一下返回值:
如上,四月和七月所在的列位于报表中的第 6
列和第 9
列。接下来,我们在其下方分别录入上文定义的名称 =起始月份
和 =终止月份
:
我们发现,用于动态范围求和的【起始月份】和【终止月份】加 2
,就得到了我们需要标注的范围:列号位于【起始月份 + 2】~【终止月份 + 2】的区域。
用公式来表述就是:
COLUMN()>=起始月份+2 且 COLUMN()<=终止月份+2
将上述两个条件放到逻辑函数 AND 中,即可实现并且的逻辑关系:
=AND(COLUMN()>=起始月份+2,COLUMN()<=终止月份+2)
为了验证公式的正确性,小鱼在报表下方的 C26
单元格录入该公式,使用自动填充,填充至 N26
单元格的位置。通过对照发现,公式返回 TRUE
的单元格正好对应的就是求和区域 5~7 月:
这样就可以放心地将公式粘贴到格式规则的公式输入框了:
接下来,点击【格式】按钮,我们来为符合公式的单元格设置格式。
2.3 设置格式
在弹出的【设置单元格格式】对话框中,选择【填充】选项:
点击【其他颜色】,选择一个和我们的主题颜色接近的浅色:
点击【确定】之后,我们求和的动态范围就被标注出来了。
当起始月份发生变化时,不仅动态完成了求和统计,而且求和的范围也会被标注出来,让报表阅读者对求和的过程一目了然。
以上就是 Excel 动态范围求和的全部内容啦~
三、总结
动态范围求和:和动态范围有关的问题,我们应想到使用 OFFSET 函数和 MATCH 函数动态获取数据引用,再使用 SUM 等统计函数完成最终的计算。
条件格式自动标注选定范围:条件格式即根据条件自动进行格式设置,在使用公式设置条件格式时,经常会用到 ROW 和 COLUMN 两个函数。
逻辑函数:表示多个条件之间的逻辑关系有两个函数 AND 和 OR,前者表示逻辑 “且” ,后者表示逻辑 “或” 。