Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 5546|回复: 17

生产日报表求助,谢谢大家!

  [复制链接]
发表于 2011-2-27 13:13 | 显示全部楼层 |阅读模式
5学分
本帖最后由 ljxya263 于 2011-2-28 15:02 编辑

因我是菜鸟,对excel用的不熟练,有以下问题请大家帮忙解决,谢谢!
qq:46110110
报表见附件
需要解决的问题如下:
1.有没有更好的办法优化报表
2.报表可否按日期自动增加一个表,报表1.3,增加一个表为1.4(表名可以按日期格式)以每月的日期为主。而且表内的罐余纯油公式=('12.31'!I6+H6)-(M6+N6+O6)*0.85、上日罐余='12.31'!P6中的日期能否自动更改。例如增加表1.4,公式自动更改为{罐余纯油公式=('1.3'!I6+H6)-(M6+N6+O6)*0.85、上日罐余='1.3'!P6}
3.每月的汇总用哪个函数比较好。
4.表格内的数据如1.2表中的B6列移位到B10列,数据调用就会出错,一般每月1号调整井号,中途调整井号要调整后面所有表内的列。 能不能任意调整井号,表内的数据也不会随着井号的调整出错。
查找引用函数能否实现


经过研究:公式更换为查找引用函数,可以调整井号顺序了,公式更改为=(VLOOKUP(B6,'1.2'!B$6:Q$600,8,0)+H6)-(M6+N6+O6)*0.85      =VLOOKUP(B6,'1.2'!B$6:Q$600,15,0)      还有其它办法吗?
需要优化的附件
2011年1月份原油生产日报表.rar (114.34 KB, 下载次数: 119)

最佳答案

查看完整内容

这个你要别人帮你分析,你自己得说明其中的数据关系,我给看个例子 大概就是实现你的抹掉数据,期末变期初的构思。至于新生成一个表的问题,做个简单的判断,判断最有一个表的月,日,日期上面+1就行了。 我下面是录制的,所以日期没用变量,是直接写的。 Sub Macro1() ' ' Macro1 Macro ' ' Sheets.Add After:=Sheets(Sheets.Count) Sheets("Sheet1").Select Sheets("Sheet1").Name = "2.1" Sheets( ...
发表于 2011-2-27 13:13 | 显示全部楼层
这个你要别人帮你分析,你自己得说明其中的数据关系,我给看个例子
大概就是实现你的抹掉数据,期末变期初的构思。至于新生成一个表的问题,做个简单的判断,判断最有一个表的月,日,日期上面+1就行了。
我下面是录制的,所以日期没用变量,是直接写的。
Sub Macro1()
'
' Macro1 Macro
'

'
    Sheets.Add After:=Sheets(Sheets.Count)
    Sheets("Sheet1").Select
    Sheets("Sheet1").Name = "2.1"
    Sheets("1.3").Select
    Cells.Select
    Selection.Copy
    Sheets.Add After:=Sheets(Sheets.Count)
    Sheets("2.1").Select
    Cells.Select
    ActiveSheet.Paste
    Columns("J:J").Select
    ActiveWindow.LargeScroll ToRight:=1
    Range("P5").Activate
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("2.1").Select
    Range("P6:P227").Select
    Range("P6:P357").Select
     Application.CutCopyMode = False
    Selection.Copy
    Range("J6").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("K6:Q356").Select
    Application.CutCopyMode = False
    Selection.ClearContents
    ActiveWindow.LargeScroll ToRight:=-1
    Range("F6:I143").Select
    ActiveWindow.LargeScroll Down:=10
    Range("P355").Select
    ActiveWindow.LargeScroll Down:=1
    Sheets("2.1").Select
    ActiveWindow.SmallScroll Down:=-9
    Range("F6").Select
    Range("F6:I356").Select
    Selection.ClearContents
End Sub
回复

使用道具 举报

发表于 2011-2-27 14:36 | 显示全部楼层
建议你提问时问题一个一个的来,一下子弄这么多文字,一看就晕了。
回复

使用道具 举报

 楼主| 发表于 2011-2-27 15:29 | 显示全部楼层
真是不好意思!
回复

使用道具 举报

发表于 2011-2-28 13:06 | 显示全部楼层
回复

使用道具 举报

发表于 2011-2-28 13:14 | 显示全部楼层
想更快点得到帮助么?

诀窍 --  准备两份例子文件。一份是原来的资料;一份是你想得到的结果。再准备一份完整一点的原来的资料。
这样别人就不会因为猜测/理解你的实际要求而退却或者花费太多的时间。

回复

使用道具 举报

 楼主| 发表于 2011-2-28 14:56 | 显示全部楼层
回复 vba_33 的帖子

表就在附件里
回复

使用道具 举报

 楼主| 发表于 2011-2-28 15:04 | 显示全部楼层
回复 vba_33 的帖子

就是想优化一下附件里的表,看有没有更好的办法,谢谢。
回复

使用道具 举报

发表于 2011-2-28 15:36 | 显示全部楼层
本帖最后由 georgeQ 于 2011-2-28 15:42 编辑

你的例子需要用Access数据库了,不太适合做Excel了。

如果一定要用Excel做,也是一个越做越大的文件,技术上你的问题可以回答

在启动宏(需要自己写)
Sub Auto_Open()
自动创建一个worksheet
if newworksheet.name=当日的月,日 then
到newworksheet
else
   创建新的worksheet,名字就是当日的月日
   从前面一个worksheet中复制模版过去
endif
End Sub

就是这样一个逻辑。但是这样的话,统计也要一直变,也需要写VBA,你能搞定不?
回复

使用道具 举报

 楼主| 发表于 2011-3-1 14:22 | 显示全部楼层
回复 georgeQ 的帖子

报表每天做一次统计,每月总结一次,一个月的数据大约是6M左右,vba不是那么懂,主要是写出罐余纯油和上日罐余的函数。油井代码,油井号、停产原因、含水正常复制,这个代码不会写。看到了你的回复很高兴,谢谢你!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-9-24 19:27 , Processed in 1.020459 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表