¿Cómo numerar filas automáticamente en Excel cuando la celda adyacente no está vacía?

En Excel, usar el controlador de relleno para crear manualmente una serie de números es una forma habitual de generar números de serie o índices en listas. Sin embargo, a menudo surgen situaciones en las que solo desea numerar filas si una celda adyacente específica contiene datos. Por ejemplo, puede querer generar automáticamente números de fila en una lista, pero omitir la numeración cuando las celdas de datos adyacentes estén vacías. Además, es posible que desee que estos números se actualicen al instante al introducir o eliminar datos, manteniendo siempre una secuencia actualizada sin intervención manual.
Numerar filas automáticamente si la celda adyacente no está en blanco mediante fórmula
Numerar filas automáticamente si la celda adyacente no está en blanco mediante código VBA
Numerar filas automáticamente si la celda adyacente no está en blanco mediante fórmula
Una forma eficaz de lograr una numeración dinámica de filas según los valores de la celda adyacente es utilizar una fórmula de Excel. Con este enfoque, el número de fila aparecerá únicamente cuando la celda adyacente contenga un valor. Al añadir o eliminar datos en dichas celdas, la numeración se actualizará automáticamente para ajustarse. A continuación, se muestra un método práctico que puede utilizar:
1. Seleccione la celda en la que desea que comience la numeración (por ejemplo,)A2 si sus datos empiezan en B2). Introduzca la siguiente fórmula:
=IF(B2<>"",COUNTA($B$2:B2),"") 2. A continuación, arrastre el controlador de relleno hacia abajo junto a sus datos para aplicar esta fórmula al resto de filas. La numeración se ajustará automáticamente, mostrando números únicamente en las filas que contengan datos en la columna B.

Si experimenta problemas en los que los números no se actualizan como esperaba, asegúrese de que la fórmula se haya copiado en todas las filas pertinentes y de que no haya celdas combinadas ni validaciones de datos que interfieran con su rango. Recuerde que las fórmulas dependen de referencias precisas y pueden interrumpirse por cambios estructurales en la hoja de cálculo.
Numerar filas automáticamente si la celda adyacente no está en blanco mediante código VBA
Para usuarios más avanzados, o en casos en los que prefiera no aplicar fórmulas en toda su hoja de cálculo —o necesite que la numeración se actualice incluso al pegar datos, eliminar bloques o realizar cambios frecuentes—, una macro VBA ofrece una solución muy útil. Con VBA, puede actualizar automáticamente el número de filas en una columna cada vez que se edite la celda adyacente, sin recurrir a fórmulas. Esta opción es ideal para formularios de entrada de datos, registros de importación o listas de tareas con diseños sujetos a cambios constantes.
1. Pulse Alt + F11 para abrir la ventana del editor de Visual Basic para Aplicaciones. En el Explorador de proyectos, localice su libro y haga doble clic en la hoja correspondiente (por ejemplo, «Hoja1») bajo «Microsoft Excel Objects».
2. En la ventana de código que aparece, pegue el siguiente código. Este ejemplo supone que desea numerar las filas en la columna A según si la columna B no está vacía; puede ajustar las referencias a su rango específico si es necesario:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim chk As Range
Set chk = Intersect(Target, Me.Columns("B"))
If chk Is Nothing Then Exit Sub
Application.EnableEvents = False
Call RenumberNonBlank(Me, "B", "A", 2)
Application.EnableEvents = True
End Sub
Sub RenumberNonBlank(ws As Worksheet, _
keyCol As String, _
numCol As String, _
firstDataRow As Long)
Dim lastRow As Long
Dim r As Long
Dim seq As Long
lastRow = ws.Cells(ws.Rows.Count, keyCol).End(xlUp).Row
seq = 1
For r = firstDataRow To lastRow
With ws
If Trim(.Cells(r, keyCol).Value) <> "" Then
.Cells(r, numCol).Value = seq
seq = seq + 1
Else
.Cells(r, numCol).ClearContents
End If
End With
Next r
End Sub
3. Guarde y cierre el editor de VBA. A partir de ahora, cada vez que añada, edite o elimine contenido en la columna B, la columna A se renumerará automáticamente, reflejando de inmediato la presencia (o ausencia) de datos. La numeración se ajustará dinámicamente, desplazándose hacia arriba o hacia abajo según añada o elimine entradas en la columna B.
Notas y precauciones:Esta macro debe colocarse específicamente en la ventana de código de la hoja de cálculo deseada (no en un módulo ni en)ThisWorkbook) para que responda a las ediciones de celdas. Asegúrese también de que las macros estén habilitadas en la configuración de Excel, ya que de lo contrario el código no funcionará. Si su «Rango de datos» se encuentra en columnas distintas de A y B, actualice las referencias en Set chk = Intersect(Target, Me.Columns("B")) y Call RenumberNonBlank(Me, "B", "A", 2) en consecuencia.
Resolución de problemas: Si la numeración no se actualiza, asegúrese de que está editando la hoja de cálculo correcta y de que el código se ha colocado en la ventana de código correspondiente a dicha hoja. Además, verifique que ha guardado el libro como archivo habilitado para macros (.xlsm). En caso de errores inesperados, compruebe que no ha modificado la estructura de su hoja de cálculo, como celdas combinadas o los datos en las filas de encabezado.
Las mejores herramientas de productividad para Office
Potencie sus habilidades en Excel con Kutools para Excel y experimente una eficiencia como nunca antes.Kutools para Excel ofrece más de 300 funciones avanzadas para aumentar su productividad y Ahorrar tiempo.Haga clic aquí para obtener la función que más necesita...
Office Tab aporta una interfaz con pestañas a Office y hace que su trabajo sea mucho más fácil
- Active la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
- Abra y cree varios documentos en nuevas pestañas dentro de la misma ventana, en lugar de hacerlo en ventanas separadas.
- ¡Aumente su productividad en un 50 % y elimine cientos de clics del ratón cada día!
Todos los complementos de Kutools en un solo instalador.
Kutools for Office es la suite que incluye complementos para Excel, Word, Outlook y PowerPoint, además de Office Tab Pro, ideal para equipos que trabajan en distintas aplicaciones de Office.
- Suite integral— complementos para Excel, Word, Outlook y PowerPoint + Office Tab Pro
- Un instalador, una licencia— configuración en minutos (compatible con MSI)
- Rendimiento mejorado en conjunto— productividad optimizada en todas las aplicaciones de Office
- Prueba gratuita de 30 días con todas las funciones— sin registro ni tarjeta de crédito
- La mejor relación calidad-precio— ahorre frente a la compra individual de complementos