在谷歌表格中
我正在寻找下面的数据库表到基于不同颜色的摘要表,sku 名称将根据不同的日期进行更新。 例如,今天如果 3 个名称为绿色,则所有名称都应在摘要表名称绿色中更新,并根据不同日期更新数量。 如果颜色为红色,则摘要表名称中的所有名称均应更新为红色。请分享google公式或者APP脚本也可以。Colour sku googlesheet
使用 Google Apps 脚本作为摘要颜色,并根据单元格背景颜色(绿色和红色)提取数据并将它们附加到相应的摘要表中,我还添加了一个时间驱动的触发器,以允许您安排脚本自动运行每天的指定时间。
function myFunction() {
const base = "Base data";
const green = "Summary_Green";
const red = "Summary_Red";
const greenColor = "#00ff00";
const redColor = "#ff0000";
const ss = SpreadsheetApp.getActiveSpreadsheet();
const baseSheet = ss.getSheetByName(base);
const greenSheet = ss.getSheetByName(green);
const redSheet = ss.getSheetByName(red);
greenSheet.clearContents();
redSheet.clearContents();
const dataRange = baseSheet.getDataRange();
const values = dataRange.getValues();
const backgrounds = dataRange.getBackgrounds();
greenSheet.appendRow(["Date", "SKU Name", "Quantity"]);
redSheet.appendRow(["Date", "SKU Name", "Quantity"]);
for (let i = 1; i < values.length; i++) {
for (let j = 3; j < values[0].length; j++) {
const cellValue = values[i][j];
const cellColor = backgrounds[i][j];
if (cellColor === greenColor) {
greenSheet.appendRow([values[0][j], values[i][2], cellValue]);
} else if (cellColor === redColor) {
redSheet.appendRow([values[0][j], values[i][2], cellValue]);
}
}
}
}
function createDailyTrigger() {
const triggers = ScriptApp.getProjectTriggers();
// Delete existing time-based triggers to avoid duplicates
for (let i = 0; i < triggers.length; i++) {
if (triggers[i].getHandlerFunction() === "myFunction") {
ScriptApp.deleteTrigger(triggers[i]);
}
}
// This is for a new daily trigger
ScriptApp.newTrigger("myFuction")
.timeBased()
.everyDays(1)
.atHour() // Set to run daily Example 9 AM should be (9)
.create();
}
基础数据
摘要_绿色
摘要_红色