Google Sheets:如何实现带行间隔的非空单元格扁平化处理
解决Google Sheets数据扁平化问题
给你一个能直接实现需求的公式:
=SPLIT(TEXTJOIN(CHAR(10)&CHAR(10), TRUE, BYROW(A1:C5, LAMBDA(r, TEXTJOIN(CHAR(10), TRUE, r)))), CHAR(10))
公式逻辑拆解
- 内层
BYROW(A1:C5, LAMBDA(r, TEXTJOIN(CHAR(10), TRUE, r))):遍历A1:C5的每一行,用换行符(CHAR(10))拼接该行所有非空单元格,自动忽略空值。 - 外层
TEXTJOIN(CHAR(10)&CHAR(10), TRUE, ...):把每行处理后的结果用两个换行符拼接,这样行与行之间就会留出一个空行。 - 最后
SPLIT(..., CHAR(10)):把拼接好的字符串按换行符拆分,转成单列数据,正好匹配你要的效果。
为什么FLATTEN不行?
FLATTEN是把整个区域的单元格按行序转成单列,行内的空单元格会被当成分隔项,导致行与行之间的空行数量混乱,没法精准控制每行后留一个空行。
之前你试的BYROW+MAP变体没成功,大概率是没处理好换行符的拼接逻辑,这个组合公式更直接,一步到位。
内容的提问来源于stack exchange,提问作者jason
相关产品推荐
相关产品推荐

