我有一个包含以下行的Google电子表格:
| sth1, sth2 |
| sth4 |
| sth1, sth3 |
| sth4 |
我想拆分此列中的每个单元格并创建如下的新列:
| sth1 |
| sth2 |
| sth4 |
| sth1 |
| sth3 |
| sth4 |
有人可以告诉我该怎么做吗?
答案 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;
}
我为您创建了一个示例文件: 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);