繁体   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