咨询Google Sheets拆分逗号分隔内容并复制整行数据的方法
Google Sheets 拆分逗号分隔内容到新行的解决方案
方法1:使用动态数组公式(推荐,无需修改原数据)
在空白单元格(比如E1)输入以下公式,结果会自动溢出填充:
=LET( data, A2:C, names, INDEX(data,,3), split_names, SPLIT(names, ","), expanded_A, INDEX(data,,1)&"", expanded_B, INDEX(data,,2)&"", result, HSTACK( FLATTEN(IF(split_names<>"", expanded_A, "")), FLATTEN(IF(split_names<>"", expanded_B, "")), TRIM(FLATTEN(split_names)) ), FILTER(result, INDEX(result,,3)<>"") )
- 核心逻辑:
- 用
SPLIT拆分ColC的逗号分隔姓名 - 通过
FLATTEN将拆分后的多列姓名转为单行,并同步扩展对应行的ColA、ColB数据 TRIM清除姓名前后多余空格,FILTER过滤空行
- 用
方法2:使用内置拆分功能(操作简单,建议先备份原数据)
- 复制原数据到新工作表,避免破坏原始内容
- 选中包含数据的目标区域(如A1:C4)
- 点击顶部菜单栏「数据」→「拆分文本」→「拆分到行」
- 在弹窗中选择分隔符为「逗号」,点击「确定」即可完成拆分
方法3:使用Apps Script(适合批量处理或自动化场景)
- 打开目标表格,点击顶部菜单栏「扩展程序」→「Apps 脚本」
- 删除默认代码,粘贴以下脚本:
function splitNamesToRows() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const data = sheet.getDataRange().getValues(); const headers = data.shift(); const result = []; data.forEach(row => { const colA = row[0]; const colB = row[1]; const names = row[2].split(",").map(name => name.trim()); names.forEach(name => { result.push([colA, colB, name]); }); }); // 在新工作表生成拆分结果 const newSheet = sheet.getParent().insertSheet("拆分结果"); newSheet.appendRow(headers); newSheet.getRange(2, 1, result.length, result[0].length).setValues(result); }
- 点击「运行」,完成授权后,系统会自动创建名为「拆分结果」的新工作表并填充数据
内容的提问来源于stack exchange,提问作者Danillo Villas Neto
相关产品推荐
相关产品推荐

