通过输入唯一 ID 将数据从其他电子表格获取到所需的单元格

Get data from other spreadsheet to the required cell by entering a unique ID

所以我在这里尝试自动化我的 google sheet。

  1. 我有一个 Google sheet,里面有 2 个 spreadsheets (i.Sheet, ii.Test_Form)
  2. 在“Sheet”上,我在 table 中有多个数据(订单日期、订单号、状态、产品、名称等)
  3. 我想转到“Test_Form”并将我的订单号放入一个单元格中,以便在指定的单元格中获取与该特定订单号相关的所有其他数据。

我不知道这是否可能。但我真的需要这个:( 感谢您的帮助。

根据 Harsh 对您 post 的评论,您需要单独 link 每个单元格。由于您的 sheet 上有很多内容实际上并未共享,因此我只能 post 这是一个示例代码,它实际上可以测试类似于您 post 的虚拟数据编辑以上。您只需修复单元格位置。

它有充足的文档,因此应该是可读的。

function onEdit(e) {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  // if cell being edited is B2 of test_form sheet
  if(e.range.getColumn() == 2 && e.range.getRow() == 1 && spreadsheet.getActiveSheet().getName() == "test_form") {
    // sheet containing data
    var dataSheet = spreadsheet.getSheetByName("Sheet1");
    // sheet form
    var formSheet = spreadsheet.getSheetByName("test_form");

    // last row of dataSheet
    var lastRow = dataSheet.getLastRow();
    // get data from A2:E, adjust to what your data needs
    var sheetData = dataSheet.getRange("A2:E" + lastRow).getValues();

    sheetData.forEach(function (row) {
      // if B1 cell value after editing is found Sheet1 1st column
      if(formSheet.getRange("B1").getValue() == row[0]){
        // set value manually into test_form
        formSheet.getRange("B2").setValue(row[1]); // copy 2nd column of matched row to B2
        formSheet.getRange("B3").setValue(row[2]); // 3rd column to B3
        formSheet.getRange("D1").setValue(row[3]); // 4th column to D1
        formSheet.getRange("D2").setValue(row[4]); // 5th column to D2
        // exit from function after finding the value
        return;
      }
    });
    // if not found, erase all data except entered value in B1
    formSheet.getRange("B2").setValue("");
    formSheet.getRange("B3").setValue("");
    formSheet.getRange("D1").setValue("");
    formSheet.getRange("D2").setValue("");
  }
}

测试用例:

我还添加了一个机制,当找不到order number时,它也会删除其他单元格的过去值。