ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 开发票自动凑数

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-6-17 11:47 | 显示全部楼层
老师,您给我发下附件啊,我真的不会改。另外您看下这个附件的函数公式,不懂就会感觉很神奇。借鉴这个表格,有一个思路是否可以由后向前输入,例如先手工输入总金额,每个规格的合计输入,之后单价输入,吨位自动算出呢。或者随性一下,任何这个数量  单价  小计  总计 任意位置输入数据,其他位置会自动填写呢。凑数一般手算是由后向前,先凑分后凑角再凑元。

调拨单5-27最新版修改版-3.rar

9.85 KB, 下载次数: 72

TA的精华主题

TA的得分主题

发表于 2017-6-17 21:47 | 显示全部楼层
feilanga 发表于 2017-6-17 08:59
感谢费心回复。问题1是数量保留3位小数 金额是2位小数  我不知道你怎么算出来的,我点击数量匹配,提示没 ...

Public Sub CouShu2()
    Dim t#, n%, x%, m%, dj, i&, j&, k%, slmax&, slmin&, sy, sysl, zd
    Dim csje#, sjje#, rxwc#, pd As Boolean, rng As Range
    t = Timer
    With 开票明细
        .Range("f11:f18").ClearContents
        pd = False
        n = .Range("b1").Value
        csje = .Range("b2").Value
        x = WorksheetFunction.CountIf(Range("m:m"), "√")
        m = WorksheetFunction.Min(n, x)
        If m = 0 Then Exit Sub
        ReDim sl(1 To m, 1 To 1), dj(1 To m)
        k = 0
        For Each rng In .Range("e11:e" & 10 + m)
            k = k + 1
            dj(k) = rng.Value
        Next rng
        sy = csje
        sjje = 0
        For j = 1 To m - 1
            zd = i
            sl(j, 1) = Round(csje / (3 * dj(j)), 3)
            sy = sy - dj(j) * sl(j, 1)
            sjje = sjje + dj(j) * sl(j, 1)
        Next j
        sysl = sy / dj(m)
        sl(m, 1) = Round(sysl, 3)
        .Range("f11").Resize(m, 1) = sl
        .Range("b3").Value = .Range("g19").Value - .Range("b2").Value '实际误差
    End With
End Sub
多数情况是不容易找的答案的,因为你限定了吨的位数,如果实际生活中确有这样的数值,也就是说你的金额是根据具体吨数计算得出的,那么可以按《数论》这本书上的相关内容来解答出吨数,是很繁琐的。

TA的精华主题

TA的得分主题

发表于 2017-6-18 01:00 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-6-18 11:20 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
香川群子 发表于 2017-6-15 23:09
在B1输入目标总金额,B2指定项目数=3,
可以设置单价小数位=0、数量小数位=3,然后按下平衡按钮即可完成凑 ...

以当前表格数据为例,计算结果是78717.76  如果我修改左上角的凑单金额为78715.28  那么会自动算出来吨位吗?如果我选择平衡方式1,直接改动2个螺纹的重量,那么凑单金额设置为78715.28 那么平衡处理后,能够一分不差的算出来吗?

230751uztwc7jr71jpwjvj.png

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-6-18 16:49 | 显示全部楼层
lzqlaj 发表于 2017-6-16 10:28
假设y=0,z=0,求出x值,取整,再除以2,记为X1,以此法求出Y1,z=(193587.74-3600x1-3450y1)/3680.再微调 ...

香山群子老师已经完美解决我的问题,很开心。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2017-6-18 22:16 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
feilanga 发表于 2017-6-18 16:49
香山群子老师已经完美解决我的问题,很开心。

我感觉并不是每种情况都能够一分不差的凑出来,因为条件限制。

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-6-26 15:16 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
lzqlaj 发表于 2017-6-18 22:16
我感觉并不是每种情况都能够一分不差的凑出来,因为条件限制。

群子老师这个表确实做到了我的要求。如果是无解的,你计算几次后就可以修改单价或者增加品种行来重新计算,总会得到一分不差的结果。仔细查看我图片上左上角规划的数值,经过3次平衡,得到结果。
2.png
1.png

TA的精华主题

TA的得分主题

发表于 2017-10-12 11:23 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
您好,您能把你完善那个Excel 发给我吗。我很需要。谢谢你。726650570@qq.com

TA的精华主题

TA的得分主题

发表于 2017-12-15 12:38 | 显示全部楼层
正在学习中,楼主能否把完成版发我一份,谢谢

TA的精华主题

TA的得分主题

发表于 2018-7-4 14:36 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
求该完整版
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-11 11:15 , Processed in 0.024180 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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