![](/img/trans.png)
[英]How do I log the the sum of values from multiple rows to a new row if the value in the column next to it matches
[英]How can I Copy the date value from Column C to Column F for each row that matches criteria?
嘗試為將執行以下操作的表格創建 Google App 腳本:
將C列中的日期復制到F列
IF : C列中的日期 <= 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.