Excel精英培训网

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

[已解决]多条件不重复数据统计

[复制链接]
发表于 2021-2-4 11:20 | 显示全部楼层 |阅读模式
1学分
问题1:按村统计身份证号不重复的操作员为网贷的户数,公式怎么写运行更快
问题2:在VBA代码中对Sheet1的F列整列进行单元格格式转换为通用格式,在F2输入公式="S"&MID(C2,7,12),并自动向下填充
问题3:把所有公式全部写进VBA代码,统计时自动运行
最佳答案
2021-2-4 11:20
E3 數組公式:
=COUNT(0/(MATCH(Sheet1!C$1:C$1785&B3,Sheet1!C$1:C$1785&Sheet1!E$1:E$1785,)=ROW($1:$1785)))

H3 數組公式:
=COUNT(0/(MATCH(Sheet1!C$1:C$1785&B3,IF(Sheet1!D$1:D$1785="网贷",Sheet1!C$1:C$1785&Sheet1!E$1:E$1785),)=ROW($1:$1785)))

祝順心,南無阿彌陀佛!
微信图片_20210204104758.png
微信图片_20210204104751.png

信息表.zip

80.11 KB, 下载次数: 13

最佳答案

查看完整内容

E3 數組公式: =COUNT(0/(MATCH(Sheet1!C$1:C$1785&B3,Sheet1!C$1:C$1785&Sheet1!E$1:E$1785,)=ROW($1:$1785))) H3 數組公式: =COUNT(0/(MATCH(Sheet1!C$1:C$1785&B3,IF(Sheet1!D$1:D$1785="网贷",Sheet1!C$1:C$1785&Sheet1!E$1:E$1785),)=ROW($1:$1785))) 祝順心,南無阿彌陀佛!
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2021-2-4 11:20 | 显示全部楼层    本楼为最佳答案   
E3 數組公式:
=COUNT(0/(MATCH(Sheet1!C$1:C$1785&B3,Sheet1!C$1:C$1785&Sheet1!E$1:E$1785,)=ROW($1:$1785)))

H3 數組公式:
=COUNT(0/(MATCH(Sheet1!C$1:C$1785&B3,IF(Sheet1!D$1:D$1785="网贷",Sheet1!C$1:C$1785&Sheet1!E$1:E$1785),)=ROW($1:$1785)))

祝順心,南無阿彌陀佛!

信息表.rar

80.72 KB, 下载次数: 8

回复

使用道具 举报

发表于 2021-2-4 16:41 | 显示全部楼层
dsgsdgg3g.gif
信息表2.rar (112.8 KB, 下载次数: 4)
回复

使用道具 举报

 楼主| 发表于 2021-2-6 12:50 | 显示全部楼层

你这个统计的是笔数,而不是户数,同 一人有的有几笔,有的只有一笔
回复

使用道具 举报

 楼主| 发表于 2021-2-6 12:53 | 显示全部楼层
cutecpu 发表于 2021-2-4 14:24
E3 數組公式:
=COUNT(0/(MATCH(Sheet1!C$1:C$1785&B3,Sheet1!C$1:C$1785&Sheet1!E$1:E$1785,)=ROW($1:$17 ...

,谢谢,数组公式运行太慢了,还有运行更快的吗?
回复

使用道具 举报

 楼主| 发表于 2021-2-6 12:57 | 显示全部楼层
cutecpu 发表于 2021-2-4 14:24
E3 數組公式:
=COUNT(0/(MATCH(Sheet1!C$1:C$1785&B3,Sheet1!C$1:C$1785&Sheet1!E$1:E$1785,)=ROW($1:$17 ...

还有就是我这数据不一定只是这1785条,我要先把公式设定按列统计,使用时只要把数据粘过来就能统计出来
回复

使用道具 举报

发表于 2021-2-6 17:23 | 显示全部楼层
cennacenna 发表于 2021-2-6 12:53
,谢谢,数组公式运行太慢了,还有运行更快的吗?

您好,因為速度的問題,可以不用公式,直接用 VBA 統計嗎?
回复

使用道具 举报

 楼主| 发表于 2021-2-6 21:52 | 显示全部楼层
本帖最后由 cennacenna 于 2021-2-6 21:54 编辑
cutecpu 发表于 2021-2-4 11:20
E3 數組公式:
=COUNT(0/(MATCH(Sheet1!C$1:C$1785&B3,Sheet1!C$1:C$1785&Sheet1!E$1:E$1785,)=ROW($1:$17 ...

能解决我的基本问题,要设置一个数据区域,换为整列就卡死心。这个数组可以写进VBA里不
回复

使用道具 举报

发表于 2021-2-7 17:48 | 显示全部楼层
cennacenna 发表于 2021-2-6 21:52
能解决我的基本问题,要设置一个数据区域,换为整列就卡死心。这个数组可以写进VBA里不

Sub demo()

   Set d = CreateObject("scripting.dictionary")

   arr = Sheets("Sheet1").[a1].CurrentRegion

   For i = 2 To UBound(arr)
      If Not d.exists(arr(i, 5)) Then
         Set d(arr(i, 5)) = CreateObject("scripting.dictionary")
         Set d(arr(i, 5) & "網貸") = CreateObject("scripting.dictionary")
      End If
      d(arr(i, 5))(arr(i, 3)) = ""
      If arr(i, 4) = "網貸" Then d(arr(i, 5) & "網貸")(arr(i, 3)) = ""
   Next

   With Sheets("Sheet2")

      r = .[B65536].End(xlUp).Row

      For i = 3 To r
         .Cells(i, 5).Value = d(.Cells(i, 2).Value).Count
         .Cells(i, 8).Value = d(.Cells(i, 2).Value & "網貸").Count
      Next

   End With

End Sub

祝順心,南無阿彌陀佛!



信息表.rar

87.78 KB, 下载次数: 16

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-16 16:18 , Processed in 0.307205 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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