Skip to main content

Kutools para Office — Una Suite. Cinco Herramientas. Haz Más.

¿Cómo autonumerar filas si la celda adyacente no está en blanco en Excel?

Author Xiaoyang Last modified
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 surgen 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 en las celdas donde las celdas 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 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 utilizar:

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 hacia abajo hasta la fila actual, creando una secuencia continua para las filas que contienen valores. Si B2 está vacía, 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 se pueden insertar, eliminar o modificar nuevos datos en cualquier momento, ya que la secuencia siempre permanecerá precisa sin necesidad de renombrar o recalcular manualmente. Sin embargo, tenga en cuenta que si existen celdas en blanco 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 la 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 convincente. Usando VBA, puede actualizar automáticamente los números de fila en una columna cada vez que se edita la celda adyacente, sin necesidad de fórmulas. Esto es ideal para formularios de entrada de datos, registros de importación o listas de tareas con cambios frecuentes de diseño.

1. Presione Alt + F11 para abrir la ventana del editor de Visual Basic for Applications. 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 basándose en 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 abajo mientras agrega o elimina 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" cambia 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 adecuada. Además, asegúrese de haber guardado el libro como un archivo habilitado para macros (.xlsm). Para errores inesperados, vuelva a verificar que no haya alterado la estructura de su hoja de cálculo, 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 identificar duplicados | Eliminar filas en blanco | Combinar columnas o celdas sin perder datos | Redondear...
Super BUSCARV: Búsqueda por varios criterios | Búsqueda por varios valores | Búsqueda en varias hojas | Coincidencia difusa....
Lista desplegable avanzada: Cree 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...)...
Los15 principales 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 de combinar y dividir (Combinar filas avanzado, Dividir celdas, ...) ... y más
Utiliza Kutools en tu idioma preferido: admite inglés, español, alemán, francés, chino y más de40 idiomas adicionales.

Mejora tu dominio de 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 incorpora la interfaz de pestañas en 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 hacerlo en ventanas separadas.
  • ¡Aumenta tu productividad en un50% y reduce cientos de clics de ratón cada día!

Todos los complementos de Kutools. Un solo instalador

El paquete Kutools for Office agrupa complementos para Excel, Word, Outlook y PowerPoint junto con Office Tab Pro, ideal para equipos que trabajan en varias aplicaciones de Office.

Excel Word Outlook Tabs PowerPoint
  • Suite todo en uno: complementos para Excel, Word, Outlook y PowerPoint + Office Tab Pro
  • Un solo instalador, una licencia: configuración en minutos (compatible con MSI)
  • Mejor juntos: productividad optimizada en todas las aplicaciones de Office
  • Prueba completa de30 días: sin registro ni tarjeta de crédito
  • La mejor relación calidad-precio: ahorra en comparación con la compra individual de complementos