如何在ArrayFormula中排除空单元格产生的0值?
移除公式中空单元格产生的多余0值
原公式=ArrayFormula({"Test"; query(value(CTA!C2:C)*0.8)})会将空单元格转换为0,以下两种方法可解决这个问题:
方法一:保留空行,仅计算非空单元格
使用IF函数判断原单元格是否为空,为空则返回空值,否则执行计算:
=ArrayFormula({"Test"; IF(CTA!C2:C="",, VALUE(CTA!C2:C)*0.8)})
- 逻辑:当
CTA!C2:C为空时,IF的结果留空,避免生成0;非空单元格正常计算0.8倍的值。 - 优势:保留原数据的行结构,空单元格对应位置仍为空,不会过滤掉原单元格本身为0的情况。
方法二:过滤所有计算结果为0的行
借助QUERY的条件过滤功能,直接排除计算后等于0的行:
=ArrayFormula({"Test"; QUERY(VALUE(CTA!C2:C)*0.8, "where Col1 <> 0", 0)})
- 逻辑:
where Col1 <> 0会筛选出计算结果不为0的行,直接移除所有0值行。 - 注意:此方法会同时过滤掉原单元格本身为0的情况,若需要保留原0值,不建议使用。
内容的提问来源于stack exchange,提问作者cpaone
相关产品推荐
相关产品推荐

