Я назвал диапазоны в своем шаблоне Excel, и с помощью формулы =MIN(IF(UnitTypes=T43,Rents))
преобразуется в =MIN(IF(@UnitTypes=T43,Rents))
при создании файла. Из-за оператора неявного пересечения: @ формула не будет работать, если я вручную go не введу каждую ячейку и не удалю @.
. Я пытался использовать: =MIN(IF(C:C=T43,L:L))
только для преобразования этого значения в =MIN(IF(@C:C=T43,L:L))
Я также попытался установить именованные диапазоны в PHPSpreadsheet с помощью:
$spreadsheet->addNamedRange( new \PhpOffice\PhpSpreadsheet\NamedRange('UnitTypes', $spreadsheet->getSheet(1), 'C15:C38') );
$spreadsheet->addNamedRange( new \PhpOffice\PhpSpreadsheet\NamedRange('Rents', $spreadsheet->getSheet(1), 'L15:L38') );
$spreadsheet->getSheet(1)->setCellValue('T45','=MIN(IF(UnitTypes=T43,Rents))');
Но это приводит к ошибке #VALUE (тогда как удаление @ снова будет работать.)
Существует ли параметр в PHPSpreadsheet для предотвращения вставки в Excel оператора неявного пересечения?