【发布时间】:2020-09-19 13:29:51
【问题描述】:
我有一个包含五列的主 Google 表格,每天自动更新。
Date Event Value1 Value2 Value3
May 1 ABC A Yes Yes
May 1 ABC B Yes Yes
May 1 ABC C Yes Yes
May 1 DEF A Yes Yes
May 1 DEF B Yes Yes
May 1 GHI A Yes Yes
May 1 GHI C Yes Yes
May 2 ABC A Yes Yes
May 2 DEF D Yes Yes
May 2 GHI C Yes Yes
同一个文档在 Master Sheet 中为三种类型的事件有一个对应的表:ABC、DEF 和 GHI。这些工作表中包含现有值。
我希望 Google Apps 脚本在编辑主表时仅将 Value1 中的唯一值和新值附加到相应的事件表中。示例:
工作表 ABC
Value
A
B
C
表 DEF
Value
A
B
D
表 GHI
Value
A
C
它并不真正取决于日期,而是查看相应工作表中已经存在的内容。
我是 Google Apps 脚本的初学者。我研究了其他解决方案,最远的一步是找到如何根据来自here 的事件值动态创建不同的工作表。
唯一的问题是这会复制所有行,这意味着我在其他工作表中会出现重复。
function createNewSheets() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var masterSheet = spreadsheet.getSheetByName('Raw');
var data_range = masterSheet.getRange('B:C').getValues();
// Get headers row (to be appended on top when new sheet is created):
var headers = data_range[0];
// Iterate through all rows of data from Raw:
for (var i = 1; i < data_range.length; i++) {
var row = data_range[i]; // Current row
var eventName = row[0]; // Event name
// Get sheet with current event name:
var sheet = spreadsheet.getSheetByName(eventName);
// Check if sheet with current event name exists. If it doesn't it creates it:
if (!sheet) {
sheet = spreadsheet.insertSheet(eventName);
sheet.appendRow(headers);
}
// Appends current row of data to the new sheet:
sheet.appendRow(row);
}
}
我只需要帮助更改 sheet.appendRow(row); 行以仅提取唯一值。
【问题讨论】:
-
我不确定,但这个插件可以帮助gsuite.google.com/u/0/marketplace/app/flow/909859924833
标签: google-apps-script google-sheets