数组动态扩展、字典综合应用:订单金额达标插入赠品!

文摘   教育   2024-10-21 23:47   江苏  

关于本公众号】了解一下,欢迎关注谢谢!

快速浏览

实用案例

|日期控件||简单的收发存||收费管理系(Access改进版)|

|电子发票管理助手||电子发票登记系统(Access版)|

|文件合并||表格拆分||审计凭证抽查底稿|

|中医诊所收费系统(Excel版)||中医诊所收费系统(Access版)||银行对账单自动勾对|

|印章使用登记系统|

收费使用项目

|财务管理系统||工资薪金和年终奖个税筹划||新税法下工资表模版|

内容提要

  • reDim Preserve 动态扩展数组
  • 利用字典进行数据分类、汇总
大家好,我是冷水泡茶,今天在EXCELHOME论坛上看到一个贴子:[求助] 满足订单金额插入赠品
具体要求:

各位老师:

订单明细表是现有的数据表,F列为每个订单的金额合计。根据J1给出的满赠条件,当订单金额大于或等于J1时,则在每个订单的最后行,插入赠品表中的有效行。(赠品表中的行数不固定)

https://club.excelhome.net/thread-1704151-1-1.html

我们来看一下数据表格:
1、订单明细,他这个合计金额放在第一条记录右边,说实话,我看到这们的表格还是有一点头大,对应关系有点不清晰:
2、赠品表:
3、最终结果表:
需求分析:
1、看上去不是很难,最直观的感觉是插入单元格,把赠品的单元格区域复制,分别插入到满足条件的订单下面。但判断插入位置可能有点麻烦,没有明显的标记。
2、我们准备采用数组+字典的方式来解决,以订单编号为key,把每个订单的数据存到一个数组里,装入字典,再把符合条件的订单数据(数组)进行扩展,添加赠品记录,再存入字典。
基本思路
1、把订单明细数据装入数组arr。
2、循环arr,把订单编号相同的数据装入一个数组temp,以订单编号为key,存到字典dic,同时,设置一个字典dSum,以订单号为key,以金额汇总为item,用来判断是否需要添加赠品。
3、循环字典dSum的key,如果其item大于等于指定金额,则把dic中相应的item提取到数组temp,把赠品数据添加到temp中,再把temp存入字典dic。
4、循环字典dic的item,依次把item写入工作表“最终效果”。

后记

1、这里有一个疑问,最终结果表中,A列为订单编号,但包含了类似“赠品”的内容,不统一,看上去怪怪的,也不利于数据分析。我觉得赠品的订单号也应该是所在订单的号码,如果要标明它是赠品,可以在产品名称中增加“赠品”字样,如果这样操作也不合适,那么可以增加一个“备注”字段,注明赠品。

2、我们在写入工作表的时候,依次把字典的item写入工作表,如果订单编号特别多,速度方面可能会有点影响,也可以考虑先写入数组,然后再一次性写入工作表,今天之所以没有这样做,纯粹是为了“偷懒”,原因是每个item的维度可能都不一样,要准确定义一个结果数组有点麻烦,要计算出一个总行数(我实在是不愿意定义一个10000行的数组)。

好,今天就到这里,我们下期再会!


~~~~~~End~~~~~~

安利小店
安利的牙膏非常不错,用了以后就不想再用其他的了;洗洁精洗衣液也是日常必备,用过都说好!

合谷医疗
合谷医疗专攻各种疑难杂症,尤其擅长抑郁症焦虑失眠儿童神经发育异常多动症自闭孤独症腰颈椎疾病治疗,可谓神乎其技!体验过的直呼早点来就好了

喜欢就点个、点在看留言评论、分享一下呗!感谢支持!

案例文件分享说明

  • 案例文件可免费分享,但需符合以下要求:

  • 关注点赞点在看点...留言,方便的话分享一下就完美啦!如果不便走上面的“流程”,请打赏,万分感谢!

  • 请添加上方我的合谷医疗企业微信,案例文件通过微信发送。如有定制需求,亦可通过微信联系。

  • Excel问题,请在文章下面留言讨论!或者加入我的付费交流群提问

VBA编程实战
Excel应用案例、Excel VBA、公式函数使用技巧分享,思路解读...... 这里有鲜活案例、实用的技巧......
 最新文章