我用OFFET和COUNT做了一件有趣的事
几个月前,帮同事做了一个直接显示各账户每日最新余额的工具,比如下面简化的示例:
我们可以看到第二个图片中B列和C列将各银行的最后一列的日期和余额全部带了过来,也就是最新的日期的余额,这个是有些同志心中认为最牛的vlookup函数V不出来的,这里省略日期的影响,即使直接列出日期VLOOKUP也做不到,因为一天的发生额可能有多笔,但VLOOKUP只会显示这一日的第一笔,而不会显示最后一笔,hlookup凑活能实现,但真的不是很方便,实现起来比较别扭。
接下来我们说说这是怎么实现的,COUNT函数是计数函数,也就是数个数,我们可以借用count函数计算我们各个银行余额的那一列有多少行。
接下来我们利用OFFSET函数,我们叫它数据偏移函数,使用方法之前的文章多次都有提到,这里我再简单演示一下
第三个参数2,表示向右移动2行,如果为负数就是向左移动2行,如果是0,就是还在基点的那一列,
第二个参数是4便是向下移动4行,如果是负数就是向上移动4行,如果是0,就是还在基点那一行,
第三个参数2,表示向右移动2行,如果为负数就是向左移动2行,如果是0,就是还在基点的那一列
第4个参数和第5个参数表示行高和列宽,代表一个区域,如果两个参数都是1,那就是一个单元格,
说完这两个函数,大家应该就有感觉了吧,是的先利用COUNT函数计算到余额那一列有多少行,我们可以把COUNT函数的计数的范围放到足够大,可以count(C1$:C10000),如果10000,不够可以再大,或是直接直接count($C:$C),大家在此要注意一点就是COUNT只对数字有效。
接下来我们打开余额那张表,在B2,B3单元格分别输入下面的函数
同理我们按照此方法在建行、交行、中行等输入此公式,我们就可以实现数据的实时更新了,如果感兴趣的同学还可以试试indirect再结合实现更加的数据自动化。