Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
楼主: mjola1

[已解决]【重复数据累计统计】续1

[复制链接]
发表于 2016-12-5 15:17 | 显示全部楼层

application.index方法好像是有65536的限制,改用TRANSPOSE吧
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
回复

使用道具 举报

 楼主| 发表于 2016-12-5 15:18 | 显示全部楼层
以后大附件超过500的怎么传,我删除了无数次使表变小才上传了。
回复

使用道具 举报

 楼主| 发表于 2016-12-5 15:30 | 显示全部楼层
望帝春心 发表于 2016-12-5 15:17
application.index方法好像是有65536的限制,改用TRANSPOSE吧

我不懂,帮我改一下好吗?主要代码都是用你原来的。我整天都在等老师,今天才有回复,我很感激。
回复

使用道具 举报

发表于 2016-12-5 15:51 | 显示全部楼层
mjola1 发表于 2016-12-5 15:30
我不懂,帮我改一下好吗?主要代码都是用你原来的。我整天都在等老师,今天才有回复,我很感激。
  1. Sub tt()
  2. Application.ScreenUpdating = False
  3. Application.Interactive = False
  4. Dim i&, dic As Object, arr1
  5.     Set dic = CreateObject("scripting.dictionary")
  6.     With Sheet1
  7.         arr1 = .Cells(1, "a").Resize(.Cells(Rows.Count, "a").End(3).Row - 1, 2).Value
  8.         Debug.Print UBound(arr1)
  9.         For i = 1 To UBound(arr1)
  10.             dic(arr1(i, 1)) = dic(arr1(i, 1)) + 1
  11.         Next
  12.         For i = 1 To UBound(arr1)
  13.             arr1(i, 2) = dic(arr1(i, 1))
  14.         Next
  15.         .Cells(1, "a").Resize(UBound(arr1), 2) = arr1
  16.     End With
  17. Dim m&, d As Object, arr2
  18.     Set d = CreateObject("scripting.dictionary")
  19.     With Sheet1
  20.         arr2 = .Cells(1, "c").Resize(.Cells(Rows.Count, "c").End(3).Row - 1, 2).Value
  21.         For m = 1 To UBound(arr2)
  22.             d(arr2(m, 1)) = d(arr2(m, 1)) + 1
  23.         Next
  24.         For m = 1 To UBound(arr2)
  25.             arr2(m, 2) = d(arr2(m, 1))
  26.         Next
  27.         .Cells(1, "c").Resize(UBound(arr2), 2) = arr2
  28.     End With
  29. 'Dim x&
  30.        'For x = 1 To 65600
  31.        'Cells(x, "e") = Cells(x, "e") - 1
  32.        'Cells(x, "b") = Cells(x, "b") + Cells(x, "e")
  33.        'Cells(x, "f") = Cells(x, "f") - 1
  34.        'Cells(x, "d") = Cells(x, "d") + Cells(x, "f")
  35.    'Next
  36.   Application.ScreenUpdating = True
  37.   Application.Interactive = True
  38.   End Sub
复制代码


回复

使用道具 举报

发表于 2016-12-5 15:51 | 显示全部楼层
mjola1 发表于 2016-12-5 15:30
我不懂,帮我改一下好吗?主要代码都是用你原来的。我整天都在等老师,今天才有回复,我很感激。

简单改了下,不知道是不是这个意思
回复

使用道具 举报

 楼主| 发表于 2016-12-5 17:36 | 显示全部楼层
望帝春心 发表于 2016-12-5 15:51
简单改了下,不知道是不是这个意思

谢谢老师,大的问题即行数限制终于解决了!但累加没实现。我需要现有表中数据【固定的行数和数据】初始计数都改为0,就是说现有数据就像一座座有各自不同编号的空军营总计数量有518400座,而新插入数据是与军营编号相同的士兵,只不过每次归入军营的士兵限制在15000名,空军营起始数据不计数,全部为0,当士兵出现时,只统计士兵的重复数据。统计一次士兵数据后,我要删除这些士兵,但军营对他们的统计数据却保留下来,第2次又插入新士兵,再次统计的数据就累加到原数据上,再次删除士兵,又插入新士兵,再累计到累计数据上。如A1,没插入士兵前,如果运行代码,显示次数为1,就需要变为0,当在表格最下面新插入A1的数据比如3次(条),对应军营A1应=3;我删除表格下面插入的这3条,军营A1仍然=3【保留数据】,第2次新插入A1的数据比如9次(条),则军营A1应=3【保留数据】+9【新数据】=12,再删除再插入,数据始终累加。就像这座空军营随着一批一批的士兵到来至退役离开,新的士兵到来又离开........,一直统计着到底有多少士兵来过此军营。大概意思如此。望老师再次费费心!表示感激!
回复

使用道具 举报

发表于 2016-12-5 17:54 | 显示全部楼层
mjola1 发表于 2016-12-5 17:36
谢谢老师,大的问题即行数限制终于解决了!但累加没实现。我需要现有表中数据【固定的行数和数据】初始计 ...

好像有点难的样子,估计对我来说超纲了,等大神出手吧
回复

使用道具 举报

 楼主| 发表于 2016-12-5 18:07 | 显示全部楼层
飞越了一山又一山,
吃过了早餐吃晚饭。
过路的神啊!过路的仙!
请你呀歇歇脚啊,回头把帖看!
回复

使用道具 举报

 楼主| 发表于 2016-12-5 20:20 | 显示全部楼层
望帝春心 发表于 2016-12-5 15:51
简单改了下,不知道是不是这个意思

有莫法将B列数据调到E列,D列数据调到F列?
回复

使用道具 举报

发表于 2016-12-5 21:44 | 显示全部楼层
mjola1 发表于 2016-12-5 20:20
有莫法将B列数据调到E列,D列数据调到F列?

resize那儿BD改成EF就行了
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-2 06:35 , Processed in 0.268776 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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