2

问题:如何使用包含VLOOKUP公式的IMPORTRANGE链接各种Google电子表格,而不返回#N/A?

当使用IMPORTRANGE从不同的电子表格中提取数据时,包含含有VLOOKUP一个方程式中的细胞来源的电子表格经常(但不总是)返回#N/A(ERROR:没有找到值' xxx“在VLOOKUP评估中)。在原始工作表中,公式计算正确并显示一个值。这并不总是会发生,有时它确实拉入适当的价值。

的意图:

为了从不同的电子表格的数据,在不同的电子表格将它们结合起来,做对他们的一些计算。然后将此计算电子表格(或多个计算电子表格)中的信息提取到报表电子表格中,以供进一步计算和格式化。

的设置:

有几个源数据电子表格,说dataspreadsheet1,dataspreadsheet2和dataspreadsheet3。计算电子表格(calcspreadsheet)被创建,在每个数据电子表格中创建sheet1的副本,并分别命名这些工作表datasheet1,datasheet2和datasheet3。用于此的IMPORTRANGE语句创建如下:importrange(+ VLOOKUP(“dataspreadsheet1”,filelist!A1:C1000,3,FALSE),“sheet1!a1:Z1000”)其中 filelist!A1:C1000是在相应列中包含名称,类型和标识的电子表格。

然后将这些工作表数据表1-3中的值用于计算表格中另一个表Calcsheet1中的计算。主要目标是从3个数据表添加每日数据,但这些数据表并不都具有同一行上的相同数据,因此再次使用VLOOKUP来确保日期的添加使用该日期的行datasheet1-3无论其行号。例如。 VLOOKUP($ A11,'datasheet1'!$ A:$ P,4)+ VLOOKUP($ A11,'datasheet2'!$ A:$ P,4)+ VLOOKUP($ A11,'datasheet3'!$ A:$ P ,4)其中列A是所有表中的日期列。

这似乎工作正常,虽然打开calccalreadsheet它可能需要很长时间才能通过更新,在此期间显示大量#N/A。最终它来对了。

问题出现在创建reportspreadsheet时,它反过来使用IMPORTRANGE调用从calcsheet1中获取信息以便能够使用它。这通常但并非总是在一开始就导致问题状态。在这个报告电子表格中的IMPORTRANGE调用的生成方式与电子表格中的IMPORTRANGE调用类似:= importrange(+ VLOOKUP(calc!B1,sheetcodes!A1:C3000,3,FALSE),“sheet1!a1:Z1000”)calc! B1包含源电子表格的名称(在这个计算中将是'calcspreadsheet'和sheetcodes!A1:C3000再次包含名称,类型和ID在相应列中的工作表列表

解决方法我尝试过:

我注意到IMPORTRANGE在不包含VLOOKUP的单元格上效果更好所以我尝试将calcsheet的内容复制到calcspreadsheet中的另一个表格,称为出口表格但只有那里的值而不是公式,然后使用IMPORTRANGE在此出口页上。使用的复制脚本如下:

function exportPrep() { 
    // Get the active spreadsheet and the active sheet 
    //var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    //var sheet = ss.getSheetByName("stream"); 
    //sheet.activate(); 

    var source = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("calcsheet"); 
    var sourceDataRange = source.getDataRange(); 
    var sourceSheetValues = sourceDataRange.getValues(); 
    var sourceRows = sourceDataRange.getNumRows(); 
    var sourceColumns = sourceDataRange.getNumColumns(); 

    var destination = SpreadsheetApp.getActiveSpreadsheet(); 
    SpreadsheetApp.setActiveSheet(destination.setActiveSheet("exportsheet")); 
    destination.getDataRange().offset(0, 0, sourceRows, sourceColumns).setValues(sourceSheetValues); 
     } 

这似乎工作,但遗憾的是用来复制calcsheet到exportsheet的值复制脚本现在表现出同样的行为,它有时会工作,有时给#N/A等给我留下了同样的问题。

我的问题:

我读过的各个岗位有类似的问题,并且提到了这个功能的响应是气质还是有一个bug。其他人表示在IMPORTRANGE中不可能使用动态引用。鉴于它有时有效,有时候我不认为该功能本身可能是正确的,但是在设置中存在同步或超时问题。

How can I set up the above functionality. Either with the use of IMPORTRANGE and VLOOKUP at all with some changes/additions, or built in a different way from the get-go. 
+0

您是使用旧式还是新式谷歌表单? ...你也可以确认它是vlookup/importrange是#N/A的原因,而不是自定义函数,因为每次看到这个,原因都是自定义函数。 – eddyparkinson 2014-09-29 21:38:19

回答

0

所以我没有这样做的导入范围,但我当我有这个问题与Vlookup我把vlookup包装在IF和测试#N/A。
尝试类似于:= IF(ISNA(VLOOKUP(...)),“”,VLOOKUP(...))

相关问题