【发布时间】:2019-09-12 03:09:09
【问题描述】:
我试图弄清楚如何搜索谷歌表单响应(谷歌表格),以便找到行号和列号的值来提取数据。
我有其他所有东西,但正在搜索列和行,我不确定如何对此进行 2D 搜索。
这是我要搜索和提取的数据,但我不想要所有数据,只想要特定的单元格/范围。
https://docs.google.com/spreadsheets/d/1ehA0fXBM6CPBAKfHvBbouRPjOMDxrXSdFI0zMye3G7c/edit?usp=sharing
我的计划是将“员工姓名”提取到另一个电子表格中,以便了解谁完成了它以及每天在什么位置完成它。因为表单总是收到响应,所以我希望脚本每天多次提取数据以显示表单的合规性。我希望响应看起来像这样:
https://docs.google.com/spreadsheets/d/1QyK5c-vxkt5BnM-wM-m80RZCO_29KWoF_isIZBOllvQ/edit?usp=sharing
这是我希望让我的 Google 脚本执行的操作: 1.脚本搜索源表找到位置。 2. 脚本返回列出位置的行和列。 3. 脚本取行和列并从行和getValue()中减去1;那个细胞。 (在这种情况下,将是填写表格的员工。) 4. 脚本根据员工位置将“员工姓名”返回到目标表。 (所以它在正确的行中。) 结果,脚本从表单响应中提取数据并列出完成它的人。
我已经准备好从特定单元格/范围中提取数据并根据位置和日期将其粘贴到目标工作表。
现在我已经解释了我想要做什么,我可以解释我在哪里被难住了。我无法弄清楚命令的重复或何时起作用。我想搜索一个特定位置,然后返回行号和列号。这是我一直在尝试操作的代码,但我无法让它在 2d 甚至行中搜索以返回值 int eh for/when 命令。
function updateVerification() {
var ss = SpreadsheetApp.openById("1ehA0fXBM6CPBAKfHvBbouRPjOMDxrXSdFI0zMye3G7c");
var sheet = ss.getSheetByName("Sheet1");
var ss_dest = SpreadsheetApp.openById("1QyK5c-vxkt5BnM-wM-m80RZCO_29KWoF_isIZBOllvQ");
var sheet_dest = ss_dest.getSheetByName("Destination");
var rows=ss.getDataRange().getValues();
var paste = 0;
for(var r=0; r<rows.length; r++){
for(var c=0; c<rows[r].length; c++){
if(rows[r][c] == "Location #1"){
paste = sheet.getRange(rows[r]+":"+rows[c]).getValue();
sheet_dest.getRange(2,4).setValue(paste);
}
}
}
}
如果有人能帮助我,我将不胜感激。
感谢您的任何帮助。 :)
【问题讨论】:
-
您需要用括号调用
getDataRange()和getValues(),复数形式。也不清楚targetRange来自哪里。
标签: google-apps-script google-sheets