EXCEL表中求个数

按图中举例求出各项个数,数据很多,公式、PQ、VBA都可以。粘贴党必举报。还有一种情况,就是某公司的税种中,同一名的税种,假如增值税,有两行,也要算做1
可以只计算出数量,也可以把满足条件的所有数据提取到旁边的单元格里

这里应用公式法,如图,E列取出公司名,F列统计税种个数

1、E2公式如下,输完后按下CTRL+SHIFT+ENTER生成数组公式,再下拖复制直到值为空时止。(为空表示取完所有公司名了)

=IFERROR(INDEX($B$2:$B$14,MATCH(,COUNTIF(E$1:E1,$B$2:$B$14),))&"","")

2、F3公式如下,下拖复制即可。

=MAX(COUNTIFS(B:B,E2,C:C,"<>城市维护建设税"),1)

-----------------------------------------------------------------

改后公式:

=MAX(SUMPRODUCT(($B$2:$B$14=E2)*($C$2:$C$14<>"城市维护建设税")/COUNTIFS($C$2:$C$14,$C$2:$C$14,$B$2:$B$14,$B$2:$B$14)),1)

追问

还有一种情况,就是某公司的税种中,同一的税种,假如增值税,有两行,也要算做1
假设C公司中的两行都是增值税,个数要算做1

追答

改下F3公式即可,追答这里提交公式会漏字符,完整公式请看上方回答中的改后公式。

追问

修改后的公式没问题,可以正确得到结果。但是感觉您这个E列取公司的公式比较卡啊,十来行的数据,按完回车之后,得停顿个两三秒才能显示出来。

追答

1、十来行都要停顿两三秒的话,不应该是这里的问题,这是数组公式,只能说它有一定的卡顿加成。你可以这么试试,把excel全关了,再只打开这个文件。看看卡不卡顿。
2、如果这么试还是卡的话,说明你开的程序太多了,或是电脑配置太低了。我这一般般的十几年前的电脑配置,别说十几行,几百行都不卡,几千行以上的数组公式才稍微能看到慢那么一点点。
3、实在不行,你可以对公司列去重复,然后复制到那个公司列上。或者不用另外加表格,只在D列用上面F3的公式,把公式里的E2改为B2,再下拉就好。
4、最后再多说一句,其实只是取个去重复的公司名就好。公式下拉完后,如果觉的卡,全选E列点复制,再原地点选择性粘贴,选数值,把公式用文字覆盖掉就好。除非新增新的公司行,否则这E列都可以不动的了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-01-04
D2用公式:
=IF(COUNTIF(B$2:B2,B2)=1,SUMPRODUCT((B$2:B$14=B2)/COUNTIFS(B$2:B$14,B$2:B$14,C$2:C$14,C$2:C$14))-IF(COUNTIFS(B$2:B$14,B2,C$2:C$14,"<>城市维护建设税")>0,(COUNTIFS(B$2:B$14,B2,C$2:C$14,"城市维护建设税")>0)*1,0),"")
下拉。追问

公式完美

第2个回答  2022-01-04
D2=countif(B:B,B2)-sumproduct((B:B=B2)*(C:C="城市维护建设岁")),(某字避雷)追问

还有一种情况忘记在问题里写了,就是某公司的税种中,同一的税种,假如增值税,有两行,也要算做1
假设C公司中的两行都是增值税,个数要算做1

追答

第3个回答  2022-01-04
这里应用公式法,如图,E列取出公司名,F列统计税种个数

1、E2公式如下,输完后按下CTRL+SHIFT+ENTER生成数组公式,再下拖复制直到值为空时止。(为空表示取完所有公司名了)

=IFERROR(INDEX($B$2:$B$14,MATCH(,COUNTIF(E$1:E1,$B$2:$B$14),))&"","")

2、F3公式如下,下拖复制即可。

=MAX(COUNTIFS(B:B,E2,C:C,"<>城市维护建设税"),1)

-----------------------------------------------------------------

改后公式:

=MAX(SUMPRODUCT(($B$2:$B$14=E2)*($C$2:$C$14<>"城市维护建设税")/COUNTIFS($C$2:$C$14,$C$2:$C$14,$B$2:$B$14,$B$2:$B$14)),1)追问

公式没问题,可以得到正确结果

相似回答