谷歌表格多列字符串拆分为行时文本重复问题求解
修复后可解决重复问题的脚本
function result(range) { const output = []; // 逐行处理原始数据 for (let i = 0; i < range.length; i++) { const row = range[i]; // 拆分每个单元格的换行内容,记录当前行最大的拆分行数 const splitCells = row.map(cell => { // 处理空单元格,避免toString报错 if (cell == null) return [""]; return cell.toString().split("\n").map(item => item.trim()); }); const maxSplitLen = Math.max(...splitCells.map(cell => cell.length)); // 按最大行数补位,生成拆分后的多行数据 for (let lineIdx = 0; lineIdx < maxSplitLen; lineIdx++) { const newRow = splitCells.map(cell => { // 超出当前单元格拆分长度的位置填空字符串,不会重复填充原值 return cell[lineIdx] ?? ""; }); output.push(newRow); } } return output; }
使用说明
- 和原有脚本调用方式一致,直接在谷歌表格单元格中输入公式
=RESULT(你要处理的数据源范围)即可,比如处理A到E列的1到20行数据,就写=RESULT(A1:E20) - 若需要过滤拆分后生成的空行,可以用嵌套公式:
=FILTER(RESULT(A1:E20),INDEX(RESULT(A1:E20),0,1)<>"")
内容的提问来源于stack exchange,提问作者Phronimos
相关产品推荐
相关产品推荐

