【发布时间】:2016-04-14 08:11:57
【问题描述】:
我有一个带有简单测试公式 =SUMIF(D8:D18,2,E8:E18) 的单元格 C13。 D8->D18 包含 2 个 2,并且 D8:D18 的值是硬编码的,而不是从另一个公式中检索的。 E8->E18 的范围都是 1。在 excel 中,正确的值为 2。但是当我使用以下简单代码调用 PHPExcel 时。
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
PHPExcel_Calculation::getInstance($objPHPExcel)->clearCalculationCache();
$objReader = $objPHPExcel->setActiveSheetIndexByName("TestSumIf");
$value = $objPHPExcel->getActiveSheet()->getCell('C13')->getCalculatedValue();
我得到 $value = 0。
公式值为=SUMIF(D8:D18,2,E8:E18)
预期值为 0
解析器堆栈:- Array ( [0] => Array ( [type] => Cell Reference [value] => D8 [reference] => D8 ) [1] => Array ( [type] => Cell Reference [value] => D18 [参考] => D18 ) [2] => 数组 ( [类型] => 二元运算符 [值] => : [参考] => ) [3] => 数组 ( [类型] => 值 [值] => 2 [reference] => ) [4] => Array ( [type] => Cell Reference [value] => E8 [reference] => E8 ) [5] => Array ( [type] => Cell Reference [value ] => E18 [reference] => E18 ) [6] => Array ( [type] => Binary Operator [value] => : [reference] => ) [7] => Array ( [type] => Operand函数 SUMIF() [value] => 3 [reference] => ) [8] => Array ( [type] => Function [value] => SUMIF( [reference] => ) ) 的计数
计算值为0
评估日志:
任何人都知道为什么会发生这种情况。我看过文档说 SUMIF 应该没有错误,但只有 SUMIFS 可以重写为 SUMPRODUCT,但在我的情况下是 SUMIF 导致错误。
【问题讨论】: