En esta ocasión veremos cómo introducir una formula en una celda con Python usando el módulo openpyxl. Te dejo el enlace a la entrada Trabajar con archivos de Excel en Python con openpyxl por si aun no tienes instalado el módulo o por si quieres ver una rápida introducción.
Empecemos importando el módulo que requerimos y creando el libro con el que trabajaremos.
from openpyxl import Workbook
libro = Workbook()
Vamos a introducir valores en algunas celdas para poder ver el comportamiento de la formula. Te dejo el enlace a la entrada Introducir datos en una celda con Python y openpyxl por si quieres ver mas detalles.
hoja = libro.active
hoja["A1"] = "Valor A"
hoja["A2"] = 5
hoja["B1"] = "Valor B"
hoja["B2"] = 20
hoja["C1"] = "Valor Suma"
Ahora colocaremos la formula en la celda C2 para hacer la suma de los valores ingresados en las celdas A2 y B2.
hoja["C2"] = "=SUM(A2,B2)"
Vamos a guardar el libro para poder ver si la formula funciona correctamente. Recuerda que si no especificas la ruta donde se debe guardar el archivo entonces se creará en la ruta en la que te encontrabas cuando abriste el interprete.
libro.save('demoFormula.xlsx')
Busca el archivo y ábrelo, veras que en la celda C2 aparece la formula.

Hay algunas consideraciones que debes tener en cuenta. El nombre de la formula que utilices debe estar en ingles, se debe escribir en mayúsculas y los argumentos que requiera la formula se deben separar con comas. Openpyxl tiene un listado de formulas con los que puede trabajar.
Si quieres verificar el listado completo de las formulas que contempla basta con que llames a FORMULAE.
from openpyxl.utils import FORMULAE
FORMULAE
>>> from openpyxl.utils import FORMULAE
>>> FORMULAE
frozenset({‘PHONETIC’, ‘COUNTBLANK’, ‘RECEIVED’, ‘IMPOWER’, ‘FV’, ‘MIDB’, ‘IMAGINARY’, ‘VARP’, ‘INDEX’, ‘MDETERM’, ‘OCT2HEX’, ‘ODDLYIELD’, ‘CUBEMEMBERPROPERTY’, ‘RTD’, ‘COUPDAYBS’, ‘FVSCHEDULE’, ‘STANDARDIZE’, ‘BESSELK’, ‘COUPNCD’, ‘IMEXP’, ‘BESSELY’, ‘GAMMALN’, ‘ODDLPRICE’, ‘FIXED’, ‘SQRT’, ‘ISERROR’, ‘GAMMAINV’, ‘YEARFRAC’, ‘NOT’, ‘FLOOR’, ‘ACCRINT’, ‘DPRODUCT’, ‘REPLACEB’, ‘RANDBETWEEN’, ‘COS’, ‘NORMINV’, ‘COSH’, ‘COLUMN’, ‘BIN2OCT’, ‘IPMT’, ‘MROUND’, ‘SUBSTITUTE’, ‘MOD’, ‘FIND’, ‘CONVERT’, ‘SUMXMY2’, ‘IMSQRT’, ‘ISPMT’, ‘OFFSET’, ‘N’, ‘HEX2BIN’, ‘FDIST’, ‘DDB’, ‘LN’, ‘ASIN’, ‘CHIINV’, ‘MMULT’, ‘DGET’, …
Podemos verificar si la formula que necesitas utilizar esta en el listado de la siguiente manera:
from openpyxl.utils import FORMULAE
'SUM' in FORMULAE
'sum' in FORMULAE
'suma' in FORMULAE
'SUMA' in FORMULAE
>>> from openpyxl.utils import FORMULAE
>>> ‘SUM’ in FORMULAE
True
>>> ‘sum’ in FORMULAE
False
>>> ‘suma’ in FORMULAE
False
>>> ‘SUMA’ in FORMULAE
False
Obtendremos True si la formula esta disponible.
Hasta aquí la enteada de hoy sobre cómo introducir una formula en una celda con Python usando el modulo openpyxl. Cuéntame, ¿qué te ha parecido esta entrada?