You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

按唯一列标题统计数组每行至少一个TRUE的次数(每行最多计1次)

解决方法

问题分析

你需要统计每个列标题(a、b、c)对应的至少包含一个TRUE的行数,且每行同一列标题仅计1次。之前使用的SUMPRODUCT公式会直接求和所有匹配列标题的TRUE单元格数量,而非按行去重计数,因此结果不符合预期。

可行公式

针对每个变量(比如单元格A8为"a"),可以使用以下公式计算对应计数:

=SUMPRODUCT(--(MMULT(--($A$2:$G$2=A8),--($A$3:$G$5=TRUE))>0))

公式解释

  1. --($A$2:$G$2=A8):将列标题行中等于当前变量的位置转为1,其余转为0,生成匹配标记数组。
  2. --($A$3:$G$5=TRUE):将数据区域的TRUE转为1,FALSE转为0,方便数值计算。
  3. MMULT(...):通过矩阵乘法,计算每行中当前变量对应的单元格里TRUE的总个数。
  4. >0:判断该行是否至少存在一个TRUE,得到TRUE/FALSE的判断数组。
  5. --:将判断结果转为1(TRUE)和0(FALSE),最后SUMPRODUCT求和就是符合条件的行数。

验证结果

  • 变量a:前两行的a列均有TRUE,第三行无,结果为2,符合预期。
  • 变量b:三行的b列都至少有一个TRUE,结果为3,符合预期。
  • 变量c:仅第三行的c列有TRUE,结果为1,符合预期。

替代方案(适用于支持LAMBDA的Excel版本)

如果你的Excel版本支持LAMBDA函数,也可以用更直观的BYROW写法:

=SUMPRODUCT(--(BYROW($A$3:$G$5,LAMBDA(row,MAX(IF($A$2:$G$2=A8,row,FALSE))))=TRUE))

这个公式会逐行检查当前变量对应的单元格是否有TRUE,取每行的最大值(只要有一个TRUE就会返回TRUE),最后统计TRUE的行数。

内容的提问来源于stack exchange,提问作者Sponge

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 12:52:26