Google Sheets中如何按规则提取非空单元格并垂直粘贴至指定列?
解决Google Sheets按行提取非空单元格并垂直排列的需求
具体场景解决方案
针对你需要处理「Internal Split」工作表B2:K5区域,将每行第一个空单元格前的非空单元格垂直导入「Accounting Split」A列的需求,可使用以下Google Sheets公式直接实现:
=LET( range, 'Internal Split'!B2:K5, row_data, BYROW(range, LAMBDA(row, INDEX(row,,1):INDEX(row,,MATCH(TRUE, ISBLANK(row), 0)-1))), flattened, FLATTEN(row_data), FILTER(flattened, flattened<>"") )
公式说明:
range:指定要处理的目标单元格区域,这里对应「Internal Split」的B2:K5row_data:通过BYROW遍历每一行,用MATCH定位该行第一个空单元格的位置,随后提取从行首到该空单元格前一位的所有非空内容flattened:将每行提取的内容平铺为一维数组FILTER:过滤掉平铺数组中的空值,得到最终的垂直排列结果
使用方法:将上述公式粘贴到「Accounting Split」工作表的A1单元格,结果会自动生成。
通用操作思路
如果要推广到任意行区域的处理,只需修改公式中的range参数为目标区域即可。核心逻辑是:遍历每行→定位首个空单元格→提取该行前序非空内容→平铺过滤→垂直排列。
内容的提问来源于stack exchange,提问作者Nikhil George
相关产品推荐
相关产品推荐

