如何修改脚本实现谷歌工作表整表字符串拆分转为多行
适配多列(最高支持CG列)的谷歌工作表拆分脚本
修改后的脚本保留原有拆分规则,兼容从A列到CG列的全范围数据处理:
const result = range => range.flatMap(row => { // 第一列为固定值,剩余所有列自动参与拆分 const [fixedCol, ...splitCols] = row; // 空行兼容处理 if (splitCols.length === 0) return [row]; const { splitValues, maxLen } = splitCols.reduce((acc, cur) => { // 兼容空单元格、非字符串类型单元格 const splitArr = typeof cur === 'undefined' || cur === '' ? [""] : cur.toString().split(","); acc.splitValues.push(splitArr); acc.maxLen = Math.max(acc.maxLen, splitArr.length); return acc; }, { splitValues: [], maxLen: 0 }); // 所有拆分后的数组补空对齐到最大长度 const paddedArr = splitValues.map(arr => arr.concat(Array(maxLen - arr.length).fill(""))); // 生成拆分后的多行数据 return paddedArr[0].map((_, idx) => [fixedCol, ...paddedArr.map(item => item[idx])]); });
使用说明
- 拆分规则和原有逻辑完全一致:第一列值固定复用,其余所有列按逗号分隔后,按对应位置拼接为新行,不足长度的位置自动补空
- 无需手动修改列数参数,传入数据范围包含多少列就自动处理多少列,覆盖到CG列的场景也可正常使用
- 谷歌工作表中使用时,直接在单元格输入公式调用即可,例如处理A1到CG200范围,输入
=RESULT(A1:CG200)即可输出结果
内容的提问来源于stack exchange,提问作者Phronimos
相关产品推荐
相关产品推荐

