在Google Sheets中如何用公式将带A列分组的列数据转为多行?
在Google Sheets中按A列分组将列状数据转换为多行的公式
方法1:FLATTEN+SPLIT组合(兼容旧版Google Sheets)
假设分组列为A列,需拆分的目标数据在B到D列,可使用以下公式:
=ARRAYFORMULA(QUERY(SPLIT(FLATTEN(A:A&"|"&B:D), "|"), "where Col2 is not null"))
公式说明:
FLATTEN(A:A&"|"&B:D):将每个分组(A列值)与对应行的所有目标数据(B-D列)用|拼接,再把所有结果平铺为单列SPLIT(..., "|"):把平铺后的每行内容按|拆分为两列,分别对应分组和数据QUERY(..., "where Col2 is not null"):过滤掉数据列为空的无效行
方法2:TOCOL+HSTACK组合(新版Google Sheets推荐)
若你的Google Sheets支持TOCOL和HSTACK函数,可使用更简洁的写法:
=HSTACK(TOCOL(A:A, 1), TOCOL(B:D, 1))
公式说明:
TOCOL(A:A, 1):将A列的分组值按对应行的非空数据列数重复,自动忽略空行TOCOL(B:D, 1):把B-D列的所有非空数据平铺为单列HSTACK:将分组列和数据列横向合并,直接得到分组对应多行的结果
内容的提问来源于stack exchange,提问作者Brian Brock
相关产品推荐
相关产品推荐

