lucasnetau
e01a81ec5e
Fixes #2430 ( #2431 )
...
* Handle a wildcard match that contains a forward slash in the pattern by adding / to the delimiter list of preg_quote
* Fix SUMIF doing a wildcard match on empty cells (NULL)
* Fix compare logic to return false when value is an empty string or NULL (Verified against LibreOffice SUMIF and MATCH handling of empty cells)
2021-12-04 08:07:18 -08:00
Owen Leibman
d0dd5b4594
Use WildcardMatch
...
Per suggestion from @MarkBaker.
WildcardMatch did not handle double tilde correctly. It has been changed to do so and its logic simplified (and commented).
Existing AutoFilter test covered this situation, but I added a test for MATCH as well.
2021-06-24 10:09:21 +02:00
Mark Baker
baacc83995
Replace manual wildcard logic in MATCH() function with the new WildcardMatch methods ( #1919 )
...
* Replace manual wildcard logic in MATCH() function with the new WildcardMatch methods
* Additional unit tests
* Refactor input validations
* Refactor actual search logic into dedicated methods
* Eliminate redundant code
2021-03-12 18:23:15 +01:00
Arne Jørgensen
1a44ef9109
Fix MATCH when comparing different numeric types ( #1521 )
...
Let MATCH compare numerics of different type (e.g. integers and floats).
```php
<?php
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
// Row: 1, 2, 3, 4, 5. MATCH for 4.6.
$sheet->getCell('A1')->setValue(1);
$sheet->getCell('A2')->setValue(2);
$sheet->getCell('A3')->setValue(3);
$sheet->getCell('A4')->setValue(4);
$sheet->getCell('A5')->setValue(5);
$sheet->getCell('B1')->setValue('=MATCH(4.6, A1:A5, 1)');
// Should echo 4, but echos '#N/A'.
echo $sheet->getCell('B1')->getCalculatedValue() . PHP_EOL;
// Row: 1, 2, 3, 3.8, 5. MATCH for 4.
$sheet->getCell('C1')->setValue(1);
$sheet->getCell('C2')->setValue(2);
$sheet->getCell('C3')->setValue(3);
$sheet->getCell('C4')->setValue(3.8);
$sheet->getCell('C5')->setValue(5);
$sheet->getCell('D1')->setValue('=MATCH(4, C1:C5, 1)');
// Should echo 4, but echos 3.
echo $sheet->getCell('D1')->getCalculatedValue() . PHP_EOL;
```
Co-authored-by: Mark Baker <mark@lange.demon.co.uk>
2020-06-19 20:54:04 +02:00
Arne Jørgensen
73c336ac96
Fix exact MATCH on ranges with empty cells ( #1520 )
...
Fixes a bug when doing exact match on ranges with empty cells.
```php
<?php
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
// Row: 1, null, 4, null, 8.
$sheet->getCell('A1')->setValue(1);
$sheet->getCell('A3')->setValue(4);
$sheet->getCell('A5')->setValue(8);
$sheet->getCell('B1')->setValue('=MATCH(4, A1:A5, 1)');
// Should echo 3, but echos '#N/A'.
echo $sheet->getCell('B1')->getCalculatedValue() . PHP_EOL;
// Row: 1, null, 4, null, null.
$sheet->getCell('C1')->setValue(1);
$sheet->getCell('C3')->setValue(4);
$sheet->getCell('D1')->setValue('=MATCH(5, C1:C5, 1)');
// Should echo 3, but echos '#N/A'.
echo $sheet->getCell('D1')->getCalculatedValue() . PHP_EOL;
```
2020-06-19 20:51:46 +02:00
Adrien Crivelli
ee5134a954
Merge branch 'master' into Further-Test-Refactoring
2019-09-20 16:04:36 -07:00
Rolands Usāns
9df68f12e2
MATCH function fix
...
- fix boolean search
- add support for excel expressions `*?~`
Fixes #1116
Closes #1122
2019-08-11 20:11:36 -07:00
Fräntz Miccoli
8b589c4ef3
Fix MATCH an error was appearing when comparing strings against 0 (always true) + making a return statement a bit more explicit ( #855 )
2019-03-06 22:37:06 +01:00
Paolo Agostinetto
fd83c191ea
MATCH function behavior when third parameter is equal to 1 or -1
...
Fixes #51
Closes #122
2017-04-01 12:36:02 +09:00