作业帮 > 综合 > 作业

统计特定标注的不重复单元格个数

来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/05/17 09:37:58
统计特定标注的不重复单元格个数

B列是许多重复的数据,D列是对B列这些数据的标注,如图

现在需要统计标注完全为1的不重复数据的个数,标注完全为0和标注同时为1及为0的不统计.

从上图可以看出,符合统计条件的有李四、王五、和马八,所以统计结果是3.

张三标注有1又有0,赵六、周七、陈九标注完全是0,所以不在统计条件之内.

因为数据量较大,同时每天又随时发生变化,所以需要一个简单的方法,最好是公式.

希望得到您的帮助.


统计特定标注的不重复单元格个数
找空闲的两列建立辅助列,本例在E和F列建立辅助列:数组公式,输入完成后不要直接回车,要按三键  CTRL+SHIFT+回车  结束.
E1公式下拉:=INDEX(B:B,SMALL(IF(MATCH($B$1:$B$999&$D$1:$D$999,$B$1:$B$999&$D$1:$D$999,)=ROW($1:$999),ROW($1:$999),4^8),ROW(A1)))&""
F1公式下拉:
=INDEX(D:D,SMALL(IF(MATCH($B$1:$B$999&$D$1:$D$999,$B$1:$B$999&$D$1:$D$999,)=ROW($1:$999),ROW($1:$999),4^8),ROW(B1)))&""
以上两条公式实际上是同一条公式,只是开头不同,一条是=INDEX(B:B   另一条是=INDEX(D:D 
最后用这统计公式就能得到结果了:=SUMPRODUCT((COUNTIF(E:E,E1:E999)=1)*(--(0&F1:F999)=1))
如觉得E和F列不好看,可以把它隐藏就行了.我把文件传上来,请点击这回答右下角绿色的“点击下载”按钮,下载文件看看效果.

再问: 真的很好。不过 我的数据在F列,标注在Q列,并且标注是由公式得出的结果,该怎样修改以上公式??
再答: 那就把辅助列放远点,改为放在AA和AB两列,
AA列公式:=INDEX(F:F,SMALL(IF(MATCH($F$1:$F$999&$Q$1:$Q$999,$F$1:$F$999&$Q$1:$Q$999,)=ROW($1:$999),ROW($1:$999),4^8),ROW(A1)))&""
AB列公式:=INDEX(Q:Q,SMALL(IF(MATCH($F$1:$F$999&$Q$1:$Q$999,$F$1:$F$999&$Q$1:$Q$999,)=ROW($1:$999),ROW($1:$999),4^8),ROW(B1)))&""
统计求和公式:=SUMPRODUCT((COUNTIF(AA:AA,AA1:AA999)=1)*(--(0&AB1:AB999)=1))
请下载文件看看效果吧。

再问: 非常感谢您的帮助,已经解决了,而且很好,还有一个列的条件比如班级,加上了也能够实现。 不过,不知道还有没有更好的办法,我的数据有几千条,而且每天都要更新和增加,计算起来时间太长,即使拆分成几段来计算也很费时呀。 希望再次得到您的帮助。
再答: 公式的方法最大的缺点就是对于数据量较多时,就会影响表格的运行速度,这主要是由于公式中的ROW(1:999)中引起的,可以尝试多加一列辅助列,如在AF列添加一列数字,对应ROW(1:999),P公式中再引用AF列就行了,这样相对来说能快点。
但如果还是觉得慢的,只能是用VBA编程解决了,不过如果有数据变化时,VBA一般要手动刷新,如果VBA也是做成即时更新的,那其实跟公式的方法也是差不多的了。
还有公式的方法也可以把EXCEL选项中的自动重算功能关闭,这样公式就不会自动更新,要手动按F9更新。
我把修改了的文件再次上传,请下载看看效果吧。