公式不变的情况下只汇总非隐藏的列的值,让隐藏的列"彻底消失"

隐藏列,是我们经常使用的一项功能 。但是大家有没有注意到一个问题 , 当我们把某一列隐藏了以后,在对某个区域的求和等操作时,隐藏的列仍然会参与计算 。很多时候我们是不希望这样的,我们希望把某一列隐藏后,在汇总求和的时候就忽略该列的值,而没有必要更改求和公式的计算区域 。我们还是以最常见的学生成绩的例子来讲解今天的内容 。

公式不变的情况下只汇总非隐藏的列的值,让隐藏的列"彻底消失"

以上成绩表,我们希望实现的效果是,在不更改G列总分的公式的前提下,比如当我们将历史和计算机成绩列隐藏的时候 , 总分就变成了求语文和数学列,如果我们取消隐藏,又会变成求所有列 。效果如下:相信很多小伙伴看到这个要求,脑子中肯定会蹦出一个想法,我们能够用某个函数判断一列某一列是否被隐藏,然后返回一个值,然后在使用条件求和函数sumif不是就能实现这个功能了嘛 。思路完全正确 。那用什么函数可以实现呢?
公式不变的情况下只汇总非隐藏的列的值,让隐藏的列"彻底消失"

一、神奇的cell函数

Cell是是EXCEL中的信息函数,返回有关单元格的格式、位置或内容的信息 。
语法:=cell(Info_type,reference)
参数解释:
Info_type:为要返回的单元格信息类型,可以为如下参数 。
公式不变的情况下只汇总非隐藏的列的值,让隐藏的列"彻底消失"

reference:单元格引用 。
请看下面的一个例子 。
公式不变的情况下只汇总非隐藏的列的值,让隐藏的列"彻底消失"

根据以上的介绍 , 我们可以使用cell中的width返回单元格的列宽,当该列被隐藏时,返回值为0 。

二、sumif条件求和

语法:= SUMIF(range,criteria,sum_range)
参数解释:
Range:条件区域,用于条件判断的单元格区域 。
Criteria:求和条件,由数字、逻辑表达式等组成的判定条件 。
Sum_range:实际求和区域,需要求和的单元格、区域或引用 。当省略该参数时,则条件区域就是实际求和区域 。

三、案例实现

根据以上的介绍,我们需要将第二行设置为辅助行,用于返回列宽计算值,C2的公式为:
=CELL("width",C1) 。
则总分列的计算公式为:
=SUMIF($C$2:$F$2,">0",C3:F3) 。
公式不变的情况下只汇总非隐藏的列的值,让隐藏的列"彻底消失"

当设置完成后,大家就会发现一个问题,当我们对某个列进行了隐藏或者取消隐藏时,总分的计算结果并不会发生改变,这到底是是什么原因呢?这是因为CELL虽然函数为"易失性"函数,但"隐藏"或"取消隐藏"命令不会引起其重算,因此需要手动按【F9】键或用其他方式刷新计算结果 。
为了解决某些强迫症朋友的问题,我们可以使用VBA代码实现让某列隐藏后取消隐藏后自动进行计算 。在本工作表中添加代码如下:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Calculate
End Sub
公式不变的情况下只汇总非隐藏的列的值,让隐藏的列"彻底消失"

为了美观,我们可以将第二行的辅助行删除 。
【公式不变的情况下只汇总非隐藏的列的值,让隐藏的列"彻底消失"】如果需要获取本教程的演示文件,请点击我名字后面的关注,然后私信【隐藏不计算】获取 。

相关经验推荐