【问题标题】:Error in Excel FormulaExcel 公式中的错误
【发布时间】:2018-02-14 19:49:03
【问题描述】:

我不是 Excel 专家,它是公式。我可以实现基本公式来过滤 excelsheet 中的数据,但不能处理复杂的事情。

我正在开发基于 PHP 的现有 Web 应用程序,该应用程序使用 PHPExcel 生成 excel 表。

现在,我的任务是更改现有的 excel 报告,该报告的代码太复杂,无法生成 excel 表。但我已经这样做了,并试图创建 excel 报告。生成excel报告时,系统给我以下错误:

Exception in Cell.php line 293:
November 2017 Report!G2 -> Formula Error: An unexpected error occured  

通过此错误后,我发现单元格 G2 中的公式导致错误。公式如下:

=INDEX('Research Methods'!1:1048576,MATCH(B2,'Research Methods'!K:K,0),MATCH("CW",'Research Methods'!A3:BZ3,0))  

正如我已经说过的,我无法得到这个公式的确切工作原理。以及上面的公式在做什么。在不知道上述公式的工作原理的情况下,我无法纠正错误。

请问有这方面的专家,请告诉我上述公式中的错误是什么?

提前致谢。

【问题讨论】:

  • 假设你的两个 MATCH 语句实际返回数字,试试=INDEX('Research Methods'!A:BZ, ...
  • 感谢您的回复。这给了我错误,无效的单元格坐标 A。
  • 公式看起来不错,因此可能是导致错误的数据。 Report 表上单元格 B2 中的值是否出现在 Research Methods 表上 K 列的任何位置,字母 CW 是否出现在 B 列和 BZ 列之间的第 3 行 (A3:BZ3)?如果缺少其中任何一个值,公式将返回 N/A# 错误。
  • 如果错误不是#N/A 或两个值都存在,则公式可能引用了包含错误的单元格。返回的值应位于CW 出现的列与K 列中的值出现的行之间的交界处。
  • PHPExcel 不支持公式中的列 (K:K) 或行范围 (1:1048576)....您需要指定单元格范围 (K1:K1048576A1:A1048576)跨度>

标签: excel excel-formula phpexcel


【解决方案1】:

您的问题似乎出在 INDEX 函数的第一个参数中。您的单元格范围未正确定义。

=INDEX('Research Methods'!1:1048576,...

这指定了适用的行,但不指定要查看的列。如果您的数据在 A 列中,那么只需按以下方式更正您的公式即可解决您的问题:

=INDEX('Research Methods'!A1:A1048576,...

还请记住,如果您希望在向下拖动公式时单元格范围保持不变,则应包括美元符号,如下所示:

=INDEX('Research Methods'!$A$1:$A$1048576,...

【讨论】:

  • 应该添加它在 Excel 中正确定义 - 公式本身将起作用并引用工作表上的所有单元格。从@MarkBaker 的评论来看,PHPExcel 似乎没有正确定义。 INDEX 正在查看不同的行和列,因此我希望正确的引用应该是 'Research Methods'!A1:XFD1048576(我从未使用过 PHPExcel,所以不确定)。
猜你喜欢
  • 1970-01-01
  • 2012-04-11
  • 2016-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-03
  • 2017-12-17
相关资源
最近更新 更多