ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1951|回复: 10

[求助] 如何从数据列中查找目标数是由哪些数组成?(数据组合问题)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-7-9 10:27 | 显示全部楼层 |阅读模式
如何从数据列中查找目标数是由哪些数组成?请各位老师指点一下,多谢了!问题见附件。

数据组合问题.zip

52.61 KB, 下载次数: 15

TA的精华主题

TA的得分主题

发表于 2018-7-9 10:31 来自手机 | 显示全部楼层
看描述,没看懂。手机上网中!

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-7-9 10:40 | 显示全部楼层
duquancai 发表于 2018-7-9 10:31
看描述,没看懂。手机上网中!

有附件,具体的要看附件。谢谢,麻烦你帮我看看,能否解决这个问题。

TA的精华主题

TA的得分主题

发表于 2018-7-9 10:44 | 显示全部楼层
神箭 发表于 2018-7-9 10:40
有附件,具体的要看附件。谢谢,麻烦你帮我看看,能否解决这个问题。

有空,有电脑的时候,再看附件!!!

TA的精华主题

TA的得分主题

发表于 2018-7-9 10:45 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-7-9 11:16 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-7-9 11:21 | 显示全部楼层
liulang0808 发表于 2018-7-9 10:45
http://club.excelhome.net/thread-1385584-1-1.html
这个链接楼主可以参考下,
另外香川老师有关于凑数 ...

贴子看了,不懂啊,能帮看看吗?谢谢了

TA的精华主题

TA的得分主题

发表于 2018-7-9 14:44 | 显示全部楼层
  1. Public d
  2. Public a
  3. Public arr
  4. Public m
  5. Sub lqxs_zd()
  6.     Application.ScreenUpdating = False
  7.     ActiveSheet.UsedRange.Offset(1, 2).ClearContents
  8.     Set d = CreateObject("scripting.dictionary")
  9.     arr = [a1].CurrentRegion
  10.     a = 3
  11.     m = [e1].Value
  12.     For j = 2 To UBound(arr)
  13.         If arr(j, 2) < m Then
  14.             d(j) = arr(j, 2)
  15.             dg j
  16.             If d.Count > 0 Then d.Remove j
  17.         Else
  18.             If arr(j, 2) = m Then
  19.                 Cells(2, a) = arr(j, 2)
  20.                 a = a + 1
  21.             End If
  22.         End If
  23.         
  24.     Next j
  25.     Application.ScreenUpdating = True
  26. End Sub
  27. Sub dg(y)
  28.     For j = y + 1 To UBound(arr)
  29.         sm = WorksheetFunction.Sum(d.items)
  30.         If sm + arr(j, 2) = m Then
  31.             d(j) = arr(j, 2)
  32.             Cells(2, a).Resize(d.Count) = WorksheetFunction.Transpose(d.items)
  33.             a = a + 1
  34.             d.Remove j
  35.         Else
  36.             If sm + arr(j, 2) < m Then
  37.                 d(j) = arr(j, 2)
  38.                 dg j
  39.             End If
  40.         End If
  41.         If d.exists(j) Then d.Remove j
  42.     Next j
  43. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2018-7-9 14:45 | 显示全部楼层
由于楼主附件内容比较多,这个代码运行时间会比较长的,供参考

数据组合问题.zip

59.95 KB, 下载次数: 12

TA的精华主题

TA的得分主题

发表于 2018-7-10 15:17 | 显示全部楼层
满足条件的组合有很多吧。

+3951794.88+81156.78+2860+2307.69+1127.46+1035
+3951794.88+80138.8+2476.89+2476.88+1216.9+1127.46+1050
+3951794.88+80113.76+3780+2860+1333.17+400
+3951794.88+80113.76+3680+1700+1660+1333.17
+3951794.88+80113.76+3339.37+2200+1216.9+1216.9+400
+3951794.88+80113.76+3300+2080+1660+1333.17
+3951794.88+80113.76+3100+2280+1660+1333.17
+3951794.88+80113.76+2860+2080+1700+1333.17+400
+3951794.88+80113.76+2850+2530+1660+1333.17
+3951794.88+80113.76+2700+2280+1660+1333.17+400
+3951794.88+80113.76+2670+1700+1620+1333.17+1050
+3951794.88+80113.76+2350.43+2070.84+1700+1216.9+1035
+3951794.88+79566.27+5683.76+1620+1216.9+400
+3951794.88+79566.27+3247.86+2435.9+1620+1216.9+400
+3951794.88+79566.27+2649.57+2159.47+2070.84+1640.78+400
+3951794.88+79566.27+2476.88+2476.88+1700+1216.9+1050
+3951794.88+79090.02+3282.9+2070.84+1660+1333.17+1050
+3951794.88+79090.02+2824+2002.84+1620+1333.17+1216.9+400
+3951794.88+79000+5623.93+2222.22+1640.78
+3951794.88+79000+4881.93+4605
+3951794.88+79000+4466.02+2070.84+1333.17+1216.9+400
+3951794.88+79000+3979.21+2416.94+1640.78+1050+400
+3951794.88+79000+3240+2735.04+2476.89+1035
+3951794.88+79000+3200+2476.88+2476.88+1333.17
+3951794.88+79000+2800+2476.88+2476.88+1333.17+400
+3951794.88+78861.99+3846.15+2476.89+1216.9+1050+1035
+3951794.88+78861.99+2860+2688+2416.94+1660
+3951794.88+78861.99+2820.51+2350.43+2070.83+1333.17+1050
+3951794.88+78861.99+2735.04+2435.9+2070.83+1333.17+1050
+3951794.88+78861.99+2688+2500+2416.94+1620+400
+3951794.88+78861.99+2476.89+2136.75+1709.4+1216.9+1050+1035
+3951794.88+78488.94+4892.2+3888.89+1216.9
+3951794.88+78488.94+3979.21+2761.56+2222.22+1035
+3951794.88+78488.94+3680+2913.99+2070.83+1333.17
+3951794.88+78488.94+3680+2913.98+2070.84+1333.17
+3951794.88+78488.94+3339.37+2824+2384.62+1050+400
+3951794.88+78488.94+3324.79+2530+1709.4+1216.9+1216.9
+3951794.88+78488.94+2913.99+2824+2200+1660+400
+3951794.88+78488.94+2913.99+2070.83+1660+1620+1333.17+400
+3951794.88+78488.94+2913.98+2070.84+1660+1620+1333.17+400
+3951794.88+78488.94+2860+2307.69+2002.84+1700+1127.46
…………
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-4-25 09:16 , Processed in 0.039351 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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