![](/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.