bihex 发表于 2017-2-25 10:45:17

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

本帖最后由 bihex 于 2017-2-25 15:43 编辑

用另外一个例子来说明
名字语文 数学 外语
A       90   10089
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读取并计算每个人各科的平均成绩。这样应该比较清楚了吧

h20040606 发表于 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)               
                ExitMsgBox(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)

h20040606 发表于 2017-2-25 12:18:10

这一下应当满足你的要求了,你根据需要修改一下

bihex 发表于 2017-2-25 13:21:42


h20040606 发表于 2017-2-25 12:16 http://www.autoitx.com/images/common/back.gif


    很奇怪,里面有很多函数没有定义无法使用,修改了一部分,还是无法运行,是版本的问题吗,我的
程序版本:3.3.6

heroxianf 发表于 2017-2-25 13:48:43

单纯计算什么就写公式吧!

_Excel_RangeWrite   看这个。

bihex 发表于 2017-2-25 14:02:33

回复 5# heroxianf
我用的是假编辑器?没有这个函数啊

bihex 发表于 2017-2-25 15:43:15


h20040606 发表于 2017-2-25 12:16 http://www.autoitx.com/images/common/back.gif

更新了编辑器,程序可以运行,研究一下原理,谢谢

heroxianf 发表于 2017-2-25 16:08:22

回复 7# bihex


    au3版本问题,我用的是较新的版本14.2

bihex 发表于 2017-2-25 16:43:27


h20040606 发表于 2017-2-25 12:16 http://www.autoitx.com/images/common/back.gif


    虽然可以可以运行,可是我实在看不懂里面一些参数的意思,比如“-4106",代码里面没有求平均的函数,怎么就出来平均了呢,求大侠指教

h20040606 发表于 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 则为 求最大值

h20040606 发表于 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 是相同的

bihex 发表于 2017-2-25 20:00:49

回复 10# h20040606


    谢谢

bihex 发表于 2017-2-26 12:10:39

回复bihex


   常数含义如下,附件为excel中常用常数
Constant        Value
xlAverage        -4106
xlCount        - ...
h20040606 发表于 2017-2-25 19:47 http://www.autoitx.com/images/common/back.gif
请问怎么把结果用autoit取出来呢,之前没有搞过宏
页: [1]
查看完整版本: 【已解决】关于Excel计算前面的可能没有表达清楚