PHPExcel INDEX с помощью функции AGGREGATE возвращает поврежденный файл - PullRequest
0 голосов
/ 17 декабря 2018

Я хочу извлечь значения "topten", правильно обрабатывая случаи связывания.Мне нужно использовать следующую формулу: = INDEX ($ A $ 4: $ A $ 12, AGGREGATE (15,7, (ROW ($ K $ 4: $ K $ 12) -ROW ($ K $ 4) +1) / ($ K$ 4: $ K $ 12 = O4), COUNTIF ($ O $ 4: O4, O4)))

Если я использую эту формулу в своем коде, у меня есть поврежденный файл, который я могу прочитать с помощью текстового редактора и чтопоказывает: Неустранимая ошибка : Uncaught PHPExcel_Calculation_Exception: Консолидация Transporteur! N4 -> Ошибка формулы: неверное число аргументов для функции INDEX (): задано 5, от 1 до 4, ожидаемых в /home/.../PHPExcel/Cell.php:293 Трассировка стека:

  • 0 /home/.../PHPExcel/Worksheet.php(754): PHPExcel_Cell-> getCalculatedValue ()

  • 1 /home/.../PHPExcel/Writer/Excel2007/Worksheet.php(373): PHPExcel_Worksheet-> calcColumnWidths ()

  • 2 / home /.../PHPExcel/Writer/Excel2007/Worksheet.php(80): PHPExcel_Writer_Excel2007_Worksheet -> _ writeCols (Object (PHPExcel_Shared_XMLWriter), Object (PHPExcel_Worksheet))

  • * / 1020 3/PHPExcel/Writer/Excel2007.php(304): PHPExcel_Writer_Excel2007_Worksheet-> writeWorksheet (Object (PHPExcel_Worksheet), Array, true)
  • 4 /home/....output.php(33): PHPExcel_Writer_Excel2007-> save ('/ tmp /phpxltmpqF ... ')

  • 5 in / home /.../ PHPExcel / Cell.php on line 293

Если я напишу формулу без начального знака равенства, я могу открыть файл Excel, вставить знак равенства, и формула даст правильный результат, показывая, что формула верна справильное количество аргументов

Если я использую простую функцию MATCH вместо AGGREGATE, я могу получить значения "topten", но случаи связывания обрабатываются неправильно.

Мне также нужно сохранитьsetPreCalculateFormulas в true.

Как решить эту проблему с формулой?

...