Fixed Functions->ifCondition for allowing <> and empty condition
In cells with formulas containing conditions like `=IFSUM(A1:A3;"";B1:B3)` to sum cells from range A1:A3 with empty value in range B1:B3, the function `Functions::ifCondition()` create in this case the code `=""""` instead of `=""`, so it didn't work. Closes #1206
This commit is contained in:
parent
b20f5c1d11
commit
156ab360fe
|
@ -25,6 +25,7 @@ and this project adheres to [Semantic Versioning](https://semver.org).
|
||||||
- Keep big integer as integer instead of lossely casting to float [#874](https://github.com/PHPOffice/PhpSpreadsheet/pull/874)
|
- Keep big integer as integer instead of lossely casting to float [#874](https://github.com/PHPOffice/PhpSpreadsheet/pull/874)
|
||||||
- Fix branch pruning handling of non boolean conditions [#1167](https://github.com/PHPOffice/PhpSpreadsheet/pull/1167)
|
- Fix branch pruning handling of non boolean conditions [#1167](https://github.com/PHPOffice/PhpSpreadsheet/pull/1167)
|
||||||
- Fix ODS Reader when no DC namespace are defined [#1182](https://github.com/PHPOffice/PhpSpreadsheet/pull/1182)
|
- Fix ODS Reader when no DC namespace are defined [#1182](https://github.com/PHPOffice/PhpSpreadsheet/pull/1182)
|
||||||
|
- Fixed Functions->ifCondition for allowing <> and empty condition [#1206](https://github.com/PHPOffice/PhpSpreadsheet/pull/1206)
|
||||||
|
|
||||||
## [1.9.0] - 2019-08-17
|
## [1.9.0] - 2019-08-17
|
||||||
|
|
||||||
|
|
|
@ -278,7 +278,7 @@ class Functions
|
||||||
$condition = Calculation::wrapResult(strtoupper($condition));
|
$condition = Calculation::wrapResult(strtoupper($condition));
|
||||||
}
|
}
|
||||||
|
|
||||||
return '=' . $condition;
|
return str_replace('""""', '""', '=' . $condition);
|
||||||
}
|
}
|
||||||
preg_match('/(=|<[>=]?|>=?)(.*)/', $condition, $matches);
|
preg_match('/(=|<[>=]?|>=?)(.*)/', $condition, $matches);
|
||||||
[, $operator, $operand] = $matches;
|
[, $operator, $operand] = $matches;
|
||||||
|
@ -290,7 +290,7 @@ class Functions
|
||||||
$operand = Calculation::wrapResult(strtoupper($operand));
|
$operand = Calculation::wrapResult(strtoupper($operand));
|
||||||
}
|
}
|
||||||
|
|
||||||
return $operator . $operand;
|
return str_replace('""""', '""', $operator . $operand);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -33,4 +33,12 @@ return [
|
||||||
'<>"< PLEASE SELECT >"',
|
'<>"< PLEASE SELECT >"',
|
||||||
'<>< Please Select >',
|
'<>< Please Select >',
|
||||||
],
|
],
|
||||||
|
[
|
||||||
|
'<>""',
|
||||||
|
'<>',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'=""',
|
||||||
|
'""',
|
||||||
|
],
|
||||||
];
|
];
|
||||||
|
|
Loading…
Reference in New Issue