如何在Google Sheets中转置部分数据并重复列值及表头?
Google Sheets 数据转置拆分解决方案
不用Lambda、Map这类高级函数,用基础内置函数组合就能实现需求,具体操作如下:
公式实现
假设你的原始数据中,A列是需要保留的唯一标识列(比如姓名),B列及之后是带有逗号分隔值的类别列,表头在第一行。在空白单元格(比如G1)输入以下公式(根据你的实际数据范围调整引用):
=QUERY(FLATTEN(ARRAYFORMULA(A2:A&"|"&B1:E1&"|"&SPLIT(B2:E, ","))), "SELECT SPLIT(Col1, '|') WHERE Col1 IS NOT NULL", 0)
公式拆解(基础函数说明)
SPLIT(B2:E, ","):把目标列中每个单元格的逗号分隔值拆分成独立单元格A2:A&"|"&B1:E1&"|"&SPLIT(...):将唯一标识、对应列表头、拆分后的值用竖线|拼接成统一字符串,确保每组数据关联对应FLATTEN:把多列的拼接字符串转换成单列QUERY:将单列字符串按竖线拆分成三列,同时过滤空值,输出结构化结果
注意事项
- 如果数据本身包含竖线
|,可以换成其他不常用符号(比如^),公式里的所有|也要同步替换 - 按需调整公式中的单元格范围:
A2:A对应数据行的唯一标识列,B1:E1对应表头行范围,B2:E对应数据行的目标处理列范围
内容的提问来源于stack exchange,提问作者onit
相关产品推荐
相关产品推荐

