google-apps-script - 用于从文件夹中的所有工作表中获取唯一值的 Google Apps 脚本
问题描述
我想在 Google 表格中创建一个用于出席的主电子表格。同一文件夹中有许多其他工作表,我想从中提取唯一名称并将这些唯一名称保存在主电子表格中。此外,计算这些唯一名称的出现次数也是有益的。但我可以使用其他方法来实现这一点。
到目前为止,我找到了一个脚本,它从指定文件夹中的文件中收集了所有数据条目,但是我没有足够的 JS/Google Apps 经验来实现代码中等效的 UNIQUE 函数。
var spreadsheets = DriveApp.getFolderById("FOLDERID").getFilesByType(MimeType.GOOGLE_SHEETS);
var data = [];
while (spreadsheets.hasNext()) {
var currentSpreadsheet = SpreadsheetApp.openById(spreadsheets.next().getId());
data = data.concat(currentSpreadsheet.getSheetByName("Sheet1").getRange("RANGE").getValues());
}
SpreadsheetApp.
getActiveSheet().
getRange(1, 1, data.length, data[0].length).
setValues(data);
所需设置的示例:
文件 1:
John Smith EmailJS majorJS yearJS
James Johnson EmailJJ majorJJ yearJJ
Monty Hall EmailMH majorMH yearMH
Stephanie C. emailSC majorSC yearSC
Martin R. emailMR majorMR yearMR
Jack M. emailJM majorJM yearJM
文件 2:
asa sd dgdsv yurntb eryb
sdads svgsdvf bhg tdbs
gdfgd sfvgs g tbht
jfsfsds sfvgsd fb thdbt
sgsgs sawetv4 tbh rtrb
qssqws qedw qwqd qdqwd
文件 3:(文件 1 的副本)
John Smith EmailJS majorJS yearJS
James Johnson EmailJJ majorJJ yearJJ
Monty Hall EmailMH majorMH yearMH
Stephanie C. emailSC majorSC yearSC
Martin R. emailMR majorMR yearMR
Jack M. emailJM majorJM yearJM
期望的输出:
Name Email Major Year Attendance
John Smith EmailJS majorJS yearJS 2
James Johnson EmailJJ majorJJ yearJJ 2
Monty Hall EmailMH majorMH yearMH 2
Stephanie C. emailSC majorSC yearSC 2
Martin R. emailMR majorMR yearMR 2
Jack M. emailJM majorJM yearJM 2
asa sd dgdsv yurntb eryb 1
sdads svgsdvf bhg tdbs 1
gdfgd sfvgs g tbht 1
jfsfsds sfvgsd fb thdbt 1
sgsgs sawetv4 tbh rtrb 1
qssqws qedw qwqd qdqwd 1
解决方案
我会这样做-
- 初始化一个空数组以保留为内存(“内存”)。
对于您拥有的每个源表中的每一行 -
- 使用四个字段形成一个数组('item');姓名、电子邮件、专业和年份。
- 使用 'memory'.includes('item') 方法在 'memory' 中找到 'item'
- 如果未找到,则将“项目”写入目标表,出勤率为“1”,并将“项目”推入内存阵列。
- 如果在 'memory' 中找到 'item',只需将目标工作表中该 'item' 的出勤率增加 1。您不需要第二次将其推送到 'memory' 数组中。
我相信还有比这更有效的方法。但我相信这会奏效。
推荐阅读
- java - 添加 FilteredList 和 SortedList 以在 Javafx 中创建搜索栏会返回 java.lang.reflect.InvocationTargetException
- autodesk-forge - Forge .net api 中的更新
- spreadsheet - 带有条件和分组的 Libreoffice 计数
- swift4 - Swift:在换帧时淡出两个图像
- arrays - 多维数组列表奇怪的行为
- java - 如何使用模型片段将已处理的工具项定位到右侧
- c# - 将 JSON 数据路由到 Azure 中的事件中心
- sql - Report Builder 3.0 计数参数问题
- angularjs - 如何在没有选择复选框的情况下在 Kendogrid 中选择多行 Angular5
- python-3.x - 增加图像分类器中的类数