excel如何进行多条件统计?
这是我在知乎看到的一个问题,我试着和VBA一起解决。欢迎大家就使用Excel遇到的问题或想要的解决方案提出问题,我会尽力解答。
问题:用EXCEL多条件统计如何统计重复次数?如下图,需要统计每个实验室的专业(f)和每个专业的人数,用左边的表生成右边的表(只生成m、n和列)。大概有4条数据,需要考虑效率。怎么做?VBA,公式什么的,我不想用过滤。
由于没有原始表,我自己做了一个示例数据表,如下图。
提问者只需要能够在右表右侧生成三列,包括l列、m列、n列,这样I列、j列、k列的数据应该都是可用的,相对比较容易。由于没有原始表,我将使用VBA生成右侧表的所有六列。
通过分析左边的数据表,我们可以统计出每个实验室的专业和每个专业的人数。事实上,我们需要找出每个实验室每个专业的多样性。所以我把场次、考场代码、考场代码和报考的专业联系起来,分别放在G列,作为字典的键值,从而得到不重复的数据。在填充字典键的同时,将重复的数据统计为键的元素值,从而得到每个实验室每个专业的学生人数。然后,将字典键拆分输入到右侧与场次、考场代码、考场代码、考场代码对应的单元格中,将对应的元素值输入到与报名人数对应的单元格中,得到统计数据。
完整的VBA法典如下:
子统计数据数据()
昏暗的灯光和长长的一样
调光范围
将我的字典作为变体
将我的密钥变暗为变体
将字符串()作为字符串
暗淡无光
获取最后一行数据。
lngLastRow=范围(“A”行)。计数)。结束(xlUp)。排
会在数据区报考细胞期考场代码考场代码专业数据组合。
将组合数据临时存储在g列中。
每个单元格数据由一个空格分隔。
方便后面拆分。
对于范围内的每个RNG(“a 2: a”lngLastRow)
带rng。偏移量(,6)=。偏移量(," _。偏移量(,1)" _。偏移量(,2)" _。偏移量(,3)" _。偏移量(,5)
以…结尾
下一个rng
一本字典。
设置myDict=CreateObject(“脚本.字典”)
遍历g列中的数据,并将其放入字典。
字典中的键值是不同的数据组合。
字典中与关键字对应的值是每个数据组合的编号,即专业申请者的编号。
对于范围内的每个RNG(“g 2:g”lngLastRow)
用我的字典
如果没有。存在(rng。值)然后。项目(rng。值)=1
其他。项目(rng。值=。项目(rng。值)1
如果…就会结束
以…结尾
下一个rng
清除临时存储在g列中的数据。
范围(“g 2:g”lngLastRow)。清楚的
获取字典密钥。
myKey=myDict.keys
遍历字典键。
For num=To UBound(myKey)
拆分字典键中的字符。
分别对应考场代码、考场代码和报考专业。
str=Split(myKey(num))
取出相应的值,放入相应的单元格中。
带范围(“I2”)。偏移量(数字),=字符串()。偏移量(数,1)=字符串(1)。偏移量(数,2)=字符串(2)。偏移量(数,3)=字符串(3)。偏移量(数,4)=字符串(4)。Offset(num,5)=myDict。项目(myKey(num))
以…结尾
下一个数字
获取统计区域的最后一行数据。
lngLastRow=范围(“I”行)。计数)。结束(xlUp)。排
带量程(“i1: n”lngLastRow)
对统计区域的数据进行排序。排序_
1:=“次”,Order1:=xlAscending,_
2:=“考场代码”,Order2:=xlAscending,_
Key3:=“测试室代码”,Order3:=xlAscending,_。
Header:=xlYes
调整列宽。
. Columns.AutoFit
以…结尾
设置我的字典=无
末端接头
代码中有相应的注释,可以参考理解。
版权声明:excel如何进行多条件统计?是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。