将 Google 表格中的列转换为具有特定日期颜色的行

问题描述 投票:0回答:1

在谷歌表格中

我正在寻找下面的数据库表到基于不同颜色的摘要表,sku 名称将根据不同的日期进行更新。 例如,今天如果 3 个名称为绿色,则所有名称都应在摘要表名称绿色中更新,并根据不同日期更新数量。 如果颜色为红色,则摘要表名称中的所有名称均应更新为红色。请分享google公式或者APP脚本也可以。Colour sku googlesheet

google-sheets google-apps-script
1个回答
0
投票

更新摘要颜色

使用 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();
}

结果示例

基础数据

Sample1

摘要_绿色

Sample2

摘要_红色

Sample3

参考文献

© www.soinside.com 2019 - 2024. All rights reserved.