Skip to main content

¿Cómo numerar automáticamente las filas si la celda adyacente no está en blanco en Excel?

Author: Xiaoyang Last Modified: 2025-07-21
autonumber rows if adjacent cell not blank

En Excel, usar el controlador de relleno para crear manualmente una serie de números es una forma común de generar números de serie o índices para listas. Sin embargo, a menudo hay situaciones en las que solo desea numerar las filas si una celda adyacente específica contiene datos. Por ejemplo, puede desear generar automáticamente números de fila en una lista, pero omitir la numeración donde las celdas de datos adyacentes estén vacías. Además, es posible que espere que estos números se actualicen al instante cuando se introducen o eliminan datos, proporcionando siempre una secuencia actualizada sin intervención manual.

Numerar filas si la celda adyacente no está en blanco automáticamente con fórmula

Numerar filas si la celda adyacente no está en blanco automáticamente con código VBA


arrow blue right bubble Numerar filas si la celda adyacente no está en blanco automáticamente con fórmula

Una forma eficiente de lograr la numeración dinámica de filas basada en los valores de las celdas adyacentes es usar una fórmula de Excel. Con este enfoque, los números de fila se mostrarán solo cuando la celda adyacente contenga un valor. Cuando agregue o elimine datos en estas celdas, la numeración se actualizará automáticamente para coincidir. Aquí hay un método práctico que puede usar:

1. Seleccione la celda donde desea que comience la numeración (por ejemplo, A2 si sus datos comienzan en B2). Introduzca la siguiente fórmula:

=IF(B2<>"",COUNTA($B$2:B2),"")
Consejo: Esta fórmula verifica si la celda B2 no está en blanco. Si hay datos en B2, cuenta todas las celdas no vacías desde B2 hasta la fila actual, creando una secuencia continua para las filas que contienen valores. Si B2 está vacío, la fórmula devuelve un espacio en blanco, dejando la celda de la secuencia vacía.

2. Luego, arrastre el controlador de relleno hacia abajo junto a sus datos para aplicar esta fórmula a otras filas. La numeración se ajustará automáticamente, mostrando números solo para las filas donde haya datos en la columna B.

autonumber if not blank with formula

Nota: Este método es especialmente beneficioso para listas donde pueden insertarse, eliminarse o modificarse nuevos datos en cualquier momento, ya que la secuencia siempre permanecerá precisa sin necesidad de renumerar o recalcular manualmente. Sin embargo, tenga en cuenta que si existen celdas vacías como parte de sus datos (por ejemplo, espacios intencionales), esas filas permanecerán sin numerar.

Si experimenta problemas en los que los números no se actualizan como se espera, confirme que la fórmula se ha copiado en todas las filas relevantes y que no hay celdas combinadas o validaciones de datos que interfieran con su rango. Recuerde, las fórmulas dependen de referencias precisas y pueden verse interrumpidas por cambios estructurales en la hoja de cálculo.


arrow blue right bubble Numerar filas si la celda adyacente no está en blanco automáticamente con código VBA

Para usuarios más avanzados, o en casos donde prefiera no aplicar fórmulas en toda su hoja de cálculo, o necesita que la numeración se actualice incluso al pegar datos, eliminar bloques o realizar cambios frecuentes, una macro VBA ofrece una alternativa interesante. Usando VBA, puede actualizar automáticamente los números de fila en una columna cada vez que se edite la celda adyacente, sin necesidad de fórmulas. Esto es ideal para formularios de entrada de datos, registros de importación u hojas de tareas con cambios frecuentes de diseño.

1. Presione Alt + F11 para abrir la ventana del editor de Visual Basic para Aplicaciones. En el Explorador de Proyectos, localice su libro, luego haga doble clic en la hoja de trabajo relevante (por ejemplo, “Hoja1”) bajo “Objetos de Microsoft Excel”.

2. En la ventana de código que aparece, pegue el siguiente código. Este ejemplo asume que desea numerar las filas en la columna A según si la columna B no está en blanco; puede ajustar las referencias para 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. Ahora, cada vez que agregue, edite o borre contenido en la columna B, la columna A se volverá a numerar inmediatamente, reflejando la presencia (o ausencia) de datos. La secuencia se moverá hacia arriba o hacia abajo a medida que agregue 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 trabajo deseada (no en un módulo ni en ThisWorkbook) para que responda a las ediciones de celdas. Además, asegúrese de que las macros estén habilitadas en la configuración de Excel para que el código funcione. Si su "rango de datos" se desplaza a columnas distintas de A y B, actualice las referencias Set chk = Intersect(Target, Me.Columns("B")) y Call RenumberNonBlank(Me, "B", "A", 2) en consecuencia.

Solución de problemas: Si la numeración no se actualiza, verifique nuevamente que está editando la hoja de trabajo correcta y que el código está colocado en la ventana de código de la hoja de trabajo apropiada. Además, asegúrese de haber guardado el libro como un archivo habilitado para macros (.xlsm). Para errores inesperados, revise que no haya alterado la estructura de su hoja de trabajo, como celdas combinadas o datos en filas de encabezado.


Las mejores herramientas de productividad para Office

🤖 Kutools AI Aide: Revoluciona el análisis de datos basado en: Ejecución inteligente | Generar código | Crear fórmulas personalizadas | Analizar datos y generar gráficos | Invocar Funciones mejoradas
Funciones populares: Buscar, resaltar o marcar duplicados | Eliminar filas en blanco | Combinar columnas o celdas sin perder datos | Redondear...
Super BUSCARV: Búsqueda por varios criterios | Búsqueda de varios valores | Búsqueda en varias hojas | Coincidencia difusa....
Lista desplegable avanzada: Crea rápidamente una lista desplegable | Lista desplegable dependiente | Lista desplegable de selección múltiple....
Administrador de columnas: Agregar un número específico de columnas | Mover columnas | Alternar el estado de visibilidad de columnas ocultas | Comparar rangos y columnas...
Funciones destacadas: Cuadrícula de enfoque | Vista de diseño | Barra de fórmulas mejorada | Administrador de Libro de trabajo y Hoja de cálculo | Biblioteca de AutoTexto | Selector de fechas | Combinar Datos | Cifrar/Descifrar celdas | Enviar correo electrónico por lista | Super Filtro | Filtro especial (filtrar celdas con fuente en negrita/cursiva/tachado...)...
Top15 conjuntos de herramientas:12 herramientas de texto (Agregar texto, Eliminar caracteres específicos, ...) | Más de50 tipos de gráficos (Diagrama de Gantt, ...) | Más de40 fórmulas prácticas (Calcular edad basada en la fecha de nacimiento, ...) |19 herramientas de inserción (Insertar código QR, Insertar imagen desde ruta, ...) |12 herramientas de conversión (Convertir a palabras, Conversión de moneda, ...) |7 herramientas para combinar y dividir (Combinar filas avanzado, Dividir celdas, ...) | ... y más

Potencia tus habilidades en Excel con Kutools para Excel y experimenta una eficiencia sin precedentes. Kutools para Excel ofrece más de300 funciones avanzadas para aumentar la productividad y ahorrar tiempo. Haz clic aquí para obtener la función que más necesitas...


Office Tab lleva la interfaz de pestañas a Office y facilita mucho tu trabajo

  • Habilita la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
  • Abre y crea varios documentos en nuevas pestañas de la misma ventana, en lugar de nuevas ventanas.
  • ¡Aumenta tu productividad en un50% y reduce cientos de clics de ratón cada día!