4

我有一个带有如下行的 Google 电子表格:

| sth1, sth2 |
| sth4       |
| sth1, sth3 |
| sth4       |

我想拆分此列中的每个单元格并创建新列,如下所示:

| sth1 |
| sth2 |
| sth4 |
| sth1 |
| sth3 |
| sth4 |

有人可以告诉我如何做到这一点吗?

4

3 回答 3

5

使用 Google Apps 脚本,可以使用这个小脚本来完成:

代码

function splitColumn(range) {
  var output = [];

  for(var i in range) {
    var split = range[i][0].split(",");

    if(split.length == 1) {
      output.push([split[0]]);
    } else {
      for(var j in split) {
        output.push([split[j]]);
      }
    }
  }
  return output;  
}

用法

在此处输入图像描述

例子

我为您创建了一个示例文件:行内容到列

评论

Tools通过从菜单中选择添加此脚本,然后按Script editor. 粘贴脚本并按下保存按钮,您就可以开始了。

于 2013-09-03T20:24:20.197 回答
2

假设sth1, sth2在 B1 中,不需要脚本:

=ArrayFormula(transpose(split(textjoin(",",,B1:B4),", ")))
于 2018-06-01T18:45:43.387 回答
0

我写了这个函数来分割一个特定的列。

function SplitColumnValues(sheet_name, column_index, delimiter) {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = spreadsheet.getSheetByName(sheet_name);
  var lastRow = sheet.getLastRow();

  var range = sheet.getRange(1,column_index,lastRow-1, 1);
  range.splitTextToColumns(delimiter);
}

该函数采用工作表名称、要拆分的列和分隔符。

首先,获取参考表

var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getSheetByName(sheet_name);

下一行将获取需要拆分的列中的行数

var lastRow = sheet.getLastRow();

接下来获取范围(即需要拆分的列),然后使用“splitTextToColumn”拆分该范围

var range = sheet.getRange(1,column_index,lastRow-1, 1);
range.splitTextToColumns(delimiter); 
于 2019-12-17T19:06:29.183 回答