我们都知道当数据过多的时候,我们制作Excel图表就会显得非常的复杂,图表上面的内容就会特别多。Excel老玩家就会想到用切片器制作动态可变化的图表来显示。今天我们就来学习一下一个比......
2023-01-08
有时需要在Excel表格中动态地反映筛选后数值的变化情况,如下图中F32单元格中的合计值会随着不同的筛选情况而变化。我们知道,用SUBTOTAL函数可以求出筛选后可见单元格的数值和或平均值等,因为SUBTOTAL函数会忽略不包括在筛选结果中的行。例如下图是筛选“商品名称=袜子”、“类别=男”时的结果,其中F32单元格中的公式为:
=SUBTOTAL(9,F10:F31)
但如果此时还需要动态地反映筛选后各城市的合计值,即进行筛选后的条件求和,仅仅使用SUBTOTAL函数无法实现。虽然用多条件求和公式可以得到计算结果,但我们的目的是要随着不同的筛选操作,能够动态实时地反映数据的变化情况,因而此处不宜使用多条件求和公式。关于多条件求和公式,可以参考本站《用公式进行多条件求和》一文。
要在筛选后进行条件求和,可以使用下面的几个公式。以下图为例,假如数据在A10:F31区域中。
1.统计筛选后“广州”的销售数量:
在B2单元格中输入公式:
=SUMPRODUCT(SUBTOTAL(9,OFFSET($F$10,(ROW($F$10:$F$31)-MIN(ROW($F$10:$F$31))),)),–($B$10:$B$31=A2))
说明:
① ROW($F$10:$F$31)-MIN(ROW($F$10:$F$31))返回一个包含22个数值的数组{0;1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21}。
② 用OFFSET函数返回包含F10:F31各单元格中的数值的数组。
③ 用SUBTOTAL函数返回包含筛选后可见单元格数值的数组,不可见单元格对应数组中的数值为0。如本例中返回包含22个数值的数组{359;535;0;0;0;297;0;308;0;0;0;1021;0;0;0;0;0;506;392;0;0;0}。
④ –($B$10:$B$31=A2)返回一个包含数值1和0的数组,其中值为“广州”的单元格对应数组中的数值为1。本例中返回包含22个数值的数组{1;0;0;1;0;1;0;0;0;0;1;1;0;1;0;1;0;1;0;1;0;1}。
⑤ 最后用SUMPRODUCT函数返回上述两个数组的乘积和,得到所需结果。
另一个类似的数组公式为:
=SUM(SUBTOTAL(9,OFFSET($F$9,ROW($1:$22),))*($B$10:$B$31=A2))
该公式为数组公式,输入完毕后按Ctrl+Shift+Enter结束。
2.统计筛选后“广州”的记录数:
只需将上述公式中SUBTOTAL函数的参数“9”改为“3”即可。如在C2单元格中输入公式:
=SUMPRODUCT(SUBTOTAL(3,OFFSET($F$10,(ROW($F$10:$F$31)-MIN(ROW($F$10:$F$31))),)),–($B$10:$B$31=A2))
或数组公式:
=SUM(SUBTOTAL(3,OFFSET($F$9,ROW($1:$22),))*($B$10:$B$31=A2))
都可以返回数值4,表示筛选后有4条“广州”的记录
相关文章
我们都知道当数据过多的时候,我们制作Excel图表就会显得非常的复杂,图表上面的内容就会特别多。Excel老玩家就会想到用切片器制作动态可变化的图表来显示。今天我们就来学习一下一个比......
2023-01-08
在工作中,可能许多朋友都会碰到一个情况,那就是工作簿和工作表数据的合并操作。如何将上百个工作簿快速合并到一个表格中,许多朋友可能会觉得不可思议。今天我们就来教大家学习一......
2023-01-08
今天在这里为你分享5个Excel文本函数,这些拆分和组合函数,你一定会用上的。①LEFT函数公式:=LEFT(A2,1)在Excel表格中,需要想要拆分汉字,想从哪里开始就从那哪里开始。首先选定单元格......
2023-01-08
相信大家也和我一样,才开始看到Excel可以当做翻译软件的时候会很好奇,这究竟是怎样做到的?其实,这个方法并不是很难,它是由一个函数公式而制作出来的,好了,首先我们一起来看看成......
2023-01-08
函数可以说是所用快捷方法中最为简单的一种方法,为什么很多人认为函数用起来很难了?主要是因为它拥有很长的函数公式,记不住。其实不管是学Excel函数,还是学习其他的一些快捷方法......
2023-01-08