Excel从列表中提取唯一对象

时间:2016-07-01 09:48:37

标签: excel

我有很多与我公司合作的公司。我的公司被分解成不同的研究小组。公司可能会在列表中多次与单个研究组合作,或与多个研究组合作。

我想知道哪些公司只与一个研究小组合作。数据示例如下,您可以看到公司A仅与组1合作但多次,但公司B与许多组合作。我怎么能算这个呢?

示例数据:

Group Company 1 A 1 B 1 C 1 A 1 C 2 D 2 D 2 E 2 E 2 B 2 D 3 D 3 F 3 B 3 F 4 G 4 B 4 B

这将是二元结果,1 =公司对于组是唯一的,0 =公司不是唯一的组。

对此的扩展(虽然未包括在我的问题中)将是,公司平均合作的团体数量

1 个答案:

答案 0 :(得分:0)

为您想要实现的目标提供解决方法。以下解决方案使用几个辅助列,最后将给出结果,公司是否是组的唯一性以及团体公司的合作计数。

假设您的数据GroupCompany分别位于Column AColumn B,请按以下步骤操作:

第1步: 获取群组与公司的独特组合

Cell D2中输入以下公式,然后根据需要拖放/复制。

=IFERROR(INDEX($A$2:$A$19 & "," & $B$2:$B$19,MATCH(0,INDEX(COUNTIF($D$1:D1,$A$2:$A$19 &  "," & $B$2:$B$19),0,0),0)),"")

第2步: 获取数据中每种组合的计数

Cell E2中输入以下公式并向下拖动/向下复制到Column D显示值的行。

=COUNTIFS($A$2:$A$19,LEFT(D2,(FIND(",",D2,1)-1)),$B$2:$B$19,MID(D2,FIND(",",D2)+1,256))

此公式将显示数据中Column D的每个组合的出现次数。例如, Group 1 Company A 在您的数据中出现两次, Group 2 Company D 发生3数据中的时间,等等。

第3步: Column B获取独特公司列表

Cell F2中输入以下公式,然后根据需要拖放/复制。

=IFERROR(INDEX($B$2:$B$14,MATCH(0,INDEX(COUNTIF($F$1:F1,$B$2:$B$14),0,0),0)),"")

第4步: 获取每家公司合作的小组数

Cell G2中输入以下公式并向下拖动/向下复制到Column F显示值的行。

=COUNT(IF(MID($D$2:$D$12,FIND(",",$D$2:$D$12)+1,256)=F2,$E$2:$E$12))

这是一个数组公式,所以按 Ctrl + Shift + Enter

提交它

第5步: 检查公司是否对Group是唯一的

Cell H2中输入以下公式并向下拖动/向下复制到Column G显示值的行。

=IF(COUNT(IF(MID($D$2:$D$12,FIND(",",$D$2:$D$12)+1,256)=F2,$E$2:$E$12))=1,1,0)

同样,这是一个数组公式,所以按 Ctrl + Shift + Enter

提交它

或改为使用此公式=IF(G2=1,1,0)

enter image description here

编辑:根据评论中提到的要求

Cell J2输入:

=IFERROR(INDEX($B$2:$B$19 & "," & $A$2:$A$19,MATCH(0,INDEX(COUNTIF($D$1:J1,$A$2:$A$19 &  "," & $B$2:$B$19),0,0),0)),"")

Cell K2输入:

=COUNTIFS($A$2:$A$19,MID(J2,FIND(",",J2)+1,256),$B$2:$B$19,LEFT(J2,(FIND(",",J2,1)-1)))

Cell L2输入:

=IFERROR(INDEX($A$2:$A$19,MATCH(0,INDEX(COUNTIF($L$1:L1,$A$2:$A$19),0,0),0)),"")

Cell M2输入:

=COUNT(IF(VALUE(MID($J$2:$J$12,FIND(",",$J$2:$J$12)+1,256))=L2,$E$2:$E$12))

这是一个数组公式。

Cell N2输入:

=IF(N2=1,1,0)

=IF(COUNT(IF(VALUE(MID($J$2:$J$12,FIND(",",$J$2:$J$12)+1,256))=L2,$E$2:$E$12))=1,1,0)

此公式也是数组公式。

见图片参考:

enter image description here