我正在為作業創建一個失物招領日志,我有一個下拉串列,其中包含“收集”、“發送給客人”、“捐贈”等選項。
如果尚未選擇某個選項,我想讓作業表在某個日期(可能在 1 個月后)后自動選擇“捐贈”。
EG 如果有人在 11 月 2 日輸入了一副找到的手套,則空的下拉選單將在 12 月 2 日自動更改為“捐贈”,除非有人已經選擇了另一個選項(例如“收藏”)。

uj5u.com熱心網友回復:
您可以通過使用Apps Script檢查條件并進行相應更改或直接實作Sheets 功能來完成此操作。
表格功能
您可以通過將此公式放在每個狀態單元格上來實作所需的結果:
=IF(TODAY()-D4>30,"Donated","")TODAY()它將按預期作業,直到日期和單元格中提供的日期之間有 30 天,單元格才會顯示任何內容D4。如果有,單元格將顯示Donated。如果選擇了下拉串列中的另一個選項,則會洗掉公式,并且只會顯示新值。然而,這種方法更像是一種快速破解,而不是一個真正強大的解決方案,因為有幾件事可能會出錯。例如,如果意外選擇了下拉串列中的選項,然后再次將其留空,則該方法將不再適用于該行,因為公式將被永久洗掉。您可以在此處閱讀有關如何
TODAY()作業的資訊。
Apps 腳本(推薦)
以下腳本將檢查作業表中的每一行,狀態單元格是否為空白,并且減去DATE FOUND是否超過 30 天(不幸的是,必須以毫秒為單位完成)。
function myFunction() {
var spreadSheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadSheet.getSheetByName("Sheet1");
sheet.getLastRow()
var range = sheet.getRange(4,1,sheet.getLastRow(), 7);
//SELECT A RANGE WITH THE 7TH FIRST COLUMNS AND AS MANY ROWS AS NECESSARY
//(WE ARE INTERESTED IN DATA STARTING FROM ROW 4TH)
var values = range.getValues();
var millisecondsIn30Days = 30 * 24 * 60 * 60 * 1000;
for(var row = 0; row<values.length; row ){
var status = values[row][6]; //STATUS IS THE 6TH ELEMENT IN THE ROW ARRAY (COLUMN G)
if(status == "" && (new Date() - values[row][3]) > millisecondsIn30Days){
//MORE THAN 30 DAYS AFTER FOUND
sheet.getRange(row 4,7).setValue("DONATED");
}
}
}
當然,該腳本可以手動運行,也可以使用可安裝的觸發器自動運行該作業,例如每月運行一次。您可以在此處閱讀有關如何設定此類觸發器的更多資訊。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/410903.html
標籤:
上一篇:如果單元格與使用Apps腳本的不同作業表串列中的單元格匹配,則條件格式
下一篇:降價不是一個功能
