Google Sheets 统计单行排除空值的最后4项中符合条件的文本数
Google Sheets 动态统计单行最后4个非空值匹配数方案
直接在结果单元格(示例中为K1)输入对应公式即可,支持后续行内新增列自动适配,无需手动调整范围。
简洁版公式(新版Google Sheets可用)
=COUNTIF(TAKE(FILTER(A1:1,A1:1<>""),,-4),J1)
通用兼容版公式(所有Google Sheets版本可用)
=COUNTIF(QUERY(FLATTEN(FILTER(A1:1,A1:1<>"")),"select * offset " & MAX(0,COUNTA(A1:1)-4)),J1)
公式逻辑拆解
FILTER(A1:1,A1:1<>""):首先过滤掉当前行从A列开始的所有空白单元格,仅保留非空值,自动识别后续新增列的数据。- 简洁版中
TAKE(...,,-4):直接从过滤后的非空值序列里截取最后4个值;如果非空值总数不足4个,会自动返回全部非空值,不会报错。 - 通用版通过
COUNTA(A1:1)统计非空值总数,计算需要跳过的前置条目偏移量,用QUERY的offset参数实现截取最后4个值的效果,适配不支持TAKE函数的旧版表格环境。 - 最外层
COUNTIF(...,J1):统计截取到的4个(或更少)值中,和J1单元格输入的条件完全匹配的条目数量,输出最终结果。
场景验证
对应示例行A1-I1内容:X、空白、Y、X、Y、空白、Y、X、空白
- 过滤空值后得到非空序列:
X, Y, X, Y, Y, X- 截取最后4个值得到统计范围:
X, Y, Y, X- J1输入
X时返回结果2,输入Y时返回结果2,完全符合预期。
使用说明
- 多行数据批量应用时,只需要把K1单元格的公式下拉填充,行号会自动相对引用适配对应行的计算。
- 行内任意位置新增列数据时,公式会自动重新计算最新的最后4个非空值,不需要修改公式范围。
- 当整行非空值不足4个时,公式会自动统计所有现有非空值的匹配数,不会出现报错。
内容的提问来源于stack exchange,提问作者Bob
相关产品推荐
相关产品推荐

