全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 Excel
4899 6
2017-01-25
悬赏 10 个论坛币 已解决
QQ截图20170111195648.png

如图所示,程序是个每秒都会自动添加一列数据的记录的东西,一旦13列数字到了10万,那么把这些数字都归到1组,组数记录在14列,现在想在15列求每一组数据中心化后的数值,就是第10列每一个数除以它所在组(红圈和蓝圈)的标准差。我想每当程序刷新到每一组最后一个数据的时候(也就是第13列出现10万的时候),第15列就能算出我所有要的东西。

请求高手。。。本人想了几天实在没想懂

附上代码....写的很粗糙....希望高手们能看懂指引一下啊...
Sub 记录()
Dim a As Integer
Dim sumvol As Integer
Dim accum As Integer
Dim g As Integer
g = Cells(Rows.Count, 14).End(xlUp).Row + 1
a = Sheet1.Cells(Rows.Count, 6).End(xlUp).Row
    For i = 6 To 9
        Sheet1.Cells(a, i).Offset(1, 0) = Sheet1.Cells(3, i).Value
    Next
    Sheet1.Cells(a + 1, 10) = Sheet1.Cells(a + 1, 6) - Sheet1.Cells(a, 6)
    Sheet1.Cells(a + 1, 11) = Sheet1.Cells(a + 1, 7) 'Sheet1.Cells(a, 7)
    If Sheet1.Cells(a + 1, 11).Value + Sheet1.Cells(a, 12).Value < 100000 Then
        Sheet1.Cells(a + 1, 12) = Sheet1.Cells(a, 12) + Sheet1.Cells(a + 1, 11)
        Sheet1.Cells(a + 1, 13) = Sheet1.Cells(a + 1, 12)
    Else
        Sheet1.Cells(a + 1, 12) = Sheet1.Cells(a, 12) + Sheet1.Cells(a + 1, 11) - 100000
        Sheet1.Cells(a + 1, 13) = 100000
    End If
    If Sheet1.Cells(a, 13) < 100000 Then
        If Sheet1.Cells(a, 14) = "" Then
            Sheet1.Cells(a + 1, 14) = 1
        Else
        Sheet1.Cells(a + 1, 14) = Sheet1.Cells(a, 14)
        End If
    Else
        Sheet1.Cells(a + 1, 14) = Sheet1.Cells(a, 14) + 1
      End If
   
Application.OnTime Now + TimeValue("00:00:01"), "记录"
End Sub

最佳答案

Dekenstr 查看完整内容

试试看,往第11列里填数。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2017-1-25 15:03:22
试试看,往第11列里填数。
Book1.zip
大小:(17.79 KB)

 马上下载

本附件包括:

  • Book1.xlsm


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-1-25 16:42:07
我看第11列是数字输入,12-15列都是计算。

我在想是不是直接在内存里用VBA计算第12-15列更快更干净一些?

算法上可能要找一下方差的递归公式比较方便。

这两天上班忙,有空帮你看一下。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-1-25 16:57:18
Dekenstr 发表于 2017-1-25 16:42
我看第11列是数字输入,12-15列都是计算。

我在想是不是直接在内存里用VBA计算第12-15列更快更干净一些 ...
谢谢啊,我是新手,所以都是很水的一些逻辑写的......等高手您回复哈
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-1-26 18:39:24
Dekenstr 发表于 2017-1-25 23:23
试试看,往第11列里填数。
请问下..这个程序我放到我的宏里面跑不动呀...?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-1-26 19:15:54
要放在SHEET1里的SHEET CHANGE ()程序里。
1.png
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群