【问题标题】:Google spreadsheet - #N/A error when imported range has a custom functionGoogle 电子表格 - 导入的范围具有自定义功能时出现 #N/A 错误
【发布时间】:2014-08-28 09:50:53
【问题描述】:

在我的 Google 电子表格(最新版本,截至 2014 年 8 月)中,我使用的是 =IMPORTRANGE(P5,"Tasks!b6:o7"),其中 P5 单元格包含另一个电子表格的密钥。另一个电子表格中的一个单元格包含我的自定义函数,有时需要时间来计算(有几十个单元格使用该函数)。问题是在第一个春天。该单元格的值未正确显示,而是显示#N/A 错误消息。

函数定义如下:

//  global variable
var ONEDAY = 24*60*60*1000; // hours*minutes*seconds*milliseconds

function _mySimpleCalculateDaysDifference(DateToBeChecked)
{
  var todaysDate = new Date();
  var todaysDayModifier = todaysDate.getHours()<6?-1:0;
  var daysDiff = (todaysDate.getTime() - DateToBeChecked.getTime())/ONEDAY;
  return Math.floor(daysDiff) + todaysDayModifier;
}

它的调用方式如下:

=if((H18>0),(H18-F18),if((F18>0),_mySimpleCalculateDaysDifference(F18),""))

其中FH 列包含日期值。

有什么办法可以解决这个问题吗?

编辑:
我提到主电子表格是最新的 Google 电子表格,但那些被拉进来的都是“旧的”。

【问题讨论】:

  • 看起来像这个问题:code.google.com/p/google-apps-script-issues/issues/… - 这个问题大约有 2.5 年的历史了。
  • 就我而言,自定义函数在原始电子表格中运行良好。当它被部分导入另一个电子表格(使用IMPORTRANGE)时,就会出现问题。我最近将“导入”电子表格迁移到新的谷歌电子表格中。之前还好。
  • 我刚刚检查过,目前看起来还不错,所以这有点“喜怒无常”,可能取决于 Google 的可用处理能力资源(欧洲是星期一早上)?
  • 是的,问题是喜怒无常。我认为值在缓存中排序大约 10 分钟,在关闭电子表格后大约 10 分钟,值看起来会被删除,你又开始得到 N/A。有时他们会在一秒钟内完成计算,有时可能需要几分钟,有时会重新计算失败。
  • 这很有趣——我还有另一组这样的电子表格,它们都是“新”电子表格,而那些有问题的是“旧”电子表格。他们工作正常。我会检查它是否有助于使用较新的版本。

标签: google-apps-script google-sheets google-spreadsheet-api


【解决方案1】:

此答案与导入电子表格是“新”电子表格并导入“旧”电子表格(截至 2014 年 9 月)的情况有关:

确保两个电子表格的版本相同,即old&lt;-oldnew&lt;-new(尽管正如@eddieparkinson 评论的那样,在他的案例中,old&lt;-old 的情况也存在类似问题)。

在我的情况下,将导入的电子表格转换为新的帮助,我现在无法观察到问题。

PS
可能最简单的转换方法是将其保存为 Excel 文件,然后将其导入 Google Drive 并转换为 Google 电子表格。我发现这是最简单、最可靠的方法,尽管我丢失了图表和脚本。验证也有问题,所以我不得不重新创建它们。如果您不使用其中任何一种 - 应该没问题。

【讨论】:

  • 那么,问题只存在于旧床单上?如果您只使用新工作表,那么问题就不再存在了吗?
  • @eddyparkinson 看起来像。我必须说,一开始,就在更换之后,我经历过一次将#N/A 消息替换为“正在加载...”的行为。但这只是一次,从那以后一切看起来都很好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-17
  • 1970-01-01
  • 1970-01-01
  • 2015-03-13
  • 2020-04-17
相关资源
最近更新 更多