基于条件遍历行:提取Google表格中符合条件的列表
解决方案
直接给你修改后的完整代码,完全匹配你的需求:
function setfieldsdefaults() { var form = FormApp.openById('mygoogleformsID'); var items = form.getItems(); // 原表单查看代码保留,你可按需启用 // for (var i in items) { // console.log(items[i].getTitle() + ' - ' + items[i].getId()) // } var question = form.getItemById('myquestionID'); var ss = SpreadsheetApp.openById('mysreadsheetID'); var sheet = ss.getSheetByName('Abonnés'); // 关键调整:获取第6列(F)和第7列(G)的数据,从第2行(跳过表头)到最后一行 var range = sheet.getRange(2, 6, sheet.getLastRow() - 1, 2); var data = range.getValues(); var enfants = []; // 遍历每一行,筛选符合条件的名称 for (var i = 0; i < data.length; i++) { var rowStatus = data[i][1]; // 第7列对应数组索引1 var rowName = data[i][0]; // 第6列对应数组索引0 if (rowStatus === 'P' && rowName !== '') { enfants.push(rowName); } } // 去重(可选)+ 排序 enfants = [...new Set(enfants)].sort(); console.log(enfants); }
核心修改说明:
- 数据范围调整:
getRange(2, 6, sheet.getLastRow() - 1, 2)精准获取需要的两列数据,避免多余计算。 - 筛选逻辑实现:循环遍历每行数据,判断第7列是否为
P,同时排除空名称,符合条件就加入列表。 - 去重处理:用
[...new Set(enfants)]自动去除重复名称,不需要的话可以直接删掉这部分。 - 索引对应关系:表格列从1开始计数,但数组索引从0开始,所以第7列对应数组的第1个元素,别搞混。
内容的提问来源于stack exchange,提问作者Etienne
相关产品推荐
相关产品推荐

