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

如何在Google Sheets中按A列相同条件合并两行并处理布尔值?

在Google Sheets中按A列合并行并按规则处理布尔值

需求说明

当A列内容相同时合并对应行,布尔值列的合并规则为:仅当两行对应单元格均为FALSE时结果为FALSE,其余所有情况(一行TRUE一行FALSE/两行都是TRUE)结果为TRUE

解法1:使用UNIQUE + BYROW + BYCOL组合公式

假设原始数据范围是A2:C(A列为分组标识,B、C为布尔值列),在空白列(比如E2)输入以下公式:

=BYROW(UNIQUE(A2:A), LAMBDA(id, {id, BYCOL(FILTER(B2:C, A2:A=id), LAMBDA(col, NOT(AND(col=FALSE))))}))

公式拆解

  • UNIQUE(A2:A):提取A列所有不重复的标识值,作为合并后的行标识
  • BYROW(..., LAMBDA(id, ...)):遍历每个唯一标识,处理对应分组的布尔值
  • FILTER(B2:C, A2:A=id):筛选出当前标识下的所有布尔值行
  • BYCOL(..., LAMBDA(col, NOT(AND(col=FALSE)))):对每一列的布尔值做判断:如果列中所有值都是FALSE,AND(col=FALSE)返回TRUE,取反后得到FALSE;只要有一个TRUE,就返回TRUE

解法2:使用QUERY + ARRAYFORMULA组合公式

同样基于A2:C的原始数据,公式如下:

=ARRAYFORMULA({UNIQUE(A2:A), NOT(QUERY({A2:A, B2:C}, "select min(B), min(C) where A is not null group by A label min(B) '', min(C) ''")=FALSE)})

公式拆解

  • QUERY(...):按A列分组,对B、C列取最小值(Google Sheets中FALSE等价于0,TRUE等价于1,最小值为0意味着该列所有值都是FALSE)
  • NOT(...=FALSE):将分组后的结果与FALSE对比,若结果为FALSE(即原分组所有值都是FALSE),取反后得到最终的FALSE;否则得到TRUE

示例验证

原始数据

A列B列C列
XTRUEFALSE
XFALSEFALSE
YFALSETRUE
YFALSEFALSE

合并后期望结果

A列B列C列
XTRUEFALSE
YFALSETRUE

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 03:31:06