技巧|看财务如何1个函数,玩转Excel多表合并

Hi , 大家好,我是胖斯基
最近重温了一遍金庸武侠巨著,芸芸众生中有武侠大师,有凡夫俗子……

技巧|看财务如何1个函数,玩转Excel多表合并

最为惊叹的还是那扫地神僧般的隐者,信手拈来 , 都是神兵利器,横扫千军……
然后有些人就开始YY了,仿佛自己若拿的手,也能一统江湖,殊不知 , 学的不精 , 也就是一棒槌,充其量也就一威风凛凛的装饰……
技巧|看财务如何1个函数,玩转Excel多表合并

同样,在Excel中,也一样如此!
比如函数:INDIRECT,乍一看不明白什么意思 , 没事 , 翻译一下:间接的,不直截了当的……
技巧|看财务如何1个函数,玩转Excel多表合并

可能更晕,还不如不看
于是乎
一把神兵利器就被你当做火烧棍给扔在了一边……
那Ta有什么用呢,看看我们财务人怎么玩?
一、检验表名是否有误
每逢月底,财务会向各部门或各分公司归集整理数据 。So,下发一套标准的Excel表,里面设置好了表样和公式,填报人直接填写就可以了 。
然后
总有一些别出心裁的人,把你Sheet表名给改动了,导致了你回收回来后,多个工作簿在汇总时,无法利用现有的模板公式去自动算数据
是不是有一种牙咬切齿的感觉?
那怎么做呢?
比如:我们看看下面的情况
技巧|看财务如何1个函数,玩转Excel多表合并

上图中,下发的套表涵盖了几个页签,为了显示方便,我们做了一个【稽核】的页签,就是为了来检验Sheet表名是否进行了修改
我们设置一个公式后,就会自动判别Sheet表名是否修改
技巧|看财务如何1个函数,玩转Excel多表合并

怎么样,是不是很直观,这样无论是填报人,还是数据汇总人,一看【稽核】的页签,就知道原表是否发生了人为的变化 , 这样避免了在数据汇总出错时反过来再来检查错误 。
原理很简单 , 就是利用了INDIRECT函数 , 公式如下:
这里的重点是:INDIRECT(C5&"!A1"),C5里面的内容是其中一个页签的名称,所以C5&"!A1"就转化为了201809销售费用!A1,再利用INDIRECT来获取该单元格的内容 。
那如果201809销售费用页签没有更改名字,那INDIRECT(C5&"!A1")是可以获取到内容(因为表存在),反之因为表不存在,则无法获?。?会提示错误 。那之后再配合ISERROR和IF函数,再做逻辑性的判断说明即可 。
这里为什么要用INDIRECT呢?因为检验的是多张表,而每张表的表名不一样,所以为了保持公式的灵活度 , 需要获取表名的这个过程是个动态的,而为了把持这个动态,就不能直接去引用(这种方式是固定的),而需要间接去引用 , 而这个间接则就是利用INDIRECT 。
可能还不太好理解,我们再看一个
二、跨表快速查询信息
招采部门在执行采购时,前期会有一个核价过程,核价完成后,会指定某个供应商,此时的采购清单里面每个物品涉及到不同供应商的报价,那如何简化操作呢?
比如供应商的报价是这样的:
技巧|看财务如何1个函数,玩转Excel多表合并

你的采购清单是这样的
技巧|看财务如何1个函数,玩转Excel多表合并

里面供应商列中,有不同的供应商,如果你采用采用最传统的模式,直接指定明确的表进行VLOOKUP时,没问题
比如第1行的公式:VLOOKUP(B2,供应商A!A:B,2,0) , 可以正确计算出结果,但是如果供应商现在换了呢?一个产品报价还好,如果涉及到多个产品报价的调整呢 , 再来大幅度修改VLOOKUP的公式,那可真就欲哭无泪了 。
想想上面的例子,这里的查询是涉及到多个页签,不固定,那是否立马想到了采用INDIRECT来动态获取呢?
就像这样:
技巧|看财务如何1个函数,玩转Excel多表合并

来观察一下其公式:
技巧|看财务如何1个函数,玩转Excel多表合并

其固定和动态的的区别就在于INDIRECT,利用INDIRECT来获取不同表的内容,这样保障了公式的灵活性,无论选择那家供应商报价,基本无障碍 。
这些都是最基本的,那再看看财务人常处理的多表合并的问题
三、多表快速合并总表
比如:每个月度都有一个销售业绩表,每季度或半年度的数据要统一汇总,如下所示
技巧|看财务如何1个函数,玩转Excel多表合并

技巧|看财务如何1个函数,玩转Excel多表合并

可能你会每张表逐次复制粘贴
可能你会逐次用"="的模式跨表连接
但是会存在一个问题,如果表的数量少,还能接受 。但是表的数量多的话,那只能望山跑死马 , 做表做到吐
那问题还是这个问题,依旧涉及到多表的问题,并且还是动态,So,又该INDIRECT函数登场
技巧|看财务如何1个函数,玩转Excel多表合并

公式:=INDIRECT(B$1&"!B"&ROW())
观察表头,这里表头列的名称和Sheet名称信息一致,故通过获取列头的名称来跨表进行数据提?。?So , 这里便用到了B$1&"!B",由于产品1到产品9是分布在每一行 , 所以这里用了一个ROW()函数来动态获取行,最终通过INDIRECT来合并处理,即可达到实现效果 。
也许细心的你会发现,实际中,表格不会这么理想化,有的月份产品没有销售业绩,空行就直接忽略
技巧|看财务如何1个函数,玩转Excel多表合并

那再用上面的公式则会出错(因为行不在统一),那如何处理呢?
依然还是刚才的思路,采用INDIRECT进行动态处理,此时由于要涉及到产品匹配问题 , 需要用INDEX MATCH
技巧|看财务如何1个函数,玩转Excel多表合并

公式:=IFERROR(INDEX(INDIRECT(B$1&"!B:B"),MATCH($A2,INDIRECT(B$1&"!A:A"),0)),"-")
这里的核心还是INDIRECT,分别结合INDEX MATCH组合 , 其本质原理还是一样,这里就不做解释了 , 可以思考一下 。
综上可知:
针对INDIRECT函数,其含义是:间接的,不直截了当的 , 即:再处理问题的时候,如果涉及到的是多页签 , 多表的情况下,可以采用INDIRECT动态模式,这样就简化了公式的处理,让表格更具弹性
你学会了吗?
【技巧|看财务如何1个函数,玩转Excel多表合并】更多精彩,敬请关注Excel老斯基

相关经验推荐