如何在Google Sheets中保留指定列并将其余列数据转置为行
解决方案
你可以直接在Google Sheets中使用以下公式完成数据转换,无需复杂的转置或手动操作:
=QUERY(ARRAYFORMULA(SPLIT(FLATTEN(A2:A&"|"&B2:B&"|"&C2:C&"|"&D2:ZZ), "|")), "where Col4 is not null", 1)
公式说明
FLATTEN(A2:A&"|"&B2:B&"|"&C2:C&"|"&D2:ZZ):将每行的Year、Make、Model与所有Slug列的内容拼接成带分隔符|的字符串,再将所有字符串平铺成一列SPLIT(..., "|"):把平铺后的字符串按|拆分成四列,对应Year、Make、Model、SlugQUERY(..., "where Col4 is not null", 1):过滤掉Slug为空的行,1表示保留表头
原始数据示例
| Year | Make | Model | Slug1 | Slug2 | Slug3 |
|---|---|---|---|---|---|
| 2002 | Series 1 | f82 | a | b | c |
| 2003 | Series 2 | f83 | a | b | c |
转换后效果
| Year | Make | Model | Slug |
|---|---|---|---|
| 2002 | Series 1 | f82 | a |
| 2002 | Series 1 | f82 | b |
| 2002 | Series 1 | f82 | c |
| 2003 | Series 2 | f83 | a |
| 2003 | Series 2 | f83 | b |
| 2003 | Series 2 | f83 | c |
注意:公式中的
A2:A、B2:B、C2:C对应你的Year、Make、Model列范围,D2:ZZ覆盖所有Slug列(如果Slug列数量不多,也可以写成具体范围如D2:F)。直接将公式粘贴到空白单元格即可生成转换后的数据。
内容的提问来源于stack exchange,提问作者SIDDHARTH
相关产品推荐
相关产品推荐

