谁说Excel只是个软件?在我看来,它活脱脱就是个该死的亘古怪兽,专门为数来戕害可怜的上班族!
作为一个资深的Excel自学达人,我可太清楚这个事实了。那些看似简单的操作,真正下手去做的时候,却往往让人涕泗横流。就拿跨工作表求和来说吧,用对了方法,分分钟的事;可若一个傻蛋,非得硬上疏狂,那才是人吓人、狗吓狗呢!
在我入行之初,也曾被这怪兽狠狠虐过。那会儿,我是个门外汉,对Excel一窍不通。为了完成老板交待的任务,我费尽了九牛二虎之力,结果还是一败涂地。最后只好红着脸,请教比我早入行的前辈。

那位前辈可真是高人啊!一开口就道破了跨工作表求和的两种常见情况,分别对应子表员工顺序一致和不一致的情况。对于第一种情况,他的做法干脆利落,使用SUM函数加通配符就搞定了。公式简单又实用,一学就会=SUM''!B2。
至于第二种情况,他则运用了高级函数SUMIFS和INDIRECT的绝妙组合,令跨表求和捷径无数。就算子表员工顺序不一致,也能让公式自动对目标范围内所有工作表进行求和。用他的原话说就是"区区两个函数的搭配,就能让跨工作表求和如虎添翼!"

我当时听了就目瞪口呆,只觉对方真是才高八斗。不过,仔细一想,也的确是这个道理。SUMIFS用来对范围内工作表进行条件求和,INDIRECT则能将文本串转为引用,两者相得益彰,自然事半功倍。
据我所知,前辈用的具体公式是这样的=SUMSUMIFSINDIRECT$D$1$D$5&"!BB",INDIRECT$D$1$D$5&"!AA",A2。看上去复杂,实则有迹可循。

不过,如果D列用的是整列数据,情况就又有些不同了。这时需要再嵌套一个IFERROR函数,避免出错。公式就变成了=SUMIFERRORSUMIFSINDIRECTDD&"!BB",INDIRECTDD&"!AA",A2,0。
前辈对这种嵌套方法是深恶痛绝的,理由也很简单——计算量太大,效率低下,表格易卡顿。所以,他建议对于整列数据的情况,最好用VBA编个小程序,事半功倍。

我当然佩服前辈的高明,也由衷认同他的见解。不过,世上没有十全十美的方法,付出和收益往往是相辅相成的。编写VBA程序固然高效,但写起来也得花更多的心思和时间,门槛较高。反之,公式运算虽低效,但无需太高门槛,通俗易学。
换句话说,对于资深人士而言,VBA肯定是更佳选择。可对于我们这些小白,还是先从最基础的公式运算入手为好。毕竟,熟能生巧,日积月累总能进阶的。就像当年的我一样,从门外汉做起,慢慢也练就了一手超凡本领。

所以,无论你是Excel新手还是老手,面对跨工作表求和这个难题,都请三思而后行。贪功心切用高端方法,难免力不从心;执迷于低级做法,则终将掣肘难行。关键是要因陋就简,量力而行,知難而上,渐入佳境。
在这个过程中,你我都当如那可敬的前辈一般,虚心向人求教,勤于钻研,精益求精。只有这样,Excel这个怪兽才不攻自破,我们这些上班族也才能在数据分析的大潮中赢得自己的一席之地!
