Google Sheets:满足指定相邻字符串对且排除特定配对的行计数
Google Sheets 行统计公式实现(满足特定配对条件并排除冲突行)
需求明确
- 核心统计条件:行内第1/4/7列任意单元格为指定值(如
"a"),且其右侧相邻单元格为目标值(如"b") - 强制排除规则:只要同一行内第1/4/7列任意单元格为指定值(如
"a"),且右侧相邻单元格为冲突值(如"c"),无论是否满足核心条件,该行都不计入统计 - 计数规则:同一行内多次符合核心配对,仅计1次
通用公式实现
=SUMPRODUCT( --( ARRAYFORMULA( (MMULT(--((A:A="a")*(B:B="b")+(D:D="a")*(E:E="b")+(G:G="a")*(H:H="b")), ROW(INDIRECT("A1:A3"))^0)>=1) * (MMULT(--((A:A="a")*(B:B="c")+(D:D="a")*(E:E="c")+(G:G="a")*(H:H="c")), ROW(INDIRECT("A1:A3"))^0)=0) ) ) )
公式拆解
- 核心配对判断:
(A:A="a")*(B:B="b")检测第1列是"a"且右侧第2列是"b",同理覆盖第4/7列的配对场景 - 行级聚合判断:
MMULT(..., ROW(INDIRECT("A1:A3"))^0)将每行3个配对结果求和,>=1表示该行至少存在1个符合要求的核心配对 - 冲突排除判断:第二个
MMULT逻辑与核心配对一致,仅把目标值替换为冲突值,=0表示该行无冲突配对 - 最终计数:两个条件相乘后转数值,
SUMPRODUCT求和得到符合要求的总行数
实际表格适配(对应你的需求场景)
针对results表E7单元格,需要统计data表中"Firey War Axe"与"保留"的有效配对,同时排除存在"Firey War Axe"+"丢弃"的行,公式调整为:
=SUMPRODUCT( --( ARRAYFORMULA( (MMULT(--((data!A:A="Firey War Axe")*(data!B:B="保留")+(data!D:D="Firey War Axe")*(data!E:E="保留")+(data!G:G="Firey War Axe")*(data!H:H="保留")), ROW(INDIRECT("A1:A3"))^0)>=1) * (MMULT(--((data!A:A="Firey War Axe")*(data!B:B="丢弃")+(data!D:D="Firey War Axe")*(data!E:E="丢弃")+(data!G:G="Firey War Axe")*(data!H:H="丢弃")), ROW(INDIRECT("A1:A3"))^0)=0) ) ) )
由于data表44、56行同时存在"Firey War Axe"+"保留"和"Firey War Axe"+"丢弃",冲突判断结果为真,因此这些行被排除,最终E7返回0,符合预期。
示例验证
按你的示例规则:
- row1:存在有效配对且无冲突 → 计入
- row2:配对位置不符合第1/4/7列要求 → 不计入
- row3:存在冲突配对 → 不计入
- row4:存在有效配对且无冲突 → 计入
最终统计结果为2,符合需求。
内容的提问来源于stack exchange,提问作者Mr. J
相关产品推荐
相关产品推荐

