今天在学习录入数据章节中,看到了一个非常有意思的函数:SUBTOTAL函数。我想系统的来了解下,那么记录下我的学习过程。
先来了解下SUBTOTAL函数:
函数表示为:SUBTOTAL(function_num, ref1, ref2, ...),这是一个功能强大的分类汇总函数。
参数意义为:Function_num:该参数代码的对应功能在下表中,指定使用何种函数在列表中进行分类汇总计算。Ref1、ref2, ...:为要进行分类汇总计算的1到254个区域或引用。
说实话,这个官方解释实在没看懂。只能继续问度娘,但没找到哪篇文章能够把这个函数讲全面的。SUBTOTAL函数不是一个单一的函数,它是上表中11种函数的集合,它可以取代某些条件下上述11种函数的任何一种用法,所以它是一个功能很强大的函数。还是实操演示一下更好理解:
1.当SUBTOTAL函数中参数值 Function_num=1或101时,依据上表,此时SUBTOTAL代表函数AVERAGE,即为求算术平均值。当Function_num取1时,将会把手动隐藏行中的数值也纳入平均值计算。如下图所示,虽然我手工隐藏了4-7序号行的数值,但求出的结果仍为1-9行数值的平均值14。当Function_num取101时,将会把手动隐藏行的数值忽略掉,不纳入平均值计算。如下图所示,我手工隐藏了4-7序列行的数值,求出的结果就为1-3行加8-9行这5行数值的平均值13.6。
总结一下:不论函数中参数值Function_num=1或101,SUBTOTAL代表的函数都为AVERAGE。区别就在于“Function_num=1”时会计算所选区域内所有数值的平均值,而“Function_num=101”时是计算所选区域内未经手工隐藏的所有可见数值的平均值。一个算全部,一个算可见。
有点绕对吧,我今天就被绕了半天出不来。SUBTOTAL函数有三个非常重要的特点(这是经过多次试验失败后总结出来的结果):
1.必须手工隐藏的是格式中的行,而不是列。对于列项,该公式无法忽略隐藏值。即对于横排的数值,采用SUBTOTAL函数时,Function_num=1或101结果都一样!
2.必须是手工选择的格式菜单下对应行的隐藏,Function_num=1或101时算出的值才会有区别。
3.对于筛选后的隐藏,该公式都将不再计算筛选后被隐藏的数值,所以这时Function_num=1和101的计算结果都一样,都只计算筛选后看到的数值函数结果。记住,筛选不叫手工隐藏!
感觉功能越强大的函数,限制就会越多。我想,了解了这个函数的特性后,对于后面包含的另外10种函数的用法就能更好理解了。
明天,将继续学习SUBTOTAL函数中Function_num为2-11的函数用法。