Excel精英培训网

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

[已解决]求助一个统计的代码

[复制链接]
发表于 2021-9-27 11:08 | 显示全部楼层 |阅读模式
1学分
我想统计一下,K4:S4,K5:S5,K6:S6,K7:S7分别对比一下B2:D2,看看有几个相同的个数.把统计结果写在J列.

B2:D2 是个位数,如果有相同的,只按1个统计.

范围内标红色的是方便查看.

请老师看看这个代码应该怎么写?



最佳答案
2021-9-27 11:08
ryoryo66 发表于 2021-9-28 00:12
谢谢老师了,这有个小问题.

当B2:D2出现有0的时候,统计就出错了, 这个怎么修改一下啊?


求助.zip

497.15 KB, 下载次数: 16

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2021-9-27 11:08 | 显示全部楼层    本楼为最佳答案   
ryoryo66 发表于 2021-9-28 00:12
谢谢老师了,这有个小问题.

当B2:D2出现有0的时候,统计就出错了, 这个怎么修改一下啊?


求助.rar

380.16 KB, 下载次数: 8

回复

使用道具 举报

发表于 2021-9-27 11:35 | 显示全部楼层
Sub TEST()
    ARR = Range("K4:S" & Range("K65536").End(3).Row)
    BRR = Range("B2:D2")
    ReDim CRR(1 To UBound(ARR))
    For T = 1 To UBound(ARR)
        CRR(T) = 0
        For I = 1 To UBound(ARR, 2)
            For j = 1 To UBound(BRR, 2)
                If ARR(T, I) = BRR(1, j) Then CRR(T) = CRR(T) + 1
            Next: Next: Next
    Range("J4").Resize(UBound(CRR)) = Application.Transpose(CRR)
End Sub
回复

使用道具 举报

发表于 2021-9-27 11:43 | 显示全部楼层
Sub cout()
Dim i, j, x, k As Integer
Dim arr, arr1
arr = Range("K4:S" & [k1000].End(xlUp).Row)
arr1 = Range("b2:d2")
Columns("j:j").ClearContents
For i = 1 To UBound(arr)
    For j = 1 To UBound(arr, 2)
        For x = 1 To UBound(arr1, 2)
            If arr(i, j) = arr1(1, x) Then k = k + 1
        Next
    Next
Range("j" & i + 3) = k
k = 0
Next
End Sub
回复

使用道具 举报

 楼主| 发表于 2021-9-27 11:54 | 显示全部楼层
zjdh 发表于 2021-9-27 11:35
Sub TEST()
    ARR = Range("K4:S" & Range("K65536").End(3).Row)
    BRR = Range("B2:D2")

谢谢老师,这个如果B2:D2有相同的数字,那么就按1个值来统计,这个需要修改一下.
回复

使用道具 举报

 楼主| 发表于 2021-9-27 12:18 | 显示全部楼层
lisongmei 发表于 2021-9-27 11:43
Sub cout()
Dim i, j, x, k As Integer
Dim arr, arr1

谢谢老师,这个如果B2:D2有相同的数字,那么就按1个值来统计,这个需要修改一下.


331.jpg
332.jpg
回复

使用道具 举报

发表于 2021-9-27 12:25 | 显示全部楼层
Sub demo()
   For Each sh In Sheets
      sh.[J4:J7] = sh.[MMULT(N(COUNTIF(B2:D2,K4:S7)>0),Z1:Z9+1)]
   Next
End Sub

祝順心,南無阿彌陀佛!

评分

参与人数 1学分 +2 收起 理由
zjdh + 2 学习了

查看全部评分

回复

使用道具 举报

发表于 2021-9-27 12:33 | 显示全部楼层
求助.zip (554.34 KB, 下载次数: 8)
回复

使用道具 举报

 楼主| 发表于 2021-9-27 15:35 | 显示全部楼层

谢谢老师,我这个想在范围里加变量,
用arr=[] 我不会表示,弄不好了
回复

使用道具 举报

 楼主| 发表于 2021-9-27 20:40 | 显示全部楼层
lisongmei 发表于 2021-9-27 11:43
Sub cout()
Dim i, j, x, k As Integer
Dim arr, arr1

老师,再帮我看看吧,怎么修改一下?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-29 19:40 , Processed in 0.316228 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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