如何在Excel中统计出满足某个条件时不重复的记录数

如在Excel中有如下三列的内容:
A列(投资人) B列(投资项目) C列(投资行业)
A01 铁矿厂 矿业
A01 锌冶炼厂 矿业
A02 铜矿厂 矿业
A01 纺织厂 其它
。。。。。
如何使用Excel的函数公式或数组公式计算出投资矿业的投资人数?
答案为2人,其中第1行与第2行同一投资人在相同行业内投资不同项目不重复计算人数。
如果使用数组公式{=SUM(1/COUNTIF(A2:A100,A2:A100))}可以计算出整个工作表的不重复记录数!

他人补充说明:excel不重复的个数的函数公式
算出A1:A100(文本格式)中不重复的个数的函数公式!和特定条件下不重复的个数的函数公式!
比如:a列依次为张三,李四,张三,王五......
b列依次为北京,上海,北京,上海......
算出北京的不重复的人的个数!

解答:没有简单的方法,
1、需要一空白列作为辅助, 假设是C列
在C1输入公式:=IF(SUMPRODUCT((A1&B1=A$1:A1&B$1:B1)*1)=1,1,0)
下拉至 C100 ,则C列便会: 如A&B是首次出现, 显示 1, 重复出现则显示 0

2、在任何一格输入公式:=SUMPRODUCT((B1:B100="北京")*C1:C100)
便会显示北京的不重复的人的个数

二楼计算出的结果是正确的!
公式COUNTIF(A2:A100,A2:A100)为该投资人在整个工作表出现的次数,公式1/COUNTIF(A2:A100,A2:A100)为每一次条件判断投资人所占的比例份额。为什么可以用函数roundup()进行向上四舍五入呢?

1、新建一个空白的EXCEL工作薄,而后打开,

2、输入演示数据,要求在D4单元格求出C列等于D3单元格的对应的B列的不重复个数,

3、在D3单元格输入公式=SUMPRODUCT(($C$2:$C$11=D2)*(MATCH($B$2:$B$11,$B$2:$B$11,)=ROW(1:10))),而后三键结束,获取符合条件的不重复个数,可以看出来是3个,

4、方法2,新建辅助列A列,而后在A2输入公式=IF(IF($C$2:$C$11=$D$2,COUNTIF($B$2:B2,B2),0)>1,0,IF($C$2:$C$11=$D$2,COUNTIF($B$2:B2,B2),0)) ,

5、下拉A2公式,将符合条件的对应单元格填充为1,

6、在D4单元格输入公式=SUM(A2:A11),而后确定,

7、确定后就通过辅助列的方法,获取了符合条件的不重复的个数,完成效果图。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-25

1.在a列输入几个数字,有重复的,在d3单元格输入 =frequency(),此时光标在括号后面闪动,鼠标点击一下括号内部,此时光标在括号内部闪动。

2.光标在括号闪动后,下一步用鼠标左键拖拽选中a1到a9的区域,然后点击半角逗号。

3.注意逗号是半角的。

4.再次选中a1到a9的区域作为函数的第二个参数。

5.函数名称输入错误了,改正一下把e改成y。

6.在编辑栏中选中函数,然后按f9,f9可以将选取转化为数组,

7.大括号包含的就是数组,数组的位置与选取位置对应,数组中的数字代表重复次数。

8.光标定位到大括号之前,输入1/。

9.再次选中编辑栏中的全部公式内容按f9,这次f9的作用是执行数组运算。

10.执行数组运算的结果如下。这里产生了一些错误值,是由于零做分母产生的。

11.在大括号之前加一个count()套在数组外面,统计数值型数据的数目,返回值是6,不重复的数据一共有六个。

第2个回答  推荐于2017-09-02
一、=ROUNDUP(SUM(IF(C2:C100="矿业",1/COUNTIF(A2:A100,A2:A100))),0)

二、=ROUNDUP(SUM(IF(B1:B100="北京",1/COUNTIF(A1:A100,A1:A100))),0)

是数组公式,需要按Ctrl+Shift+Enter结束公式的输入。本回答被提问者采纳
相似回答