快速浏览 往期合集:【2023年3月】【2023年4月】【2023年5月】【2023年6月】【2023年7月】【2023年8月】 实用案例 收费使用项目 内容提要
FREQUENCY函数:
VBA代码法 1、这是来自网友“chxw68”的回复,他采用MATCH函数来进行统计,主要代码如下: 他这个思路还是比较奇特的,有人评价: 详细代码我就不贴了,大家感兴趣地可以到论坛上去下载。 2、这是来自网友“sdytsxd991122”的回复,他采用SQL语句查询,主要代码如下: 结合D列的条件区间,编写SQL查询语句。把条件区间字段分列为区间的上限与下限,这样的思路比较符合数据处理的逻辑。 但我有点疑问,这个分列的代码,如何处理“60分以下”与“100分以上”这两个字段的呢?
再看他的截图,他把前面的条件区间改了,聪明!我还在想怎么用条件判断来构造一个区间呢: 不过,他这里用了一个Between运算符,是包含首尾两个数字在内的,要注意一下,如果条件区间是包头不包尾的,我们就要用“>=”和“<”运算符来表示数据范围。原表的条件区域是不连续的,如果分数有小数的话,可能造成统计偏差,比如69.5、79.5等。 3、这是来自网友“limonet”的回复,主要代码:
哇,这个更简洁,只用一条SQL语句就得出全部结果。他这里有一条核心代码:
partition还是第一次见,在网上搜了搜,就是没有发现类似的用法。有个partition by的用法。不管它了,先记下来再说。我们还可以做什么呢?我后来把这句单独运行下,看是什么结果:
数据写入F列: 看出门道没有?他就是把每一条记录的分数值标上一个区间,然后按这个区间分组计数。 总结 1、今天我们演示了一个学习的过程。 2、上面的所有解决方案中,除了VBA代码法的第2条,来自网友“sdytsxd991122”的回复,其他方案都是把分组条件写死的,也就是说,当分组条件发生变化时,这些公式、代码都需要修改。所以,我比较喜欢这个方案。 3、我们在设置表格模板时,一个字段的数据类型与格式应尽量保持一致,比如“60分以下”,我们可以写成“0~60“。 4、另外,我们还发现,原表中的条件区间是不完整的。如果分数有小数,那统计可能就会出现误差,不太严谨。应该下一条与上一条首尾相同,统计的时候包头不包尾,即类似于60<=x<70。实际上,我们在用文字描述的时候可能是这样的“60分以上(含),70分以下(不含)“,虽然有点啰嗦,但是能说明问题。 喜欢就点个赞、点在看、留个言呗!分享一下更给力!感谢! |
|