Hi,大家好,我是胖斯基

最近重温了一遍金庸武侠巨著,芸芸众生中有武侠大师,有凡夫俗子……

财务常用函数公式大全(你眼中的小函数)(1)

最为惊叹的还是那扫地神僧般的隐者,信手拈来,都是神兵利器,横扫千军……

然后有些人就开始YY了,仿佛自己若拿的手,也能一统江湖,殊不知,学的不精,也就是一棒槌,充其量也就一威风凛凛的装饰……

财务常用函数公式大全(你眼中的小函数)(2)

同样,在Excel中,也一样如此!

比如函数:INDIRECT,乍一看不明白什么意思,没事,翻译一下:间接的,不直截了当的……

财务常用函数公式大全(你眼中的小函数)(3)

可能更晕,还不如不看

于是乎

一把神兵利器就被你当做火烧棍给扔在了一边……

那Ta有什么用呢,看看我们财务人怎么玩?

一、检验表名是否有误

每逢月底,财务会向各部门或各分公司归集整理数据。So,下发一套标准的Excel表,里面设置好了表样和公式,填报人直接填写就可以了。

然后

总有一些别出心裁的人,把你Sheet表名给改动了,导致了你回收回来后,多个工作簿在汇总时,无法利用现有的模板公式去自动算数据

是不是有一种牙咬切齿的感觉?

那怎么做呢?

比如:我们看看下面的情况

财务常用函数公式大全(你眼中的小函数)(4)

上图中,下发的套表涵盖了几个页签,为了显示方便,我们做了一个【稽核】的页签,就是为了来检验Sheet表名是否进行了修改

我们设置一个公式后,就会自动判别Sheet表名是否修改

财务常用函数公式大全(你眼中的小函数)(5)

怎么样,是不是很直观,这样无论是填报人,还是数据汇总人,一看【稽核】的页签,就知道原表是否发生了人为的变化,这样避免了在数据汇总出错时反过来再来检查错误。

原理很简单,就是利用了INDIRECT函数,公式如下:

这里的重点是:INDIRECT(C5&"!A1"),C5里面的内容是其中一个页签的名称,所以C5&"!A1"就转化为了201809销售费用!A1,再利用INDIRECT来获取该单元格的内容。

那如果201809销售费用页签没有更改名字,那INDIRECT(C5&"!A1")是可以获取到内容(因为表存在),反之因为表不存在,则无法获取,会提示错误。那之后再配合ISERROR和IF函数,再做逻辑性的判断说明即可。

这里为什么要用INDIRECT呢?因为检验的是多张表,而每张表的表名不一样,所以为了保持公式的灵活度,需要获取表名的这个过程是个动态的,而为了把持这个动态,就不能直接去引用(这种方式是固定的),而需要间接去引用,而这个间接则就是利用INDIRECT。

可能还不太好理解,我们再看一个

二、跨表快速查询信息

招采部门在执行采购时,前期会有一个核价过程,核价完成后,会指定某个供应商,此时的采购清单里面每个物品涉及到不同供应商的报价,那如何简化操作呢?

比如供应商的报价是这样的:

财务常用函数公式大全(你眼中的小函数)(6)

你的采购清单是这样的

财务常用函数公式大全(你眼中的小函数)(7)

里面供应商列中,有不同的供应商,如果你采用采用最传统的模式,直接指定明确的表进行VLOOKUP时,没问题

比如第1行的公式:VLOOKUP(B2,供应商A!A:B,2,0),可以正确计算出结果,但是如果供应商现在换了呢?一个产品报价还好,如果涉及到多个产品报价的调整呢,再来大幅度修改VLOOKUP的公式,那可真就欲哭无泪了。

想想上面的例子,这里的查询是涉及到多个页签,不固定,那是否立马想到了采用INDIRECT来动态获取呢?

就像这样:

财务常用函数公式大全(你眼中的小函数)(8)

来观察一下其公式:

财务常用函数公式大全(你眼中的小函数)(9)

其固定和动态的的区别就在于INDIRECT,利用INDIRECT来获取不同表的内容,这样保障了公式的灵活性,无论选择那家供应商报价,基本无障碍。

这些都是最基本的,那再看看财务人常处理的多表合并的问题

三、多表快速合并总表

比如:每个月度都有一个销售业绩表,每季度或半年度的数据要统一汇总,如下所示

财务常用函数公式大全(你眼中的小函数)(10)

财务常用函数公式大全(你眼中的小函数)(11)

可能你会每张表逐次复制粘贴

可能你会逐次用"="的模式跨表连接

但是会存在一个问题,如果表的数量少,还能接受。但是表的数量多的话,那只能望山跑死马,做表做到吐

那问题还是这个问题,依旧涉及到多表的问题,并且还是动态,So,又该INDIRECT函数登场

财务常用函数公式大全(你眼中的小函数)(12)

公式:=INDIRECT(B$1&"!B"&ROW())

观察表头,这里表头列的名称和Sheet名称信息一致,故通过获取列头的名称来跨表进行数据提取,So,这里便用到了B$1&"!B",由于产品1到产品9是分布在每一行,所以这里用了一个ROW()函数来动态获取行,最终通过INDIRECT来合并处理,即可达到实现效果。

也许细心的你会发现,实际中,表格不会这么理想化,有的月份产品没有销售业绩,空行就直接忽略

财务常用函数公式大全(你眼中的小函数)(13)

那再用上面的公式则会出错(因为行不在统一),那如何处理呢?

依然还是刚才的思路,采用INDIRECT进行动态处理,此时由于要涉及到产品匹配问题,需要用INDEX MATCH

财务常用函数公式大全(你眼中的小函数)(14)

公式:=IFERROR(INDEX(INDIRECT(B$1&"!B:B"),MATCH($A2,INDIRECT(B$1&"!A:A"),0)),"-")

这里的核心还是INDIRECT,分别结合INDEX MATCH组合,其本质原理还是一样,这里就不做解释了,可以思考一下。

综上可知:

针对INDIRECT函数,其含义是:间接的,不直截了当的,即:再处理问题的时候,如果涉及到的是多页签,多表的情况下,可以采用INDIRECT动态模式,这样就简化了公式的处理,让表格更具弹性

你学会了吗?

更多精彩,敬请关注Excel老斯基

,