【问题标题】:Verifying value in the range from another range. If success, copy data to another sheet从另一个范围验证范围内的值。如果成功,将数据复制到另一个工作表
【发布时间】:2017-10-26 07:24:30
【问题描述】:

我想请你帮忙。

我正在尝试制作一个自动放置数据的电子表格,因此我需要一个验证步骤,以检查该值是否与该范围内的值匹配。

这是一个例子

我需要检查 COLUMN A 中的值是否与范围 COLUMN H 中的值匹配。如果匹配,则将 OK 输入 COLUMN F,如果不输入 ERR。

下一步是将验证成功的数据复制到另一个工作表

如果验证了该值,则应用程序应将此行中的数据复制到特定工作表。

例如:值 AAA 将被正确验证,因此应将其第 2 行和第 6 行(Period、Data1、Data2、Data3)复制到 AAA 表的特定位置(Period)。

Sheet1 中的第 2 行 -> AAA 表中的第 11 行

Sheet1 中的第 6 行 -> AAA 表中的第 12 行

这是电子表格Spreadsheet link的链接

我希望这对一个问题来说并不过分,一切都很清楚。

非常感谢您的帮助。

【问题讨论】:

    标签: google-apps-script google-sheets


    【解决方案1】:

    试试下面的代码...

    function validate() {
        var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
        var data = ss.getRange(2, 1, ss.getLastRow() - 1,5).getValues();
    
        var valsToCheck = ss.getRange(2, 8, ss.getLastRow() - 1).getValues();
        valsToCheck = [].concat.apply([], valsToCheck).filter(String);
    
        var opt = [];var dataToCopied = [];
    
        for (var i = 0; i < data.length; i++) {
            if (valsToCheck.indexOf(data[i][0]) != -1) {
                opt.push(["OK"]);
                dataToCopied.push(data[i])
            } else {
                opt.push(["ERR"]);
            }
        }
        ss.getRange(2, 6, opt.length, 1).setValues(opt);
        var month = ["JANUARY","FEBRUARY","MARCH","APRIL","MAY","JUNE","JULY","AUGUST","SEPTEMBER","OCTOBER","NOVEMBER","DECEMBER"];
    
        for(var k=0;k<dataToCopied.length;k++){
          var rowNo = month.indexOf(dataToCopied[k][1].toString().toUpperCase());
          SpreadsheetApp.getActiveSpreadsheet().getSheetByName(dataToCopied[k][0]).getRange(rowNo+3,2,1,3).setValues([[dataToCopied[k][2],dataToCopied[k][3],dataToCopied[k][4]]])
        }
    }
    

    【讨论】:

    • 哇,真的很管用。非常感谢你,你就像一个巫师。
    猜你喜欢
    • 1970-01-01
    • 2020-04-09
    • 1970-01-01
    • 1970-01-01
    • 2022-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-29
    相关资源
    最近更新 更多