Excel数据透视表从新手到高手
上QQ阅读APP看书,第一时间看更新

3.2.2 COUNTA和OFFSET函数

如果要创建动态的数据透视表,首先需要将数据源定义为一个动态名称。这里所说的“动态”是指改变数据源的范围时,Excel可以自动捕获数据源的最新范围。创建这样的动态名称时,需要使用COUNTA和OFFSET两个函数。下面介绍这两个函数的功能和语法。

1.COUNTA函数

COUNTA函数用于计算参数中包含非空值的个数。

     COUNTA(value1,value2,…)

value1,value2表示要计算非空值个数的1~255个参数,可以是直接输入的数字、单元格引用或数组。

提示:如果使用单元格引用或数组作为COUNTA函数的参数,COUNTA将统计除空白单元格以外的其他所有值,包括错误值和空文本("")。

2.OFFSET函数

OFFSET函数用于以指定的引用为参照,通过给定偏移量得到新的引用。返回的引用可以是一个单元格、一个单元格区域,而且可以指定返回区域的大小。

     OFFSET(reference,rows,cols,height,width)

第1参数为原始区域地址;第2参数为相对于偏移量参照系的左上角单元格向上(下)偏移的行数;第3参数为相对于偏移量参照系的左上角单元格向左(右)偏移的列数;第4参数为要返回的区域的行数;第5参数为要返回的区域的列数。

提示:如果省略row和cols两个参数,那么将其当作0处理,即新基点与原始基点位于同一个位置,OFFSET函数不进行任何偏移。当省略row和cols参数时,需要保留它们的逗号分隔符,比如OFFSET(B2,,,3,4)。如果省略height或width参数,那么假设其高度或宽度与reference参数表示的区域相同,即新的区域与原区域大小相同。

COUNTA函数比较简单,但是OFFSET函数相对比较复杂,因此这里详细介绍一下OFFSET函数的用法。OFFSET函数的工作原理可以分解为以下两步:

(1)对原始基点(reference参数)进行偏移操作,偏移的方向和距离由OFFSET函数中的第2参数(rows参数)和第3参数(cols参数)指定。如果这两个参数是正数,则向下和向右偏移;如果是负数则向上和向左偏移。在第(1)步中,原始基点移动到了由rows和cols参数值确定的新位置。

(2)在确定了基点的新位置后,通过height和width参数的值来返回指定行数和列数的区域。

例如,公式OFFSET(B2,3,2,4,2)从单元格B2开始,将单元格B2向下偏移3行,向右偏移2列,原始基点移动到了单元格D5。然后以单元格D5为新基点,向下扩展4行,向右扩展2列,组成一个4行2列的区域。