https://stackoverflow.com/questions/43583220/duplicate-formula-dynamically-in-phpexcel
PHPExcel_ReferenceHelper->updateFormulaReferences関数を利用して、数式を変換した上でコピー先に値を設定する。
function CopyFormula($sheet, $from_cell, $to_cell) {
$from = PHPExcel_Cell::rangeBoundaries($from_cell);
$from_col = (int)$from[0][0];
$from_row = (int)$from[0][1];
$to = PHPExcel_Cell::rangeBoundaries($to_cell);
$to_col = (int)$to[0][0];
$to_row = (int)$to[0][1];
$move_col = $to_col - $from_col;
$move_row = $to_row - $from_row;
$value = $sheet->getCell($from_cell)->getValue();
if ($sheet->getCell($from_cell)->getDataType() === PHPExcel_Cell_DataType::TYPE_FORMULA) {
$reference_helper = PHPExcel_ReferenceHelper::getInstance();
$value = $reference_helper->updateFormulaReferences($value, "A1", $move_col, $move_row);
}
$sheet->setCellValue($to_cell, $value);
}