如何在Google Sheets中用公式转置指定列并重复前4列数据
实现前4列重复、其余列堆叠的表格转换
针对你需要将表格前4列重复显示,其余列数据堆叠的需求,在Google Sheets中可以用以下高效公式实现:
灵活适配版公式(支持任意数量堆叠列)
=LET( base, A2:D, data, E2:Z, headers, {"列1","列2","列3","列4","堆叠列"}, stack, BYCOL(data, LAMBDA(col, HSTACK(base, col))), VSTACK(headers, FLATTEN(stack)) )
公式说明:
base:替换为你表格中前4列的实际数据区域(示例从第2行开始,跳过表头)data:替换为需要堆叠的其余列的实际数据区域headers:自定义结果表格的表头名称,可根据你的实际列名修改- 公式会自动遍历每一列堆叠数据,将前4列与该列横向拼接后压平,最终生成符合要求的结构
兼容旧版表格的手动列写法
如果你的Google Sheets版本不支持LET或BYCOL函数,可以用以下写法(需手动列出所有要堆叠的列):
=ARRAYFORMULA(SPLIT(QUERY({ ARRAYFORMULA(A2:A&"|"&B2:B&"|"&C2:C&"|"&D2:D), E2:E; ARRAYFORMULA(A2:A&"|"&B2:B&"|"&C2:C&"|"&D2:D), F2:F; ARRAYFORMULA(A2:A&"|"&B2:B&"|"&C2:C&"|"&D2:D), G2:G }, "select Col1, Col2 where Col2 is not null", 0), "|"))
使用提示:
- 按实际需要添加更多行(比如
ARRAYFORMULA(...) , H2:H;)来包含所有要堆叠的列 "|"是分隔符,只要你的数据中不包含这个字符即可正常使用
内容的提问来源于stack exchange,提问作者onit
相关产品推荐
相关产品推荐

