Estoy tratando de promediar los valores dentro de una columna en un cierto rango. Intenté enumerar el rango como una tupla y luego hacer un bucle para poder obtener el valor de la celda. Luego creé una variable para el promedio, pero aparece el error 'Error de tipo: el objeto 'flotante' no es iterable.
range1 = ws["A2":"A6] for cell in range1: for x in cell: average = sum(x.value)/len(x.value) print(average)
Python y la API de Openpyxl hacen que este tipo de cosas sea muy fácil.
rows = ws.iter_rows(min_row=2, max_row=6, max_col=1, values_only=True) values = [row[0] for row in rows] avg = sum(values) / len(values)
Pero probablemente debería verificar que las celdas contengan números, de lo contrario, verá una excepción.
Algo como esto te dará la media de las celdas.
import openpyxl as op def main(): wb = op.load_workbook(filename='C:\\Users\\####\\Desktop\\SO nonsense\\Book1.xlsm') range1 = wb['Sheet1']['A2:A6'] cellsum = 0 for i, cell in enumerate(range1, 1): print(i) cellsum += cell[0].value print(cellsum / i) main()