我阅读并测试了很多内容,但仍然无法找到解决我的问题的方法。
我发现的最接近的解决方案是下面文章中提出的第二个解决方案: 如何计算某个范围内不同值的数量?
我本质上是想找出 A 列中有多少个值是唯一的,而 B 列中有多少个值对应于某个值。
想象一下以下电子表格
COL A COL B
abc TRUE
abc TRUE
bef TRUE
bef FALSE
hgf TRUE
swd FALSE
rth FALSE
kjh TRUE
我想提出一个公式来计算(不显示)A 中包含 COL B 中的 TRUE 的唯一值的数量。因此,根据上述示例,我应该得到 4。
现在,我期望下面的公式能有所帮助
=SUMPRODUCT((A2:A100<>"")/COUNTIF(A2:A100,A2:A100))
曾经用 修改过COUNTIFS
,但显然不起作用,我不明白为什么。另外,我也不太明白开头那一点的原因:A2:A100<>""
答案1
使用数据透视表。无需公式。只需点击几下即可。
将 A 列(在我的样本中称为“一”)拖到行标签,将 B 列(在我的样本中称为“二”)拖到列标签,将任意列拖到值区域并将值计算设置为“计数”。
在数据透视表上方的一行,使用简单的 Count() 函数返回唯一值的数量:
您可以过滤数据透视表以仅显示带有“true”的项目或仅显示带有“false”的项目。
答案2
试试这个“数组公式”
=SUM(IF(FREQUENCY(IF(B2:B100=TRUE,IF(A2:A100<>"",MATCH(A2:A100,A2:A100,0))),ROW(A2:A100)-ROW(A2)+1),1))
已确认CTRL++SHIFTENTER
答案3
您可以使用以下公式列出列中A
包含的列的值。"TRUE"
B
在单元格中用++D2
输入此数组公式并将其向下拖动以显示所有满足条件的唯一值...CTRLSHIFTENTER
=INDEX($A$2:$A$9, MATCH(0, COUNTIF($D$1:D1,$A$2:$A$9)+IF($B$2:$B$9<>TRUE, 1, 0), 0))
编辑*添加了一张照片。