繁体   English   中英

使用 QUERY、IMPORTRANGE 和 TRANSPOSE 从不同的谷歌表格中提取数据?

[英]Extract data from different google sheets using QUERY, IMPORTRANGE and TRANSPOSE?

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

大家好,

我有 3 个测试文件,如上面的屏幕截图所示。 我想将这 3 个文件中的数据导入到主 Google 工作表中。 这是我正在使用的公式:

=TRANSPOSE(QUERY(TRANSPOSE({IMPORTRANGE(NameList,B3:"Sheet1;B26,L29"):IMPORTRANGE(NameList;B4,"Sheet1:B26,L29");IMPORTRANGE(NameList!B5,"Sheet1!B26:L29")}),"where Col1 is not null"))

这个公式的结果 output 是: 在此处输入图像描述

当所有数据都填写在 3 个源文件中时,它工作得非常好。 但是,如果第一个文件 ( testing ) 为空,则 output 将在主 Google 工作表的单元格B5中为#N/A 我可以知道如何避免这种情况,即当第一个文件充满数据时数据才出来? 如果公式为空,我希望公式能够跳过第一个文件并继续处理第二个和第二个文件。

任何建议将不胜感激!

当您的范围为空时,您会收到单个单元格的错误消息。 只有当所有表的列数相等时,才能堆叠表 {table;table;table;}。 如果你有 11 列(从 B 到 L),你应该得到一行 11 个空单元格以防出错。 因此,每个 importrange 都应该用 iferror 或 ifna 返回空单元格的公式包装:

iferror(IMPORTRANGE(NameList!B3,"Sheet1!B26:L29");{""\""\""\""\""\""\""\""\""\""\""})

我已经建立了一个示例文件: 在此处输入图像描述

在这里,我尝试从同一个文件中导入范围。 在第一行中,我尝试引用不存在的工作表。 第二个参考是正确的。 Iferror 制作 2 个空单元格以防止出错。

文件在这里: https://docs.google.com/spreadsheets/d/14AnNAlV7mQmXo9vJ6YQugSm2-PS-RQPoND27wwv5f5k/edit#gid=0

编辑

我没有从你的问题中理解你想要什么。 对不起。 你说的不清楚。
这就是我在评论中要求阅读本文的内容。

现在我看到您可以将此公式与 2 QUERY一起使用

=QUERY(QUERY({IMPORTRANGE(NameList!B3,"Sheet1!B26:L29");
              IMPORTRANGE(NameList!B4,"Sheet1!B26:L29");
              IMPORTRANGE(NameList!B5,"Sheet1!B26:L29")},
                       "where 1=1"), 
          "where Col1 is not null")

它会为您提供您喜欢的结果。
不需要IFERROR
不需要{""\""\""\""\""\""\""\""\""\""\""}
我想象每个 importrange 有 10 个 importrange 和 20 个列Sheet1:B26:T29IFERROR
这个的10倍:

iferror(IMPORTRANGE(NameList!B3,"Sheet1!B26:L29");{""\""\""\""\""\""\""\""\""\""\""\""\""\""\""\""\""\""\""\""\""\""})

我go疯了


第一个答案
你也试试这个技巧

=TRANSPOSE(QUERY(TRANSPOSE({IMPORTRANGE(NameList,B3:"Sheet1;B26,L29"):IMPORTRANGE(NameList;B4,"Sheet1:B26,L29");IMPORTRANGE(NameList!B5,"Sheet1!B26:L29")}),"where Col1 is not null or 1=1 "))

你看我加or 1=1
这将停止主 Google 工作表中单元格B5中的错误#N/A

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM