mirror of
https://github.com/PHPOffice/PhpSpreadsheet.git
synced 2026-08-26 10:08:34 +00:00
057572ee90
* Change Additional Statistical Tests to Use Spreadsheet Context With an earlier change, I made all but 18 Statistical tests run in spreadsheet context. This PR changes 12 of those 18. The remaining 6 usually return array results, so it is a tougher task to handle them. I will continue to think on it. AVERAGEIF, AVERAGEIFS, and COUNTBLANK are changed to throw an Exception when a range is specified as a literal. They previously accepted array (enclosed in braces) literals, and bumbled along till they threw an error for non-array literals. Throwing an exception appears to be analogous to how Excel operates, rather than something more friendly like a VALUE error. There may be other functions which require similar treatment. There also remains a TODO for COUNTIFS, and possibly other functions. It appears that PhpSpreadsheet counts booleans for both integer and string compares and probably shouldn't. Again, this is a problem for another day. * Scrutinizer Fix one problem. * Scrutinizer Ignores Its Own Suggested Remedy Try another approach.
33 lines
697 B
PHP
33 lines
697 B
PHP
<?php
|
|
|
|
return [
|
|
'range does not count bool, null, text string' => [
|
|
3,
|
|
[
|
|
// The index simulates a cell value
|
|
'0.1.A' => 'A',
|
|
'0.2.A' => 1,
|
|
'0.3.A' => true,
|
|
'0.4.A' => 2.9,
|
|
'0.5.A' => false,
|
|
'0.6.A' => '3',
|
|
'0.7.A' => '',
|
|
'0.8.A' => null,
|
|
'0.9.A' => 9,
|
|
],
|
|
],
|
|
'direct values also do not count bool, null, text string' => [
|
|
3,
|
|
// No index indicates arguments passed as literals rather than cell values
|
|
'A',
|
|
1,
|
|
true,
|
|
2.9,
|
|
false,
|
|
'3',
|
|
'',
|
|
null,
|
|
9,
|
|
],
|
|
];
|