提问者:小点点

从不同的谷歌工作表中提取数据,使用查询、映像和转置?


大家好,

我有3个测试文件,如上面的截图所示。我想从这3个文件导入数据到一个主谷歌表。这是我使用的公式:

=转置(查询(转置({IMPORTRANGE(namelist!b3,“sheet1!b26:l29”);IMPORTRANGE(namelist!b4,“sheet1!b26:l29”);IMPORTRANGE(namelist!b5,“sheet1!b26:l29”)}),“其中Col1不为空”)

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

任何建议都将不胜感激!


共2个答案

匿名用户

当您的区域为空时,您得到的错误消息是单个单元格。堆叠表{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

匿名用户

你也试试这个把戏

=转置(查询(转置({IMPORTRANGE(namelist!b3,“sheet1!b26:l29”);IMPORTRANGE(namelist!b4,“sheet1!b26:l29”);IMPORTRANGE(namelist!b5,“sheet1!b26:l29”)}),“其中Col1不为空或1=1”)

您可以看到,我添加了或1=1
这将在主google工作表的单元格B5中停止错误#n/a