【问题标题】:Google sheets - Update date cells based on criteriaGoogle 表格 - 根据条件更新日期单元格
【发布时间】:2021-12-07 07:07:15
【问题描述】:

我需要每周更新一次工作表中的日期。

我想手动运行一个脚本来执行此操作。

“C”列中的每个日期将增加同一行“D”列中的天数。 只会更新特定单元格中日期之前的日期(例如 F2)。

以这张表为例:https://docs.google.com/spreadsheets/d/11f6G5_vNK5Z8UR2A_MUUXpL8awC2mJ8ozpnznWQ_anM/edit?usp=sharing

Column C - Service Date Column D - No. of days to advance
12/3/2021 7
12/3/2021 14
12/10/2021 7
12/10/2021 7
12/17/2021 28

任何帮助或指出正确的方向都会很棒!

【问题讨论】:

  • 我必须为我糟糕的英语水平道歉。不幸的是,我无法理解你的问题。当我看到您的示例电子表格时,单元格“C2”和“D2”分别是12/3/20217。并且,单元格“F2”是12/4/2021。所以我无法理解你的问题的逻辑。我可以问你目标的细节吗?
  • 感谢您的提问。我可能没有很好地解释。脚本的逻辑是:如果 C2 小于 F2,则将 C2 增加 D2 中的天数。希望对您有所帮助。
  • 感谢您的回复。在这种情况下,你想把值放在哪里?
  • 新值将替换/覆盖列 C 中的旧值
  • 感谢您的回复。在这种情况下,您想如何处理单元格“C3:C”?您想将“C3:C”的所有值与单元格“F2”进行比较?

标签: google-apps-script google-sheets


【解决方案1】:
function updateDates() {
  const ss = SpreadsheetApp.getActive();
  const sh = ss.getSheetByName('Sheet0');
  const vs = sh.getRange(2,1,sh.getLastRow() - 1, sh.getLastColumn()).getValues();
  const dt = new Date(sh.getRange('F2').getValue());
  const dthv = new Date(dt.getFullYear(),dt.getMonth(),dt.getDate()).valueOf();
  const oA = [];
  vs.forEach(r => {
    let d = new Date(r[2]);
    let dv = new Date(d.getFullYear(),d.getMonth(),d.getDate()).valueOf();
    if(dv < dthv) {
      oA.push([new Date(d.getFullYear(),d.getMonth(),d.getDate() + r[3])]);
    } else {
      oA.push([r[2]]);
    }
  });
  sh.getRange(2,3,oA.length,oA[0].length).setValues(oA);
}

工作表 0 之前:

COL1 COL2 COL3 COL4 COL5 COL6
11/10/2021 5 11/15/2021
11/11/2021 6
11/12/2021 7
11/13/2021 8
11/14/2021 9
11/15/2021 10
11/16/2021 11
11/17/2021 12
11/18/2021 13
11/19/2021 14
11/20/2021 15
11/21/2021 16
11/22/2021 17
11/23/2021 18
11/24/2021 19

Sheet0 之后:

COL1 COL2 COL3 COL4 COL5 COL6
11/15/2021 5 11/15/2021
11/17/2021 6
11/19/2021 7
11/21/2021 8
11/23/2021 9
11/15/2021 10
11/16/2021 11
11/17/2021 12
11/18/2021 13
11/19/2021 14
11/20/2021 15
11/21/2021 16
11/22/2021 17
11/23/2021 18
11/24/2021 19

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多