Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1789|回复: 1

[已解决]恳请高手帮忙解决一个归类的难题

[复制链接]
发表于 2017-3-25 14:00 | 显示全部楼层 |阅读模式
我附件有一个表格新生统计表,我希望在m列将不同老师的名字列出来,并在n列根据m列将相同老师j1的的数相加,目前的m列和n列是我所希望得到的结果。之前我打算是用数组公式来做的,但在实际运用用发现当我输入数据多的时候,运用数组公式的单元格多,导致表格运行十分缓慢,所以我想求得一个代码,当我输入完毕后点执行后他才会进行计算,谢谢高手师傅们的帮忙。
最佳答案
2017-3-25 14:33
  1. Sub aaa()
  2. Dim arr, i&, d As Object
  3. Set d = CreateObject("scripting.dictionary")
  4. arr = Range("i1:j" & [i65536].End(3).Row)
  5. For i = 1 To UBound(arr)
  6.   d(arr(i, 1)) = d(arr(i, 1)) + arr(i, 2)
  7. Next i
  8. [m1].Resize(d.Count) = Application.Transpose(d.keys)
  9. [n1].Resize(d.Count) = Application.Transpose(d.items)
  10. End Sub
复制代码

Book1.rar

6 KB, 下载次数: 3

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2017-3-25 14:33 | 显示全部楼层    本楼为最佳答案   
  1. Sub aaa()
  2. Dim arr, i&, d As Object
  3. Set d = CreateObject("scripting.dictionary")
  4. arr = Range("i1:j" & [i65536].End(3).Row)
  5. For i = 1 To UBound(arr)
  6.   d(arr(i, 1)) = d(arr(i, 1)) + arr(i, 2)
  7. Next i
  8. [m1].Resize(d.Count) = Application.Transpose(d.keys)
  9. [n1].Resize(d.Count) = Application.Transpose(d.items)
  10. End Sub
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-27 13:11 , Processed in 0.260704 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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