标签:
杂谈 |
分类: Excel |
前言



好久没有跟大家分享office相关的知识了,因为最近实在是太忙,人一忙起来吧,就比较没有自由的时间,又不想随便发点什么来糊弄一下大家。我一直都不大喜欢这种状态,有人可能会说,忙点好啊,忙起来充实啊,但是太忙甚至都没有思考的时间,着实不是一件好事,没有思考和总结,就很难进步,最后可能沦落成瞎忙、穷忙了。所以理想的状态就是能够8分忙,剩下2分时间能好好做点自己想做的事情,能够沉下来想想目标和方向。
话题扯远了,今天还是跟大家来谈点实战技巧方面的东西。
最近连续碰到客户和粉丝有批量处理工作表的这个需求,所以想集中总结一下。
基本上这类表有个共同的特点,一个汇总表,一堆分表,需要在分表与总表之间建立联系。
虽然我们在前面一再强调,能不分开的尽量不要分开,不然等到时候合并汇总的时候就会非常麻烦,比如有同学在工作的时候做工作记录喜欢按天记录,每天1个表,结果1年365天下来,有366张表(含总表),要年终总结的时候傻眼了,你说你也不会编程VBA之类的,一个个手动处理你这是要作死的节奏啊。
话虽这么说吧,但是现实中总是免不了这样的情况发生,比如有的是boss的要求,有的可能是外行的屁股决定脑袋的一时之举,可惜苦了下面做表的人,作为一个小罗罗吧,即使自己有怨言,要么不敢声张,有点上进心的,谋求改革吧,可惜你人言微轻,又做不了主,最后要么就是苦逼的自己往死里做,要么就是自己掏钱请大神来解决,还不敢找老大报销,这日子过的。
每每碰到这种情况,除了同情和叹息,还有一种强烈的希望解救劳苦大众的使命感,今天咱们就来说道说道,不用大家会编程VBA哦,亲!
1.如何定位某个sheet?
你可能会说,这还不简单么,直接鼠标点选啊,呵呵,如果像我刚才举例那样是365张表,让你找,恐怕就没那么简单了吧?
我们知道在sheet之间切换的快捷方式是ctrl+pageup/pagedown,这种方式比鼠标点选会快那么一点点,但是只能一个个的切换,sheet多了还是不大好使,怎么办呢?
可能很少有人注意到在sheet
标签的左边,如下所示,有个像播放器快进按钮的这么一个区域,有的即使注意到,可从来没用过。

这个怎么用?鼠标选中,右键可以发现里面展示了所有的sheet名字,如果几十上百,还有“其他工作表”

点开就像有个类似于下拉清单,可以用滚动轴,或者输入开头的字母就像邮件索引那样查找,很快定位,是不是很方便。
2.如何选择复制或者移动多个sheet?
我们第一个问题已经学会了定位单个sheet,那么要选中多个应该怎么操作呢?
我们还记得单元格的操作里面多选的做法么?可以按住ctrl或者shift来实现不连续和连续区间的选择。
同样的道理,此方法在工作表选择同样适用。
按住ctrl点选tab标签就可以选择多个连续或者不连续的表了。
而按住shift可以选择相邻的连续的sheet。
有这种情况,假设我设计了一个模板用来汇总,要更新数据,也就是每个分表,我想要全部替换掉怎么办?我们可以先把这些分表删掉,然后再把新的数据全部复制移动进来,这里涉及到一个问题,如果快速的选择所有的sheet(除汇总外)进行处理?
我们可以这么做:
- 选择第一个分表
- 按住shift,选择最后一个分表
问题来了,假设有365个,我不会要一直点蓝色的那个吧?其实不用,你点一下红色箭头那个,一下子就到了最后一个表
这时候,我们松开,就会发现,1~365个分表都选中了

- 此时,鼠标右键,就可以批量删除,或者移动复制到其他工作簿了(此处移动工作表是个很重要的技能,比全选整个表再复制粘贴到目标sheet要简单方便的多,基本上保持一致,不需要再单独调格式)
3.批量格式化以及计算分表?
第二步就是我们说的sheet的group功能,我们会发现,当组选后,有些
功能菜单编程灰色了,是不可用的状态,即组选状态不能操作。
要解除组选,我们只需要点击一下组选外的随便一个工作表即可。
那么组选有个什么好处呢?好处大大的!
当我们分表格式一样,要调整的格式和输入的公式也都一样的时候,我们就可以组选后,只用在一张表里面操作,输入调整完毕,接触组选时候我们会发现,所有的表都跟着一起操作,即使是365个表也能在一瞬间快速完成,就像接到统一指令的士兵一样,是不是吊炸天了?没早知道这个方法的童鞋是不是要吐血了?多少个美好的日子里,你在埋头做表,键指如飞,浪费了多少可以撩妹纸的大好春光,咳咳
4.全部sheet进行汇总计算?
前面我们说的都是对分表的处理,那么我们最终目的是进行汇总啊,很多人这时候要犯愁了。
会VBA的人看到这个问题,会很高兴,这么规整的表,咱来段小代码,来个循环,分分钟自动就跑完了,可惜鸟,你不会撒。
那肿么办?
我们今天绝对讲一个帅到爆的堪称黑科技的技巧——通配符在多表引用中的妙用
假设我们要对1~12月进行全年汇总,那么我们只需要在汇总表里面输入
=sum('*'!A1)
其中的通配符*号就代表除当前工作表以外的其他所有工作表
输入完按enter回车,公式会自动转换为:
=sum('1月:12月'!A1)
如果你的汇总表不在最左边或者最右边而在中间,那么回车后会变成:
=sum('1月:7月'!A1,'8月:12月'!A1)
也就是说无论当前工作表处于什么位置,excel都能把通配符转换为正确的引用。
需要注意的是,由于输入公式后,会自动转换,因此当工作表位置发生变化时,用户需要重新编辑才是,否则可能导致结果错误。
当然还有一种不用VBA编程能解决的办法,就是用宏表函数取得各个工作表的sheet名称,然后再根据这个名称结合indirect函数来求和或者返回值,今天就不在这里赘述,有机会再跟大家分享。
多表的选择批量处理技巧很实用,希望大家能够掌握,并能运用好,妈妈再也不用担心我的年终总结了!