如何为表格新增统计每行TRUE值数量的列?
如何统计表格每行中TRUE的数量并新增列
需求说明
原始表格:
| ID | DATE | ADDRESS | TEST_1 | TEST_2 | TEST_3 |
|---|---|---|---|---|---|
| 12345 | 01.01.19 | XYZ | FALSE | TRUE | TRUE |
| 12346 | 02.05.19 | ZYX | TRUE | FALSE | FALSE |
需要新增COUNT_TRUE列,统计每行TEST_1到TEST_3中TRUE的出现次数,最终效果:
| ID | DATE | ADDRESS | TEST_1 | TEST_2 | TEST_3 | COUNT_TRUE |
|---|---|---|---|---|---|---|
| 12345 | 01.01.19 | XYZ | FALSE | TRUE | TRUE | 2 |
| 12346 | 02.05.19 | ZYX | TRUE | FALSE | FALSE | 1 |
正确实现公式
在COUNT_TRUE列的首个数据单元格输入以下公式,下拉填充至所有行即可:
普通单元格引用
=SUM(--(D2:F2=TRUE))
(注:D2:F2对应TEST_1到TEST_3所在的单元格范围,根据你的实际列位置调整)
结构化表格(Table)引用
如果你的数据是Excel/Google Sheets的结构化表格,使用结构化引用更灵活:
=SUM(--([@TEST_1]:[@TEST_3]=TRUE))
公式逻辑说明
[@TEST_1]:[@TEST_3]=TRUE:对当前行的三个测试列逐一判断是否为TRUE,返回布尔值数组(如第一行返回{FALSE, TRUE, TRUE})。--:将布尔值转换为数字(TRUE→1,FALSE→0),数组变为{0,1,1}。SUM():对转换后的数字数组求和,得到该行TRUE的总次数。
你之前尝试方法的错误原因
- 方法1错误:
COUNTA(FILTER(table,table[column1] = TRUE || ...))- FILTER用于整表筛选符合条件的行/列,无法实现当前行内的单元格统计;且COUNTA要求参数为列引用,你的用法不符合函数参数规则。
- 方法2错误:
COUNTA(FILTER(CONCATENATE(...), ...))- 部分工具中CONCATENATE仅支持2个参数,导致参数过多报错;同时拼接后判断等于"TRUE"的逻辑完全错误,拼接结果是多个布尔值的字符串组合,不可能等于单个"TRUE"。
- 方法3错误:
COUNTA(table[column1]) + COUNTA(table[column2]) + ...- COUNTA是统计非空单元格数量,不是统计TRUE的数量;且参数为整列引用,会计算整列的非空数,而非当前行的TRUE次数。
内容的提问来源于stack exchange,提问作者Jonas
相关产品推荐
相关产品推荐

