INICIO
ofimatica · microsoft excel
como usar for en excel, Editor VBA de Excel abierto con un bucle For visible en el panel de código
ofimatica ·#8206 ·Lectura 3 min

¿Como usar for en excel?

Respuesta corta

Para abrir el editor VBA en Excel pulsa Alt + F11; la sintaxis del bucle es: For i = inicio To fin [Step paso] ... Next i

01

Cómo usar FOR en Excel: bucles VBA y alternativas con fórmulas

Cuando hablamos de usar un bucle FOR en Excel, la vía más directa y potente es a través del editor de VBA (Visual Basic for Applications), ya que Excel por sí solo no dispone de una instrucción FOR nativa como los lenguajes de programación. Para acceder al editor, pulsa Alt + F11, inserta un módulo nuevo con Insertar > Módulo y escribe tu código. La sintaxis básica del bucle es:

For i = 1 To 10
Cells(i, 1).Value = i
Next i

Este fragmento rellena las 10 primeras celdas de la columna A con los números del 1 al 10. La variable i es el contador que incrementa en cada iteración hasta alcanzar el valor final indicado tras la palabra To.

Si necesitas un paso diferente a 1, utiliza la cláusula Step:
For i = 1 To 100 Step 5
Cells(i, 1).Value = i * 2
Next i

Esto recorre solo los índices impares (1, 6, 11, 16...) hasta 100, multiplicando cada uno por 2 antes de escribirlo en la hoja.

Para iterar sobre un rango concreto puedes combinar FOR con la propiedad Cells o Range. Por ejemplo, para recopilar todas las celdas no vacías de la columna B y copiarlas en la columna D:
For i = 1 To 500
If Cells(i, 2).Value <> "" Then
Cells(i, 4).Value = Cells(i, 2).Value
End If
Next i

Un patrón muy útil es el For Each, que recorre directamente un rango de celdas sin necesidad de un contador numérico:
Dim celda As Range
For Each celda In Range("A1:A20")
If celda.Value > 50 Then celda.Font.Bold = True
Next celda

Este ejemplo pone en negrita todas las celdas de A1 a A20 cuyo valor supere 50. Es más legible que un For numérico cuando no necesitas el índice.

Para bucles anidados, por ejemplo recorrer una tabla de 10 filas x 5 columnas y sumar cada celda:
Dim total As Double
total = 0
For f = 1 To 10
For c = 1 To 5
total = total + Cells(f, c).Value
Next c
Next f
MsgBox "Suma total: " & total

Si en algún momento necesitas salir del bucle antes de tiempo, la instrucción Exit For rompe la iteración inmediatamente, igual que una sentencia break en otros lenguajes.

Por último, recuerda que VBA se guarda dentro del libro (macro) y el archivo debe tener extensión .xlsm para conservar las macros. Si prefieres evitar VBA, Excel ofrece alternativas puramente basadas en fórmulas que veremos a continuación.

Sin VBA, la combinación LAMBDA + SEQUENCE + MAP o REDUCE replica un FOR puramente con fórmulas dinámicas en Excel 365/2021.

Dato clave
como usar for en excel, Hoja de cálculo Excel con fórmulas dinámicas LAMBDA y SEQUENCE en la barra de fórmulas
Imagen

Hoja de cálculo Excel con fórmulas dinámicas LAMBDA y SEQUENCE en la barra de fórmulas

02

Iterar datos en Excel con For, fórmulas de matriz y LAMBDA

Si quieres lograr un efecto de FOR sin salir de la hoja de cálculo, Excel 365 y 2021 introdujeron la función LAMBDA combinada con REDUCE, SEQUENCE y MAP, que simulan iteraciones de forma dinámica. Por ejemplo, para generar una serie aritmética equivalente a For i = 1 To 20 Step 3:

=MAP(SEQUENCE(7), LAMBDA(x, (x-1)*3 + 1))

Esto produce {1; 4; 7; 10; 13; 16; 19} sin necesidad de VBA. La función SEQUENCE genera los índices y MAP aplica la transformación a cada uno, imitando el comportamiento del bucle.

Otra opción es usar REDUCE para acumular resultados iterativamente, algo muy habitual en FORs clásicos donde se va sumando o concatenando:

=REDUCE(0, SEQUENCE(10), LAMBDA(acc, x, acc + x))

Aquí el primer argumento 0 es el valor inicial del acumulador, SEQUENCE(10) genera los números 1 a 10, y la LAMBDA suma cada elemento al acumulador. El resultado es 55, exactamente lo que haría un For con una variable de suma.

Para tareas más sencillas que no requieren VBA ni LAMBDA, existen funciones clásicas como SUMA, PROMEDIO, COUNTIF o CONCATENATE (y su versión dinámica TEXTJOIN) que resuelven en una sola celda lo que en VBA exigiría un bucle. Por ejemplo, para concatenar todas las celdas de A1:A10 con comas:

=TEXTJOIN(", ", TRUE, A1:A10)

Como referencia rápida, la siguiente tabla resume cuándo usar cada método:

ObjetivoHerramienta recomendada
Iterar y modificar celdasVBA For / For Each
Generar serie aritméticaLAMBDA + SEQUENCE + MAP
Acumular suma/productoREDUCE o SUMA directa
Concatenar rangoTEXTJOIN
Condición por celda en rangoVBA For Each + If


En resumen, elige VBA cuando necesites efectos secundarios (modificar celdas, formatear, mover datos), y las funciones dinámicas cuando solo quieras un resultado de cálculo que se actualice automáticamente.

Conclusión

¿como usar for en excel?

En definitiva, el bucle FOR en Excel se implementa principalmente a través de VBA con su sintaxis For...Next o For Each...Next, y cada vez más mediante las funciones dinámicas LAMBDA, MAP y REDUCE que permiten iterar sin salir de la celda. Elige VBA para tareas de automatización y modificación de la hoja, y las fórmulas dinámicas para cálculos reactivos. Ambas vías complementan tu flujo de trabajo y te ahorran horas de copiado manual.

Fuentes: Microsoft Support Excel VBA, Microsoft Learn Lambda Function, Microsoft Support Dynamic Arrays
4.2 / 5 · 59 valoraciones Valorar
Más preguntas de ofimatica
De otras categorías