刚刚!Excel出现BUS,好多人都中枪,速看

最近2天,Excel频繁出现BUS,好多学员都中枪。

正常的操作界面。

有异常的操作界面,字体这一块的功能消失了。

解决方法,在Excel选项,自定义功能区,主选项卡,将字体添加到开始的主选项卡里面,就恢复正常。


没遇到最好,遇到的就按上面方法解决,就不再细说,下面聊多表嵌套INDIRECT。


这是VIP学员的一份表格,有很多张表,现在要将信息费、过路费、食宿等费用项目的合计引用过来。

分表总体还算标准,就是费用项目的顺序跟汇总表不一样,合计的行数也不确定。

昨天的文章是格式相同,而且只有一列,公式很简单。

=SUM(INDIRECT(A2&"!C:C"))

今天是格式不同,而且多列,就复杂一些。引用合计,合计是数字,可以用SUM函数家族,也可以用VLOOKUP函数家族。

1.SUM函数家族

现在先引用粤C88888这张表。费用项目都是第2行是固定的,而求和区域不固定,分表最多40多行,为了保证区域都包含进去,选到99行。分表本身有合计,求和以后再除以2才是对的。

=SUMPRODUCT((粤C88888!$I$2:$Z$2=B$1)*粤C88888!$I$3:$Z$99)/2

语法说明:

=SUMPRODUCT((条件区域=条件)*求和区域)

现在是多表,就得借助INDIRECT间接引用分表的区域。

=SUMPRODUCT((INDIRECT($A2&"!$H$2:$Z$2")=B$1)*INDIRECT($A2&"!$H$3:$Z$99"))/2

其实不要把INDIRECT想复杂了,你就把她当成第三方,只要通过她牵线,单元格的名称才能跟工作表的名称组合在一起,起到一个辅助作用而已。

2.VLOOKUP函数家族

依然先看一张表,合计在A列,至于第几行,这个对VLOOKUP没影响。而有影响的是费用项目,需要判断在第几列。

判断第几列,都是用MATCH,如果找不到就返回错误值。

=MATCH(B$1,粤C88888!$2:$2,0)

再结合VLOOKUP就可以找到对应值。

=VLOOKUP("合计",粤C88888!$A:$Z,MATCH(B$1,粤C88888!$2:$2,0),0)

有错误值,不方便后期运算,再嵌套IFERROR让错误值返回0。

=IFERROR(VLOOKUP("合计",粤C88888!$A:$Z,MATCH(B$1,粤C88888!$2:$2,0),0),0)

最后再嵌套INDIRECT就搞定。

=IFERROR(VLOOKUP("合计",INDIRECT($A2&"!$A:$Z"),MATCH(B$1,INDIRECT($A2&"!$2:$2"),0),0),0)

写公式就是这样,先每一小步写好,再慢慢组合起来,完成最终公式。

推荐:你要的INDEX教程来了,速看!

上文:三大函数家族能搞定80%的工作,谁最受欢迎?

关于INDIRECT还有什么疑问?

作者:卢子,清华畅销书作者,《Excel效率手册 早做完,不加班》系列丛书创始人,个人公众号:Excel不加班(ID:Excelbujiaban)

(0)

相关推荐