如何在Google Sheets中合并两个可变长度区域为单个列表?
解决Google Sheets两列可变长度数据合并问题
嘿,我来给你几个靠谱的解决方案,完全适配你这种可变长度列合并成连续列表的需求:
方案1:直接数组拼接+过滤空值
这是最基础也最灵活的方法,利用Google Sheets的数组拼接语法把两列上下堆叠,再过滤掉空行:
=FILTER({A:A; B:B}, {A:A; B:B}<>"")
- 原理:
{A:A; B:B}是把A列和B列按顺序上下拼接成一个新数组; FILTER函数用来剔除拼接后数组里的空白单元格,避免最后出现一堆空行;- 优势:不管A、B列后续新增多少数据,公式都会自动包含进去,完全适配可变长度的需求。
方案2:用FLATTEN函数简化操作
如果你觉得数组拼接写起来麻烦,FLATTEN 函数可以直接把多列数据“压平”成一维列表,再配合过滤更简洁:
=FILTER(FLATTEN(A:B), FLATTEN(A:B)<>"")
- 原理:
FLATTEN(A:B)会把A、B两列的所有数据按从上到下、从左到右的顺序转换成一列; - 同样用
FILTER去掉空值,这个方法哪怕你以后要合并3列、4列,只需要把A:B改成A:C这类范围就行,扩展性更强。
方案3:QUERY函数筛选合并
如果你习惯用QUERY的SQL式语法,也可以这么写:
=QUERY({A:A; B:B}, "select Col1 where Col1 is not null")
- 原理:先拼接A、B列成数组,再用QUERY的筛选条件只保留非空的单元格,输出成连续列表;
- 好处是如果后续需要对合并后的列表做额外筛选(比如只保留包含特定字符的内容),可以直接在QUERY语句里扩展条件。
这些方法都不需要担心列的长度变化,完全自动化处理,你可以根据自己的使用习惯选一个就行~
内容的提问来源于stack exchange,提问作者Marek
相关产品推荐
相关产品推荐

