簡體   English   中英

對於符合條件的每一行,如何將日期值從列 C 復制到列 F?

[英]How can I Copy the date value from Column C to Column F for each row that matches criteria?

嘗試為將執行以下操作的表格創建 Google App 腳本:

C列中的日期復制到F
IFC列中的日期 <= C1
AND : E = "是"
對於工作表范圍A6:F的所有行

示例表,

/ 一種 C F
1個 如果之前收到標記: 12/15/2021
2個
3個
4個
5個 發票號碼 客戶編號 發票日期 工作量 支付服務 收到的日期
6個 1個 3個 12/10/2021 15.00 美元 是的
7 2個 1個 12/6/2021 15.00 美元 是的
8個 3個 21 12/14/2021 45.00 美元 是的
9 4個 20 12/14/2021 15.00 美元 是的
10 5個 13 12/15/2021 12.00 美元
11 6個 14 12/15/2021 10.00 美元
12 7 12 12/15/2021 12.00 美元
13 9 9 12/15/2021 30.00 美元
14 10 1個 12/15/2021 15.00 美元 是的
15 11 18 12/15/2021 12.00 美元
16 12 17 12/15/2021 25.00 美元
17 13 15 12/15/2021 12.00 美元 是的
18 14 16 12/15/2021 20.00 美元
19 15 19 12/15/2021 30.00 美元 是的
20 16 4個 12/16/2021 15.00 美元
21 17 5個 12/16/2021 7.00 美元 是的
22 18 6個 12/16/2021 5.00 美元 是的
23 19 7 12/16/2021 7.00 美元
24 20 8個 12/16/2021 6.00 美元 是的
25 21 10 12/20/2021 15.00 美元
26 22 23 12/20/2021 30.00 美元 是的
27 23 13 12/29/2021 12.00 美元 是的
28 24 12 12/29/2021 12.00 美元 是的
29 26 9 12/29/2021 30.00 美元 是的
30 27 15 12/29/2021 12.00 美元 是的
31 28 16 12/29/2021 20.00 美元
32 29 23 12/29/2021 30.00 美元
(這看起來很簡單,但還沒有完全弄清楚如何)

我試過這樣的東西,但我想我限制了我的范圍(希望工作表中的所有行都在范圍內)而且它也充滿了錯誤......

 function ReceivedDate() { var ss = SpreadsheetApp.getActive(); var sh = ss.getSheetByName('sheet1'); var vs = sh.getRange(6, 1, 500, 6).getValues() //getRange(row, column, numRows, numColumns) but this needs to be whole sheet from row 6 down var cutoffDate = new Date(sh.getRange('F2').getValue()); vs.forEach(row => { if (row[5].= 'Yes' && new Date(row[3]),valueOf() <= cutoffDate) vs(row. 6),setValue(row; 3); } }

我不知道您是否想要AppScript中的解決方案或只是一個解決方案。 但是對於您的上述要求,下面的簡單公式應該有效。

=IF(AND(DATEVALUE(C6) <= DATEVALUE($C$1), E6 = "Yes"),C6,"")

嘗試這個。

function ReceivedDate() {
   var ss = SpreadsheetApp.getActive();
   var sh = ss.getSheetByName('sheet1');
   var vs = sh.getRange(6, 1, 500, 6).getValues() //getRange(row, column, numRows, numColumns) but this needs to be whole sheet from row 6 down
   var cutoffDate = new Date(sh.getRange('C1').getValue());
   vs.forEach((row,index)=> {
      if (row[4] == 'Yes'  && new Date(row[2]) <= cutoffDate){
            sh.getRange(index+6,6).setValue(row[2]);
        }  
   })
}

暫無
暫無

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

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