工作表从多个工作表导入范围匹配数据
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)
有人知道我错过了什么吗?
谢谢
您需要单独导入每个 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):
我在一个中有多个抽头 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)
有人知道我错过了什么吗? 谢谢
您需要单独导入每个 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)