在excel中如何用分类汇总计数,对某列在每一个行都计算它之前几行的各个不同类别的各自数量?

我有两列,一列是时间,一列是类别,按时间排序的。我现在想得到每一个时间点上,它之前各个分类数量的累积。如图,就是在2001.08.17计数得g为1个,其他类为0个;2001.09.27.计算得g为1个,i为1个,其余是0个;。。。。最后在2002.01.27中得到之前所有的分类总数,g为2个,i为3个,o为4个,d为3个,b为1个。每个类别分别在右侧CDEF。。。等列各自占一列。因为数据很多,不知道如何自动统计分类数量。急求解答。

1、类别名称的生成。在C1单元格内输入或复制以下公式:

=LOOKUP(1,1/NOT(COUNTIF($B$1:B$1,$B$2:$B$14)),$B$2:$B$14)

然后向右拖拽复制,直到所有类别生成完毕。

2、类别统计。在C2单元格输入或复制以下公式:

=COUNTIF($B$2:$B2,C$1)

然后分别向右、向下拖拽复制,完成每个类别的统计工作。

如下图:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-04-20
假设数据在A:B列如下

日期 类别
2009-1-1 a
2009-1-1 b
2009-1-2 b
2009-1-2 b
2009-1-3 d
2009-1-4 a
2009-1-4 d
2009-1-5 c
2009-1-5 b
...

选中数据》数据》数据透视表》下一步》下一步
在向导第3步单击“布局”按钮
将“日期”拽到“行”处
将“类别”拽到“列”处
再将“类别”拽到“数据”处

双击“计数项:类别”》选项》数据显示方式》
选择:按某一字段汇总(基本字段选“日期”)

确定》确定》完成
第2个回答  2009-04-25
方法1:countif
在每个类别后边按类别数量插入列
插入的第一个列的第二行输入=countif(c$2:c2, "b")
插入的第二个列的第二行输入=countif(c$2:c2, "d")
插入的第三个列的第二行输入=countif(c$2:c2, "g")
插入的第四个列的第二行输入=countif(c$2:c2, "i")
插入的第五个列的第二行输入=countif(c$2:c2, "o")
向下填充

其它类别同理操作

方法2:数据透视
在数据菜单下选择数据透视,打开向导
选择数据,下一步
在布局里把日期拖入行,分类拖入列,分类拖入数据
完成后得到的是没有累加的表
在表的右侧对应第一个数据的单元格输入=SUM(B$5:B5),向下向右填充就可以得到结果
第3个回答  2009-04-20
1、选中B列,“数据”/“筛选”/“高级筛选”,选中“选择不重复的记录”,并将筛选结果复制到D列。

2、选中D列内容,“复制”/“选择性粘贴”,选中“转置”,粘贴到C1往右第1行的单元格中。

3、在C2单元格输入公式:
=COUNTIF($B$2:$B2,$B2)
将公式向右向下复制。
第4个回答  2009-04-20
用countif函数
假如把G放在C列,则在C1中输入countif($B$1:B1,"g"),即可统计出g的个数,向下拉这个公式,就可以得到每个节点时g出现的次数。
I同理,在D1中输入类似的公式/