病毒安全知识,电脑网络技术,手工杀毒方法,答疑解决笔记

导航

« 趋势服务意外终止“现在可以安全地关闭计算机了”解决方案汇总 »

Excel中自动引用工作表

  由于需要,要求在excel文档中做个公式,按月统计数据,每月数据都是一个单独的工作表,因此要跨表统计,如果手动很简单,引用格式:表名!范围,如sheet!A1,注意如果工作表名非字母要用中括号包起来,如[3月份]!A1。

Excel中自动引用工作表

  现在问题是要自动按月统计,也就是3月时,自动找到3月的表,4月就自动找到4月的表,因为各月数据所在的工作表中要调用的数据所在的位置相同,所以只要解决表名引用问题,公式就可以通用。当然可以去做宏,写VBA脚本也行,不过还是找到个引用函数来解决:indirect()

  语法不说了,需要的去excel帮助文件中查,根据本例要求,有两个方法:

1、 按当前时间判断来决定月份(假设各表中要调用的数据都在A1单元格)

  indirect(text(month(today()),"0月")&"!A1")

  today()取得当前系统时间,month()取得月份数字,比如是3月份的某天,那么month(today())=3,注意这个3是数字,因为indirect中的参数要是文本,所以要转换成字符文本,所以要用到text函数:text(value,format_text),两个参数,前一个是要转换的对象,后一个是转换后需要输出的格式,比如本例,由于存放每个月数据的工作表表名是“3月”、“4月”这样的形式,所以要输出“0月”(0是什么,去研究一下excel设置单元格里面的格式就知道了)的格式,这样3月份时,text(month(today()),"0月")=3月,这下是文本了,然后与"!A1"连接(&不用解释了吧,连接字符),这样由indirect引用函数得出的就[3月]!A!,到了其它月份,则会自动判断改变表名,不用人工修改了。

2、上面方法的不便之处在于如果当月要查看其它月份的统计数据就不方便了,因为系统时间是固定的,当然改系统时间也行,但会引起其它的麻烦,比如其它与时间有关公式计算值的改变,或者其它软件的使用等。所以用另一个引用函数cell来解决这个问题(同样具体语法和其它用法见excel帮助)。

  indirect (cell("contents", B1)&"月!A1")

  在当前表中选一个单元格(如上面公式中的B1单元格)作为月份控制,cell("contents", B1)中的"contents"参数表示要引用后面单元格(B1)中的内容,在B1中输入3,则转到“3月”的工作表,输入4则转到“4月”的表。公式中其它部分同1。

  当然也可以用text函数来转换格式成“某月”,这样&后面就用和1中一样的"!A1"就行了。

  另外本例自动调用不同月份的工作表,如果不喜欢在单独一个单元格来控制月份选择,也可以从当前表的标题中截取,比如当前标题是“XX月统计数据”,就用相关函数截取前面的“XX”来判断时间也可以达到控制目的(这样不用单独设一个单元格,而且不同月的报表,标题总要改的嘛),当然要达到看非本月的数据也得去修改标题,不过比调系统时间要好些,具体函数公式不列了。

  只要把上面引用函数加入统计公式中就可以自动调用不同月份的工作表进行统计或计算,不用一个月一个月修改公式了。


>> 除非说明均为原创,如转载请注明来源于http://www.stormcn.cn/post/141.html

发表评论(无须注册,所有评论在审核通过后显示):

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

  • 微信订阅号
    微信订阅

最新发表

本站出现的所有广告均不代表本人及本站观点立场 | 关于我 | 网站地图 | 联系邮箱 | 返回顶部
Copyright 2008-2018 www.stormcn.cn. All Rights Reserved. Powered By Z-Blog. 闽ICP备09000343号

闽公网安备 35010202000133号