为什么我不能添加 sumproduct 公式?
Why can't I add sumproduct formula?
我尝试添加一个名为 FTE 的列,其中包含以下公式:
=I2/SUMPRODUCT(I:I,(M:M=M2) * (C:C=C2) * (N:N=N2))
这个公式在 Excel 中应用时有效,但是当从 php 添加时,我只是得到一个错误:
maximum execution time calculation.php phpexcel
$assembly = $arrayWorksheet->addColValByRow($assembly, 'FTE', ['= I', '/SUMPRODUCT(I:I,(M:M=M', ')*(C:C=C', ')*(N:N=N'], '))');
// Output : =I2/SUMPRODUCT(I:I,(M:M=M2)*(C:C=C2)*(N:N=N2))
可悲的是我不知道为什么。我的初始公式是 SUMIFS
,我将其转换为 SUMPRODUCT
,因为我知道 SUMIFS
尚未实现。
function addColValByRow($worksheet, $title, $valArray, $finalVal = NULL) {
// Take the last column
$lastCol = key( array_slice( $worksheet[1], -1, 1, TRUE ) );
$newCol = ++$lastCol;
// tke the last cell
$lastCell = key( array_slice( $worksheet, -1, 1, TRUE ) );
$worksheet[1][$newCol] = $title;
for ($i = 2; $i <= $lastCell; $i++) {
$worksheet[$i][$newCol] = "";
foreach (array_keys($valArray) as $key) {
$worksheet[$i][$newCol] .= $valArray[$key] . $i;
}
if ($finalVal != NULL) {
$worksheet[$i][$newCol] .= $finalVal;
}
}
return $worksheet;
}
导致问题的不是 SUMPRODUCT()
,而是 PHPExcel 不完全支持 column/row 范围,因此它是像 I:I
或 [=12= 这样的列范围] 或 C:C
导致问题。
如果您可以将其更改为实际的单元格范围(例如 I1:I2048
),那么这应该不是问题。
并且(供将来参考)SUMIFS()
在 github
的 develop
分支中的最新代码中实现
我尝试添加一个名为 FTE 的列,其中包含以下公式:
=I2/SUMPRODUCT(I:I,(M:M=M2) * (C:C=C2) * (N:N=N2))
这个公式在 Excel 中应用时有效,但是当从 php 添加时,我只是得到一个错误:
maximum execution time calculation.php phpexcel
$assembly = $arrayWorksheet->addColValByRow($assembly, 'FTE', ['= I', '/SUMPRODUCT(I:I,(M:M=M', ')*(C:C=C', ')*(N:N=N'], '))');
// Output : =I2/SUMPRODUCT(I:I,(M:M=M2)*(C:C=C2)*(N:N=N2))
可悲的是我不知道为什么。我的初始公式是 SUMIFS
,我将其转换为 SUMPRODUCT
,因为我知道 SUMIFS
尚未实现。
function addColValByRow($worksheet, $title, $valArray, $finalVal = NULL) {
// Take the last column
$lastCol = key( array_slice( $worksheet[1], -1, 1, TRUE ) );
$newCol = ++$lastCol;
// tke the last cell
$lastCell = key( array_slice( $worksheet, -1, 1, TRUE ) );
$worksheet[1][$newCol] = $title;
for ($i = 2; $i <= $lastCell; $i++) {
$worksheet[$i][$newCol] = "";
foreach (array_keys($valArray) as $key) {
$worksheet[$i][$newCol] .= $valArray[$key] . $i;
}
if ($finalVal != NULL) {
$worksheet[$i][$newCol] .= $finalVal;
}
}
return $worksheet;
}
导致问题的不是 SUMPRODUCT()
,而是 PHPExcel 不完全支持 column/row 范围,因此它是像 I:I
或 [=12= 这样的列范围] 或 C:C
导致问题。
如果您可以将其更改为实际的单元格范围(例如 I1:I2048
),那么这应该不是问题。
并且(供将来参考)SUMIFS()
在 github
develop
分支中的最新代码中实现