Excel精英培训网

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

[已解决]将同一个卡号在同一天内出现的次数在2次或以上的列出来

[复制链接]
发表于 2013-4-10 11:06 | 显示全部楼层 |阅读模式
详见附件说明,谢谢
最佳答案
2013-4-10 11:29
  1. Sub test()
  2.     Dim d, A(), t(), i&
  3.     Sheets(1).Select
  4.     A = Range("a1:c" & Range("a65536").End(xlUp).Row).Value
  5.     Set d = CreateObject("scripting.dictionary")
  6.     For i = 2 To UBound(A)
  7.         d(A(i, 1) & A(i, 2)) = d(A(i, 1) & A(i, 2)) + 1
  8.     Next i
  9.     t = d.items
  10.    
  11.     For i = 2 To UBound(A)
  12.         A(i, 3) = d(A(i, 1) & A(i, 2))
  13.     Next i
  14.     [a1].Resize(i - 1, 3) = A
  15. End Sub
复制代码
将一个卡号在同一天出现的次数在2次或以上的列出来b.rar (14.34 KB, 下载次数: 9)

原表

原表

要求效果

要求效果

将一个卡号在同一天出现的次数在2次或以上的列出来.zip

4.7 KB, 下载次数: 10

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-4-10 11:16 | 显示全部楼层
在C2处输入如下函数即可:
=SUMPRODUCT((A$2:A$144=A2)*(B$2:B$144=B2))

评分

参与人数 1 +1 收起 理由
秋意正浓 + 1 很给力!

查看全部评分

回复

使用道具 举报

发表于 2013-4-10 11:29 | 显示全部楼层    本楼为最佳答案   
  1. Sub test()
  2.     Dim d, A(), t(), i&
  3.     Sheets(1).Select
  4.     A = Range("a1:c" & Range("a65536").End(xlUp).Row).Value
  5.     Set d = CreateObject("scripting.dictionary")
  6.     For i = 2 To UBound(A)
  7.         d(A(i, 1) & A(i, 2)) = d(A(i, 1) & A(i, 2)) + 1
  8.     Next i
  9.     t = d.items
  10.    
  11.     For i = 2 To UBound(A)
  12.         A(i, 3) = d(A(i, 1) & A(i, 2))
  13.     Next i
  14.     [a1].Resize(i - 1, 3) = A
  15. End Sub
复制代码
将一个卡号在同一天出现的次数在2次或以上的列出来b.rar (14.34 KB, 下载次数: 9)

评分

参与人数 1 +1 收起 理由
秋意正浓 + 1 很给力!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2013-4-10 11:39 | 显示全部楼层
我太感动了!这么快就有人给我回复了,十分谢谢!
回复

使用道具 举报

发表于 2013-4-10 11:45 | 显示全部楼层
你看看  结果自己核对 有问题在修改

将一个卡号在同一天出现的次数在2次或以上的列出来.rar

16.41 KB, 下载次数: 4

评分

参与人数 1 +1 收起 理由
秋意正浓 + 1 很给力!谢谢!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2013-4-10 11:49 | 显示全部楼层
继续请教“爱疯”高手,每天刷卡次数是1次的,不用列出来在SHEET2表,但凡是一天内出现的次数是2次或以上的明细,都要列出来在SHEET2表中,最好能按次数由高向低排序!
附件中有要求达到的效果,谢谢啊
回复

使用道具 举报

发表于 2013-4-10 12:15 | 显示全部楼层
  1. Sub test()
  2.     Dim rng As Range
  3.     Dim d As Object
  4.     Dim A(), t()
  5.     Dim i As Long
  6.    
  7.     '统计次数
  8.     Sheets(1).Select
  9.     Set rng = Range("a1:c" & Range("a65536").End(xlUp).Row)
  10.     A = rng.Value
  11.     Set d = CreateObject("scripting.dictionary")
  12.     For i = 2 To UBound(A)
  13.         d(A(i, 1) & A(i, 2)) = d(A(i, 1) & A(i, 2)) + 1
  14.     Next i
  15.     t = d.items
  16.     For i = 2 To UBound(A)
  17.         A(i, 3) = d(A(i, 1) & A(i, 2))
  18.     Next i
  19.     [a1].Resize(i - 1, 3) = A

  20.     '高级筛选
  21.     Sheets("Sheet2").Select
  22.     rng.AdvancedFilter Action:=xlFilterCopy, _
  23.                        CriteriaRange:=Sheets("Sheet1").Range("Z1:Z2"), _
  24.                        CopyToRange:=Range("D1:F1"), _
  25.                        Unique:=False

  26.     '按F列排升序
  27.     Range("d1").CurrentRegion.Sort Key1:=Range("F1"), _
  28.                                    Order1:=xlAscending, _
  29.                                    Header:=xlYes

  30. End Sub
复制代码
将一个卡号在同一天出现的次数在2次或以上的列出来c.rar (14 KB, 下载次数: 5)

评分

参与人数 1 +1 收起 理由
秋意正浓 + 1 很给力!

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 16:36 , Processed in 0.405732 second(s), 17 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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