Google sheets 使用IMPORTRANGE将多个电子表格合并到一个电子表格中
我想将多个电子表格的数据聚合到一个电子表格中Google sheets 使用IMPORTRANGE将多个电子表格合并到一个电子表格中,google-sheets,google-sheets-formula,array-formulas,importrange,Google Sheets,Google Sheets Formula,Array Formulas,Importrange,我想将多个电子表格的数据聚合到一个电子表格中 电子表格1有一行字符串A2:A500 电子表格2有一行字符串A2:A500 电子表格3应同时包含一行(电子表格1!A2:A500和电子表格2!A2:A500) 不得以不同方式处理副本。我希望他们经常出现在不同的表单中 是否可以在不编写脚本或使用jQuery的情况下(例如通过使用IMPORTRANGE)执行此操作 什么不起作用:我已尝试使用IMPORTRANGE,如下所示: ARRAY{IMPORTRANGE("key-of-spreadsheet
- 电子表格1有一行字符串A2:A500
- 电子表格2有一行字符串A2:A500
- 电子表格3应同时包含一行(电子表格1!A2:A500和电子表格2!A2:A500)李>
ARRAY{IMPORTRANGE("key-of-spreadsheet1","list!A2:A500"), IMPORTRANGE("key-of-spreadsheet2", "list!A2:A500")}
这会导致错误。您应该能够在电子表格3中使用垂直数组:
我也在应用上面给出的公式从多个电子表格中获取数据,这是一个错误,就像在数组中一个数组文本缺少一行或多行的值一样。当然,也可以将多个
IMPORTRANGE()
函数与QUERY()组合起来
函数,它使我们能够更好地控制导入的结果
例如,我们可以使用这样的结构:
=QUERY(
{
IMPORTRANGE("key-or-url-of-spreadsheet-1", "'sheet-name-1'!A2:Z100");
IMPORTRANGE("key-or-url-of-spreadsheet-2", "'sheet-name-2'!A2:Z100");
IMPORTRANGE("key-or-url-of-spreadsheet-3", "'sheet-name-3'!A2:Z100");
IMPORTRANGE("key-or-url-of-spreadsheet-4", "'sheet-name-4'!A2:Z100")
},
"SELECT * WHERE Col1 IS NOT NULL ORDER BY Col3 ASC"
)
SELECT * WHERE Col1 IS NOT NULL
ORDER BY Col3 ASC
=IMPORTRANGE("key-or-url-of-spreadsheet-1", "'sheet-name-1'!A2:Z100")
说明:
上述查询从导入的范围中删除空行:
=QUERY(
{
IMPORTRANGE("key-or-url-of-spreadsheet-1", "'sheet-name-1'!A2:Z100");
IMPORTRANGE("key-or-url-of-spreadsheet-2", "'sheet-name-2'!A2:Z100");
IMPORTRANGE("key-or-url-of-spreadsheet-3", "'sheet-name-3'!A2:Z100");
IMPORTRANGE("key-or-url-of-spreadsheet-4", "'sheet-name-4'!A2:Z100")
},
"SELECT * WHERE Col1 IS NOT NULL ORDER BY Col3 ASC"
)
SELECT * WHERE Col1 IS NOT NULL
ORDER BY Col3 ASC
=IMPORTRANGE("key-or-url-of-spreadsheet-1", "'sheet-name-1'!A2:Z100")
和对收集到的与第三列相关的所有数据进行升序排序:
=QUERY(
{
IMPORTRANGE("key-or-url-of-spreadsheet-1", "'sheet-name-1'!A2:Z100");
IMPORTRANGE("key-or-url-of-spreadsheet-2", "'sheet-name-2'!A2:Z100");
IMPORTRANGE("key-or-url-of-spreadsheet-3", "'sheet-name-3'!A2:Z100");
IMPORTRANGE("key-or-url-of-spreadsheet-4", "'sheet-name-4'!A2:Z100")
},
"SELECT * WHERE Col1 IS NOT NULL ORDER BY Col3 ASC"
)
SELECT * WHERE Col1 IS NOT NULL
ORDER BY Col3 ASC
=IMPORTRANGE("key-or-url-of-spreadsheet-1", "'sheet-name-1'!A2:Z100")
对于下降,只需使用DESC
代替ASC
当然,我们也可以安排任何其他条件,或省略它们不经修改地显示所有内容:
"SELECT * "
注:
为了使用上述构造的查询,我们首先需要为要引用的每个电子表格调用一个IMPORTIMAGE()
方法:
=QUERY(
{
IMPORTRANGE("key-or-url-of-spreadsheet-1", "'sheet-name-1'!A2:Z100");
IMPORTRANGE("key-or-url-of-spreadsheet-2", "'sheet-name-2'!A2:Z100");
IMPORTRANGE("key-or-url-of-spreadsheet-3", "'sheet-name-3'!A2:Z100");
IMPORTRANGE("key-or-url-of-spreadsheet-4", "'sheet-name-4'!A2:Z100")
},
"SELECT * WHERE Col1 IS NOT NULL ORDER BY Col3 ASC"
)
SELECT * WHERE Col1 IS NOT NULL
ORDER BY Col3 ASC
=IMPORTRANGE("key-or-url-of-spreadsheet-1", "'sheet-name-1'!A2:Z100")
我们必须这样做,即使我们引用了编写公式的同一个电子表格,但是对于每个电子表格,只需做一次就足够了
这是为了能够连接这些工作表并允许访问这些工作表(我们仍有访问权限):
授予所有电子表格的权限后,我们可以使用上述查询。轻松修复:将筛选器应用于整个列/表格,而不仅仅是当前选择。这将自动更新所有过滤器,以包括新添加的内容。我不确定是否理解此问题。我想基本上复制整个表!“A2:H1000”的参考资料@Chris Hick这也是我的第一个猜测。但它不是这样工作的。显然电子表格期望不同的范围…我有一个示例表,它将3个导入项合并成一个表,创建垂直数组的公式是在单元格A1中,还包括过滤器公式来删除空白行。你能把这个公式应用到你自己的床单上吗;在{}数组中,标记下一个数据集开始的位置,以便您可以按自己喜欢的顺序放置它们。但是,一旦导入工作正常,您就可以将整个{}数组作为其他公式的数据集,例如SORT({},1,1,2,0)或QUERY({},“order by Col1,Col2 desc”),这样您就可以更精确地按照“;”的方式进行排列。感谢您的提示,将其作为一个全新的数据集使用。这解决了我的问题!这对我不起作用。它只打印一个值如果你有问题,不要对一个已经死了三年的问题写答案。问一个新问题,用具体细节陈述你的案例,并参考这个问题。虽然这应该是另一个问题,但在使用实际答案时,这是一个你可能遇到的问题。原因是两个导入的范围的列数不同。您可能会尝试将第一个范围作为1:1导入以获取标题。问题是,如果第二个范围描述了A:Y,但图纸具有A:Z列,则它将与1:1导入不匹配,因为1:1导入将拉入A:Z。是否跟随我?我不确定我会……;)您能描述一下如何将过滤器应用于整个列/页吗?这应该是正确的答案。它工作得很好。