找回密码
 加入
搜索
查看: 2894|回复: 12

[效率算法] 【已解决】关于Excel计算前面的可能没有表达清楚

  [复制链接]
发表于 2017-2-25 10:45:17 | 显示全部楼层 |阅读模式
本帖最后由 bihex 于 2017-2-25 15:43 编辑

用另外一个例子来说明
名字  语文 数学 外语
A       90   100  89
B       80    70   60
A      95    98    90
A      89    99    98
B      60    50   70
C      98   60     50
C      80   70     90
现在需要计算每个人的语数外各科的平均成绩,参加测试的次数可能不同,比如求出A所有语文的总和,数学总和,外语总和.
原有的数据存放在Excel表格中,现在想用autoit读取并计算每个人各科的平均成绩。这样应该比较清楚了吧
发表于 2017-2-25 12:16:54 | 显示全部楼层
 #include <excel.au3>
        Local $oExcel = _Excel_Open(Default, Default, Default, Default, True) ;_Excel_Open(1)
        If @error Then Exit MsgBox(0, "提示", "无法建立Excel实例,请检查是否安装ooffce 2003以上版本")
        $wb = _Excel_BookOpen($oExcel, @ScriptDir & "\成绩表.xlsx")
        If @error Then
        _Excel_Close($oExcel)                
                Exit  MsgBox(0, "提示", "无法打开成绩表.xlsx")
        EndIf
        $NewSheet=_Excel_SheetAdd($wb, Default, Default, Default, "平均值")
        $range=$wb.sheets("成绩详单").usedrange
        $PivotTable = $wb.PivotCaches.Add(1, $range).CreatePivotTable($NewSheet.Cells(3, 1), '数据透视表1') ;
        $PivotTable.PivotFields('名字').Orientation = 1 ; =1 行 =2 列
        $PivotTable.PivotFields('名字').Position = 1 ;
   $PivotTable.AddDataField($PivotTable.PivotFields('语文'), '语文平均', -4106)
   $PivotTable.AddDataField($PivotTable.PivotFields('数学'), '数学平均', -4106)
   $PivotTable.AddDataField($PivotTable.PivotFields('外语'), '外语平均', -4106)
   $PivotTable.DataPivotField.Orientation=2
    _Excel_BookSave($wb)
     _Excel_BookClose($wb)
         _Excel_Close($oExcel)
发表于 2017-2-25 12:18:10 | 显示全部楼层
这一下应当满足你的要求了,你根据需要修改一下
 楼主| 发表于 2017-2-25 13:21:42 | 显示全部楼层
h20040606 发表于 2017-2-25 12:16



    很奇怪,里面有很多函数没有定义无法使用,修改了一部分,还是无法运行,是版本的问题吗,我的
程序版本:  3.3.6
发表于 2017-2-25 13:48:43 | 显示全部楼层
单纯计算什么  就写公式吧!

_Excel_RangeWrite   看这个。
 楼主| 发表于 2017-2-25 14:02:33 | 显示全部楼层
回复 5# heroxianf
我用的是假编辑器?没有这个函数啊

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2017-2-25 15:43:15 | 显示全部楼层
h20040606 发表于 2017-2-25 12:16


更新了编辑器,程序可以运行,研究一下原理,谢谢
发表于 2017-2-25 16:08:22 | 显示全部楼层
回复 7# bihex


    au3  版本问题,我用的是较新的版本14.2
 楼主| 发表于 2017-2-25 16:43:27 | 显示全部楼层
h20040606 发表于 2017-2-25 12:16



    虽然可以可以运行,可是我实在看不懂里面一些参数的意思,比如“-4106",代码里面没有求平均的函数,怎么就出来平均了呢,求大侠指教
发表于 2017-2-25 19:47:32 | 显示全部楼层
本帖最后由 h20040606 于 2017-2-25 19:55 编辑

回复 9# bihex


   常数含义如下,附件为excel中常用常数
Constant        Value
xlAverage        -4106
xlCount        -4112
xlMax        -4136
xlMin        -4139
xlSum        -4157

例如:把-4106 改为 -4157 则为求和
                      改为  -4136 则为 求最大值

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2017-2-25 19:58:46 | 显示全部楼层
本帖最后由 h20040606 于 2017-2-25 20:01 编辑

回复 6# bihex


    3.3.12.0 开始,excelUDF变化较大。我用的是3.3.12.0,3.3.12.X,3.3.14.X,3.3.15.X的excel udf 是相同的
 楼主| 发表于 2017-2-25 20:00:49 | 显示全部楼层
回复 10# h20040606


    谢谢
 楼主| 发表于 2017-2-26 12:10:39 | 显示全部楼层
回复  bihex


   常数含义如下,附件为excel中常用常数
Constant        Value
xlAverage        -4106
xlCount        - ...
h20040606 发表于 2017-2-25 19:47

请问怎么把结果用autoit取出来呢,之前没有搞过宏
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-25 02:01 , Processed in 0.079210 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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