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

如何在VSTACK输出中仅移除连续空白值?

问题场景

此前我用以下公式合并多列并移除空值:

FILTER(VSTACK(<filtered_column_1>;<filtered_column_2>);
VSTACK(<filtered_column_1>;<filtered_column_2>)<>0)

但当前需要保留非连续空白值,仅移除连续重复的空白行:

  • 未过滤的VSTACK原始输出:
    1
    2
    <blank>
    <blank>
    <blank>
    2
    2
    3
    <blank>
    3
    
  • 期望过滤后的输出:
    1
    2
    <blank>
    2
    2
    3
    <blank>
    3
    

核心需求是:仅保留「非空白值」或「空白但前一行非空白」的行,但不清楚如何在FILTER的include参数中引用VSTACK的临时合并结果。

解决方案

使用LET函数先存储VSTACK的合并结果(避免重复计算),再基于临时数组构建过滤逻辑:

LET(
  merged, VSTACK(<filtered_column_1>;<filtered_column_2>),
  row_ids, SEQUENCE(ROWS(merged)),
  FILTER(merged, 
    merged<>"" 
    OR 
    (merged="" AND (row_ids=1 OR OFFSET(merged, -1, 0)<>""))
  )
)

逻辑说明

  1. LET(merged, ...):将VSTACK的合并结果赋值给merged变量,后续直接引用即可,无需重复编写VSTACK公式
  2. 过滤条件拆解:
    • merged<>"":直接保留所有非空白值
    • merged="" AND (row_ids=1 OR OFFSET(merged, -1, 0)<>""):仅保留两种空白行:
      • 第一行的空白(避免第一行空白被误过滤)
      • 当前行是空白,但前一行非空白的行(即连续空白中的第一个空白,后续连续空白会被过滤)

适配调整

如果你的空白值实际是0而非空文本,只需把公式中的""替换为0即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 00:59:55