如何将Google Sheets多工作表区域按先上下后左右顺序合并为单列
公式调整方案
问题根因
原公式排序异常是因为多表区域混合拼接时,整列优先合并内容,导致最终读取顺序变为先左后右,不符合行优先的排序要求。
可用解决方案
方案1(推荐,适配新版谷歌表格)
性能更高,写法简洁,自动跳过空值:
=LET( table1,Sheet1!A1:Z100, table2,Sheet2!A1:Z100, merge_range,{table1;table2}, TOCOL(merge_range,1) )
TOCOL默认按行优先(从上到下逐行、每行从左到右)扁平化区域,第二个参数设为1可自动过滤空单元格,不需要额外处理分隔符的拼接拆分。
方案2(兼容旧版谷歌表格)
适配不支持LET/TOCOL函数的旧版本,沿用原有拼接拆分逻辑调整:
=TRANSPOSE(SPLIT(ARRAYFORMULA(CONCATENATE(TRANSPOSE(Sheet1!A1:Z100&"-"),TRANSPOSE(Sheet2!A1:Z100&"-"))),"-"))
调整逻辑为分别对两个工作表的区域做单独的行优先转置拼接,再合并后拆分,避免多表区域混合拼接导致的顺序错乱。
内容的提问来源于stack exchange,提问作者Kevin P.
相关产品推荐
相关产品推荐

