我需要将以下excel转换为列。我已经尝试使用内置公式和远程数据透视表,但这对我没什么帮助,因为数据在一个列中,我正在寻找转置到多个列。
Excel :(单列中的所有数据)
ABC1
F1
D1
Sym1
ABC2
See Link2
ABC3
F3
D3
Sym3
ABC4
See Link4
ABC5
See Link5
输出应该是:
ABC Functions Description Sym See Link ABC1 F1 D1 Sym1 ABC2 See Link1 ABC3 F3 D3 Sym3 ABC4 See Link4 ABC5 See Link5
查看'查看链接'对于行数据存在,不存在功能,描述和符号,反之亦然。
答案 0 :(得分:0)
所以我想出来了。在googlesheet中使用G脚本来实现这一点。对于任何寻找代码的人来说,就是这样:
function run() {
var inputSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
var outputSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Description");
var rows = new Array(new Array());
var values = inputSheet.getRange(1, 1, inputSheet.getLastRow()).getValues();
Logger.log(values.length);
var j = 0;
var endOfRow = false;
var singleRow = new Array();
for (var row in values) {
for (var col in values[row]) {
var value = values[row][col];
if(value.indexOf("F") != -1) {
singleRow[1] = value;
}
else if(value.indexOf("D") != -1) {
singleRow[2] = value;
}
else if(value.indexOf("See Link") != -1) {
singleRow[4] = value;
endOfRow = true;
}
else if(value.indexOf("Sym") != -1) {
singleRow[3] = value;
endOfRow = true;
}
else {
singleRow[0] = value;
}
}
if(endOfRow) {
rows[j] = singleRow;
j++;
endOfRow = false;
var singleRow = new Array();
}
}
for(var d=2; d < rows.length; d++) {
var singleRow = rows[d];
for(var f = 0; f < singleRow.length; f++) {
if(singleRow[f] == undefined) {
outputSheet.getRange(d, f+1).setValue("");
} else {
outputSheet.getRange(d, f+1).setValue(singleRow[f]);
}
}
}
}