工作表从多个工作表导入范围匹配数据

Sheets importrange matching data from multiple sheets

我在一个中有多个抽头 sheet A,每个抽头有 5000 多行,有些行具有相同的内容并且想找到特定的行,同时输入内容并将匹配的那些行复制到不同的行sheet B 并保留格式等 sheet A.

示例: 我需要制作一个 shipping/order 列表 我有 2 张 Sheet A 充满了信息(我的库存),在每个选项卡中乘以很多行的选项卡。在Sheet B(新URL)我要过滤信息。

比方说,我在 Sheet A 的 5 个选项卡中分布了 5000 篇文章,有人订购了 20 篇文章,所以我只想扫描 EAN 或该文章上的任何其他代码到 Sheet B ,以及包含该数据的所有行都将被导入。现在我有一个全新的列表,只有20篇文章,我可以分享给客户。

我试过脚本:

    function copyRowsWithCopyTo() {
  let spreadSheet = SpreadsheetApp.getActive();
  let sourceSheet = spreadSheet.getSheetByName('Sheet0');
  let sourceRange = sourceSheet.getDataRange();
  let targetSheet = spreadSheet.getSheetByName('Sheet1');
  sourceRange.copyTo(targetSheet.getRange(1, 1));
}

并且还尝试使用 Importrange 查询,但我似乎无法弄清楚用于在所有选项卡中搜索的键码,以及 lookup/match 我总是提供的新 text/code。

=QUERY(IMPORTRANGE("https://docs.google.com/spreadsheets/d/1hAeUokEf-1DQjRYn2iQXCSCwAoRW-C083z5QYXpzq-Y", "1:1000"), "B2 ",0)

SheetA //// SheetB

有人知道我错过了什么吗? 谢谢

您需要单独导入每个 sheet 的数据并将它们合并到一个数组中,然后将其放入查询中检查 Col2 值是否等于 B2.请参阅下面的示例:

编辑:

  • 既然要检查Col2和Col3的多个ID输入,那么看下面的修改:

公式:

=QUERY({
IMPORTRANGE("https://docs.google.com/spreadsheets/d/1hAeUokEf-1DQjRYn2iQXCSCwAoRW-C083z5QYXpzq-Y", "Data1!A:P");
IMPORTRANGE("https://docs.google.com/spreadsheets/d/1hAeUokEf-1DQjRYn2iQXCSCwAoRW-C083z5QYXpzq-Y", "Data2!A:P");
IMPORTRANGE("https://docs.google.com/spreadsheets/d/1hAeUokEf-1DQjRYn2iQXCSCwAoRW-C083z5QYXpzq-Y", "Data3!A:P")
}, "WHERE Col2 = '"&TEXTJOIN("' OR Col2 = '", TRUE, Q:Q)&"' OR Col3 like '"&TEXTJOIN("' OR Col3 like '", TRUE, Q:Q)&"'", 0)

输出(A4):