簡體   English   中英

在 Google 表格中使用條件格式根據日期更改單元格值(文本)?

[英]Change cell value (text) based on date with conditinal formatting in Google Sheets?

我有問題。 我們正在為我們的一個內部產品制作一個規划工具。 在此工具中,我們可以手動(下拉菜單)(E 列)切換項目(在本例中為包裹)的狀態。 根據狀態,它最終出現在員工計划概覽選項卡之一中。 但是,每個包裹都有一個離線日期(G 列)。 此日期是包將自動脫機的時刻。 根據離線日期,我想將單元格狀態自動切換為“離線”。 問題是這個單元格也可以手動更改(對於其他狀態)。

我在想,可能有條件格式的技巧也可以更改單元格內的值/文本。 當當前日期是“離線日期”或晚於離線日期時,條件格式會將單元格的狀態更改為:“離線”。

有沒有人有這個技巧? 先感謝您!

鏈接到示例表: Stackoverflow 示例日期更改單元格表

如果 G 列中伴隨的離線日期等於函數運行的日期,則此函數確實將 E 列中的狀態更改為“離線”。

腳本:

function changeStatusToOffline() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName('Sheet1');
  var lastRow = sheet.getLastRow();

  // column E for status
  var statusRange = sheet.getRange(2, 5, lastRow - 1, 1);
  var statusValues = statusRange.getValues();
  // column G for offline dates
  var offlineDateRange = sheet.getRange(2, 7, lastRow - 1, 1);
  var offlineDateValues = offlineDateRange.getValues();

  // set time properties of today to 0 to compare date values only
  // do the same with the individual offline dates later
  var todayDate = new Date();
  todayDate.setHours(0,0,0,0);
  var todayTime = todayDate.getTime();

  // generate status output during iteration of date values
  var statusOutput = offlineDateValues.map((offlineDateValue, index) => {
    // the same with today's date
    var offlineDate = new Date(offlineDateValue);
    offlineDate.setHours(0,0,0,0)
    var offlineTime = offlineDate.getTime();

    // if trigger date value is same as offline date value, change status to offline
    if (todayTime == offlineTime) 
      return ['Offline'];
    // use existing value if date are not the same
    return statusValues[index];
  });

  // set the status range by bulk 
  statusRange.setValues(statusOutput);
}

筆記:

  • 通過手動運行來測試腳本
  • 如果它成功滿足您的需求,則繼續設置每日觸發器並在特定時間每天觸發上述功能。 (例如每天上午 12 點)
  • 如果觸發日期等於離線日期,這只會更新狀態。 (這使得觸發器將狀態更改為離線一次)
  • 只有當您將離線日期更改為以后的日期時,才可以在腳本再次在該日期運行時自動更新狀態。

前:

前

后:

后

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM