我正在统计一系列活动的出席人数。每个活动参与者的数据都存储在不同的表中,格式相同:
姓名 | 姓 | 机构 | 机构类型 -下拉列表 |
---|---|---|---|
汤姆 | 斯科特 | 汤姆斯科特 | 非政府组织 |
汉克 | 绿色的 | 视频博客兄弟 | 企业 |
慢性粒细胞白血病 | 灰色的 | 皮质 | 非政府组织 |
布雷迪 | 哈兰 | 定期视频 | 当地政府 |
约翰 | 绿色的 | 视频博客兄弟 | 企业 |
德里克 | 穆勒 | 维里斯特比勒 | 企业 |
乔 | 罗根 | / | 公民 |
先生 | 兽 | / | 公民 |
皮尤迪 | 馅饼 | / | 公民 |
主表在不同的列中计算活动的出席人数(为简单起见,我们只关注上面的单个示例)。
我想计算不同类别(机构类型)的参加者人数,但只计算单个机构一次。
此外,对于“公民”类别,我想计算每个唯一的条目。
因此,对于上面的例子,我们应该:
NGO: 2
Enterprise: 2
Local authority: 1
Citizens: 3
现在,我正在使用类似这样的东西:
=@IF(UNIQUE(FILTER(A2:D10;D2:D10="NGO";"");;FALSE)=""; 0;INDEX(ROWS(UNIQUE(FILTER(A2:D10;D2:D10="NGO";"");;FALSE));1;1))
公式的第二部分是主要部分。FILTER
删除所有具有不同机构类型的行。UNIQUE
确定整行是否唯一且不重复,ROWS
然后计算条目数,并将INDEX
结果a x b
单元格缩减为单个单元格。IF
检查和整个第一部分(重复)说明如果不存在具有所需机构类型的条目,则结果为 0。
问题是这个公式不能正确计算机构数量。例如,如果有多个来自 vlogbrothers 的参与者,则会分别计算,因为他们的名字不同。我想只计算一次 vlogbothers 机构(导致此示例中只有 2 个企业),但保留公民类别中个人的计数。
答案1
这是一个改进的公式,可以为您提供正确的结果:
=IF(F2="Citizen", COUNTA(FILTER(Table1[Institution],Table1[Institution type]=F2)), COUNTA(UNIQUE(FILTER(Table1[Institution],Table1[Institution type]=F2))))
COUNTA(FILTER(Table1[Institution],Table1[Institution type]=F2))
为公民服务,统计所有行COUNTA(UNIQUE(FILTER(Table1[Institution],Table1[Institution type]=F2))))
适用于非公民,计算唯一的机构名称。
答案2
请检查以下公式是否对您有帮助。
非政府组织:
=SUMPRODUCT(($D$2:$D$10=F2)*(MATCH($C$2:$C$10,$C$2:$C$10,)=ROW(1:9)))
企业:
=SUMPRODUCT(($D$2:$D$10=F3)*(MATCH($C$2:$C$10,$C$2:$C$10,)=ROW(1:9)))
当地政府:
=SUMPRODUCT(($D$2:$D$10=F4)*(MATCH($C$2:$C$10,$C$2:$C$10,)=ROW(1:9)))
公民:
=COUNTIF($D$2:$D$10,F5)
如果有重复的公民,建议使用以下公式。=SUMPRODUCT(($D$2:$D$14=F5)/COUNTIFS(A2:A14,A2:A14,B2:B14,B2:B14))
请注意,前三个机构公式是数组公式,需要按Ctrl+Shift+Enter。