AverageIf2Test.php 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. <?php
  2. namespace PhpOffice\PhpSpreadsheetTests\Calculation\Functions\Statistical;
  3. use PhpOffice\PhpSpreadsheet\Spreadsheet;
  4. use PHPUnit\Framework\TestCase;
  5. class AverageIf2Test extends TestCase
  6. {
  7. public function testAVERAGEIF(): void
  8. {
  9. $table = [
  10. ['n', 1],
  11. ['', 2],
  12. ['y', 3],
  13. ['', 4],
  14. ['n', 5],
  15. ['n', 6],
  16. ['n', 7],
  17. ['', 8],
  18. [null, 9],
  19. ];
  20. $spreadsheet = new Spreadsheet();
  21. $sheet = $spreadsheet->getActiveSheet();
  22. $sheet->fromArray($table, null, 'A1', true);
  23. $sheet->getCell('C1')->setValue('=AVERAGEIF(A:A,"",B:B)');
  24. $sheet->getCell('C2')->setValue('=AVERAGEIF(A:A,,B:B)');
  25. $sheet->getCell('C3')->setValue('=AVERAGEIF(A:A,"n",B:B)');
  26. $sheet->getCell('C4')->setValue('=AVERAGEIF(A:A,"y",B:B)');
  27. $sheet->getCell('C5')->setValue('=AVERAGEIF(A:A,"x",B:B)');
  28. self::assertEqualsWithDelta(5.75, $sheet->getCell('C1')->getCalculatedValue(), 1E-12);
  29. self::assertEquals('#DIV/0!', $sheet->getCell('C2')->getCalculatedValue());
  30. self::assertEqualsWithDelta(4.75, $sheet->getCell('C3')->getCalculatedValue(), 1E-12);
  31. self::assertEqualsWithDelta(3, $sheet->getCell('C4')->getCalculatedValue(), 1E-12);
  32. self::assertEquals('#DIV/0!', $sheet->getCell('C5')->getCalculatedValue());
  33. $spreadsheet->disconnectWorksheets();
  34. }
  35. }