如何在Google Sheets动态区域中统计相同字符串的单元格数量
解决方案:Google Sheets 动态分隔区域的选项计数(无需AppsScript)
利用OFFSET+MATCH+COUNTIF组合实现动态区域的自动统计,无需手动调整范围,增删单元格时自动适配。
核心公式示例
针对每个部门区域首行的计数器单元格(比如1st部门的D2单元格,对应"1st option"计数),使用以下公式:
=COUNTIF( OFFSET( $B2, 0, 0, IFERROR( MATCH(TRUE, ISBLANK($A2:$A), 0) - 1, COUNTA($A:$A) - ROW($A2) + 1 ), 1 ), """1st option""" )
公式拆解
OFFSET($B2, 0, 0, [行数], 1):以当前行的B列单元格为起点,生成1列宽的动态范围,行数由后续逻辑自动计算。MATCH(TRUE, ISBLANK($A2:$A), 0) - 1:从当前行开始,定位A列第一个空行的位置,减去1得到当前部门区域的有效行数(空行不计入统计)。IFERROR(..., COUNTA($A:$A) - ROW($A2) + 1):处理最后一个部门(无后续空行)的边界情况,用A列非空单元格总数减去当前行号,得到剩余有效行数。COUNTIF(..., """1st option"""):统计动态范围内匹配目标选项的单元格数量(若你的Option列内容带双引号,需用三个双引号包裹选项文本完成转义;若不带引号,直接写"1st option"即可)。
快速部署步骤
- 定位到第一个部门区域的首行(比如1st部门的D2单元格),粘贴上述公式,将最后一个参数替换为对应计数器的选项文本。
- 横向复制该公式到同一行的其他计数器单元格(E2、F2、G2),分别修改选项文本为
"""2nd option"""、"""3rd option"""、"""4th option"""。 - 纵向复制这四个公式到其他部门区域的首行(比如2nd部门的D5、E5、F5、G5),公式会自动适配当前部门的起始行和区域范围。
效果验证
- 增删部门内的单元格时,公式会自动重新计算区域范围,不会出现引用错误。
- 新增部门区域时,只需在新区域首行复制这四个公式即可完成配置。
注意事项
- 部门区域必须用空行分隔,且每个区域的首行A列需填写部门名称(后续行A列可留空或重复部门名)。
内容的提问来源于stack exchange,提问作者Michael Benton
相关产品推荐
相关产品推荐

