【发布时间】:2019-06-22 18:29:35
【问题描述】:
我一直在尝试编写一些代码,根据一些简单的公式来查看包含字符串的一列。我似乎无法让它识别不同的数据集并将它们粘贴到我想要的位置。
我尝试用几种不同的方式重新编写代码,查看所有数据并将目标行偏移 1。但它不识别它是拉不同的数据。
以下是有效的代码。它的作用是从第一列第二行(我的数据开始的地方)开始。数据是一个类似的列表;
A
1 Customer1
2 item1
3 item2
4 Item3
5
6 Customer2
7 Item1
我在这些单元格中的公式只是连接了其他一些单元格。 使用循环它查看 A 列并找到空白区域。然后它“打破”它停止的任何数字,单元格的数字 A1 表示法,然后找到这些单元格的值并将它们转置在正确行的另一张表中。
我遇到的问题是这段代码运行得最好的代码是它不会将任何单元格读取为空白 (因为公式?)并将所有内容转置到同一行。
function transpose(){
var data = SpreadsheetApp.getActiveSpreadsheet();
var input =data.getSheetByName("EMAIL INPUT");
var output = data.getSheetByName("EMAIL OUTPUT");
var lr =input.getLastRow();
for (var i=2;i<20;i++){
var cell = input.getRange(i, 1).getValue();
if (cell == ""){
break
}
}
var set = input.getRange(2, 1, i-1).getValues();
output.getRange(2,1,set[0].length,set.length) .
.setValues(Object.keys(set[0]).map ( function (columnNumber) {
return set.map( function (row) {
return row[columnNumber];
});
}));
Logger.log(i);
Logger.log(set);
}
我需要代码做的是查看所有数据并按条件分隔数据集。 然后将该信息转置在另一张纸上。每组(或数组)数据将进入不同的行。每个组件都填充在列中 (["customer1", "Item1","Item2"].
编辑: 是否可以从单个列中提取不同的数据集并将它们转换为数组?我相信如果我使用“appendrow”将我的不同数组转移到我需要它们的地方,那么能够做到这一点。
【问题讨论】:
-
看起来代码有一些拼写错误,例如
output.getRange(2,1,set[0].length,set.length) .,然后是下一行.setValues(Object.keys(set[0]).map ( function (columnNumber) {。您在这里传递代码时遇到问题吗?另一方面,请阅读minimal reproducible example。 -
@Rubén。在查找转置时,我从另一个网站获取了该脚本的一部分。从执行来看,这部分代码似乎没有任何问题
-
@HannaLogan 详细的后续问题通常作为单独的问题提出 - 部分是为了保持一个问题的回答方法,部分是因为所有最有资格提供帮助的人可能无法看到“编辑”。无论如何,从您的“编辑”中不清楚您想要实现什么(它没有您之前问题的背景),并且您没有提供成功结果的示例。除非我误解了您的“编辑”,否则我认为最好将其作为一个新问题提出。
标签: javascript multidimensional-array google-apps-script google-sheets