ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: rocklee888

[求助] 求U列和W列对应物料在过去4次收料数量平均值

[复制链接]

TA的精华主题

TA的得分主题

发表于 2016-5-6 09:57 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
rocklee888 发表于 2016-5-5 21:26
还有个地方忘说了,计算过去8次平均值,如果过去实际只有6次,那么就是计算6次平均值。计算过去20次平均 ...

上传出错附件,用于测试。用于提速改进。

TA的精华主题

TA的得分主题

发表于 2016-5-6 10:15 | 显示全部楼层
以1L附件,我的代码不慢。

TA的精华主题

TA的得分主题

发表于 2016-5-6 10:30 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
rocklee888 发表于 2016-5-5 21:06
我是改了这个地方,但是改成8和20平均值都一样,所以是否4改成8后面代码还需要变动?

原数据是否已按日期排序?
我的代码有排序,蓝版主的没处理,需自行处理。

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-5-8 00:16 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
yjh_27 发表于 2016-5-6 10:30
原数据是否已按日期排序?
我的代码有排序,蓝版主的没处理,需自行处理。

我自己有排序处理了,蓝版主的代码可以运行几十万行,而且速度很快。原始档案很大,上传不了。

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-5-10 11:50 | 显示全部楼层
yjh_27 发表于 2016-5-6 10:30
原数据是否已按日期排序?
我的代码有排序,蓝版主的没处理,需自行处理。

            If Val(b(0)) <= i Then
                n = n + 1
                If n <= 4 Then
                    If n = 1 Then
                        ks = Arr(b(0), 2)
                        sl = Arr(b(0), b(1))
                    Else
                        js = Arr(b(0), 2)
                        ca = DateDiff("d", js, ks)
                        If ca <= 60 Then
                            sl = sl + Arr(b(0), b(1))
                        Else
                            n = n - 1: Exit For
                        End If
                    End If
                Else
                    n = n - 1: Exit For
                End If
            End If
        Next
        Arr(i, pj) = sl / n
    Else
        b = Split(t, "|")
        sl = Arr(b(0), b(1))
        Arr(i, pj) = sl
我始终觉得以上代码不单纯是将4改成8, 应该其他地方也有需要修改的,大师能否有空帮忙看看?

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-5-10 12:08 | 显示全部楼层


版主,请帮忙看看如果代码要修改成过去12次或者7次收料数量平均值该如何修改代码?

TA的精华主题

TA的得分主题

发表于 2016-5-10 12:48 | 显示全部楼层

无数据,无法测试。无法上传全部也要上传出错部分。

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-5-30 22:55 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
yjh_27 发表于 2016-5-10 12:48
无数据,无法测试。无法上传全部也要上传出错部分。


我上传了另外一个VBA版本,但是有个问题是该结果运行后只显示整数,请问如果结果需要小数很多位该怎么更改代码?谢谢!

求最近4次收料数量的平均值 (1).rar

21.53 KB, 下载次数: 5

TA的精华主题

TA的得分主题

发表于 2016-5-31 14:28 | 显示全部楼层
rocklee888 发表于 2016-5-30 22:55
我上传了另外一个VBA版本,但是有个问题是该结果运行后只显示整数,请问如果结果需要小数很多位该怎么 ...

Jia = Round(Jia / (i - 1), 2)
保留 2位小数

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-6-1 16:28 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
yjh_27 发表于 2016-5-31 14:28
Jia = Round(Jia / (i - 1), 2)
保留 2位小数

非常感谢!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-15 10:27 , Processed in 0.047394 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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