用于拆分单元格中的文本和创建列的功能

时间:2013-09-03 15:14:05

标签: split google-apps-script google-sheets

我有一个包含以下行的Google电子表格:

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

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

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

有人可以告诉我该怎么做吗?

3 个答案:

答案 0 :(得分:4)

使用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;  
}

用法

enter image description here

实施例

我为您创建了一个示例文件: row content to column

备注

从菜单中选择Tools,然后选择Script editor,添加此脚本。粘贴脚本并按下保存按钮即可开始使用。

答案 1 :(得分:1)

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

=ArrayFormula(transpose(split(textjoin(",",,B1:B4),", ")))

答案 2 :(得分: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);