我有一个带有如下行的 Google 电子表格:
| sth1, sth2 |
| sth4 |
| sth1, sth3 |
| sth4 |
我想拆分此列中的每个单元格并创建新列,如下所示:
| sth1 |
| sth2 |
| sth4 |
| sth1 |
| sth3 |
| sth4 |
有人可以告诉我如何做到这一点吗?
我有一个带有如下行的 Google 电子表格:
| sth1, sth2 |
| sth4 |
| sth1, sth3 |
| sth4 |
我想拆分此列中的每个单元格并创建新列,如下所示:
| sth1 |
| sth2 |
| sth4 |
| sth1 |
| sth3 |
| sth4 |
有人可以告诉我如何做到这一点吗?
使用 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
. 粘贴脚本并按下保存按钮,您就可以开始了。
假设sth1, sth2
在 B1 中,不需要脚本:
=ArrayFormula(transpose(split(textjoin(",",,B1:B4),", ")))
我写了这个函数来分割一个特定的列。
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);