![](/img/trans.png)
[英]How do I extract specific columns from google sheets to google doc using Google Script?
[英]How do I extract a specific Column from google sheets using Google Script?
所以我有一个由谷歌表单提供的膳食库存电子表格。 员工每天晚上在一天结束时计算膳食,每列的每个第二个单元格都有一个标题:初始,星期一,星期二你明白了。 我想在某些商品快速售出时通知自己,以便补货。 我的问题是我可以使用
.getLastColumn();
但我想基于最近列的每个 lastColumn 数据,该列的第二个单元格中有“Initial”,并将它们放在单独的工作表上的 2 列数组中。 有任何想法吗? 到目前为止,这是我的脚本;
function activeData() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var Sheet = ss.getSheetByName("IREmaildata"); var lastCol = Sheet.getLastColumn(); var rangeInitial = Sheet.getDataRange(); // Not sure if this would be correct? var initial = rangeInitial.getValues(); var int = "Initial"; //the 3rd cell in "Initial" column must say "Initial". var rangeLastnight = Sheet.getRange(1,lastCol,37,1); //I can easily get the data from the most recent googleForm submission. var lastNight = rangeLastnight.getValues(); //I can easily get the data from the most recent googleForm submission. /* probably some type of logic will go here? */ ss.getSheetByName("Sheet5").getRange(1,2,37,1).setValues(yesterday); ss.getSheetByName("Sheet5").getRange(1,3,37,1).setValues(today); }
我的电子表格; https://docs.google.com/spreadsheets/d/1X_UcqyXXRMyjZ2j46TymMrIMWvt19HOZTTaEUlIVqwE/edit?usp=sharing
IREmaildata
和Sheet5
的工作表分别是您期望的输入和输出。IREmaildata
检索值。
Most recent Night Dynamic Column
),并检索在第 2 行具有Initial
且离最后一列最近的列( Begining of the week Dynamic Column
)。 和列“A”。Precenatage sold Static Column
)。如果我的理解是正确的,这个答案怎么样? 请将此视为几种可能的答案之一。
此示例脚本的流程如下。
IREmaildata
的数据范围中检索值。Initial
的列的索引。Initial
值的列的索引,即最后一列的索引。 请将以下脚本复制并粘贴到共享电子表格的容器绑定脚本中。 并请准备目标工作表并将目标工作表名称设置为destSheetName
,并运行函数activeData
。
function activeData() {
var destSheetName = "###"; // Please set the destination sheet name.
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("IREmaildata");
var values = sheet.getDataRange().getValues();
var lastColumnIndex = values[1].length - 1;
var initialIndex = 0;
for (var i = lastColumnIndex - 1; i >= 0; i--) {
if (values[1][i] == "Initial") {
initialIndex = i;
break;
}
}
var result = values.map(function(row, i) {
var ar = [row[0], row[initialIndex], row[lastColumnIndex]];
if (i == 0) {
ar.push("");
} else if (i == 1) {
ar.push("Since Begining of week");
} else if (i > 1) {
var temp = 1 - (row[lastColumnIndex] / row[initialIndex]);
ar.push(isNaN(temp) ? "None sold" : temp);
}
return ar;
});
var destSheet = ss.getSheetByName(destSheetName);
destSheet.getRange("D3:D").setNumberFormat("0.00%");
destSheet.getRange(1, 1, result.length, result[0].length).setValues(result);
}
getValues()
用于从工作表IREmaildata
检索值。 在这种情况下,日期值作为日期对象被检索。 例如,如果要修复日期格式,请修改var values = sheet.getDataRange().getValues();
到var values = sheet.getDataRange().getDisplayValues();
.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.