Índice
El escenario
Cuando realizamos una tabla en Excel que nos sirva como base de datos (por ejemplo un listado de los empleados de nuestra empresa), podemos vernos en la necesidad de numerar cada línea, ya sea por orden, o para asignarle un identificador único a cada registro para su posterior uso durante la recuperación de datos.
El problema
Esta numeración tendríamos que hacerla manualmente: la podemos escribir directamente o podemos utilizar la técnica de auto-relleno, arrastrando con el mouse cada vez que ingresemos un nuevo número; pero sigue siendo un proceso manual.
Podrías escribir en la primera línea el número 1 y a partir de la segunda utilizar la fórmula:
=B2+1
Arrastrando esta fórmula conseguimos el efecto deseado pero, una vez más, no conseguimos que sea automático.
Al insertar una nueva línea en la tabla, la fórmula no se copia automáticamente. Esto se debe a que la fórmula no es consistente en todas sus líneas, es decir que en la primera fila no tiene fórmula y por eso Excel no auto completa esa columna.
Recuerda: para lograr la automatización de tus modelos en Excel, debes comenzar por identificar los puntos de ingreso que no deberían ser manuales.
La solución
Para superar este inconveniente, una solución es utilizar la función FILA()
La función FILA() no recibe parámetros y su finalidad es la de devolver el número actual de la fila en la que está ubicada la fórmula. Esto significa que si la fórmula está en la fila 2, FILA() devolverá el número 2.
Aquí surge otro inconveniente: necesariamente nuestro primer registro siempre estará, por lo menos, en la fila 2. Esto ocasionará que la función row() indique el número de registro 2, cuando estamos en el primero.
Como te muestro en el gráfico, la forma de ajustar esto sería restándole el número de filas ‘excedente’ directamente en la fórmula. En el ejemplo que te muestro tengo una fila por encima de mi primer registro, por lo tanto, le resto una unidad (1)
Ahora sí, Excel ha completado automáticamente la columna copiando mi fórmula en todas sus celdas y, lo que es mejor, cada vez que insertes un nuevo registro aparecerá con su correspondiente número de línea.
El ejemplo en acción
En la siguiente animación puedes ver el ejemplo funcionando tal y como lo queríamos. Cada vez que insertes un nuevo registro, Excel se encargará de asignarle un nuevo número que será único para cada uno.
¿Y tú, ya usas la técnica de auto-numerar registros en Excel?
Puede ser una técnica sencilla, pero dentro de un contexto de automatización puede ahorrarnos un par de molestias al evitarnos el cálculo del siguiente número y su asignación.
¿Qué otras técnicas se te ocurren para un escenario como este? Me encantaría conocerlas y que podamos enriquecer esta entrada.
¡Ah! Se me olvidaba… No dejes de compartir esta entrada en las redes sociales usando los botones de Facebook y Twitter.
¡Nos vemos!
Hola Raymundo:
Verás, tengo un problema con la numeración automática de filas que no se como resolver y he visto este post, a ver si me puedes echar una mano.
Tengo una macro en la que llega un momento que inserto una fila y se le da una numeración con la fórmula FILA()-2 ya que se empieza a numerar en la fila 3. Hasta ahí todo correcto. El problema aparece cuando la macro inserta una nueva fila en la fila 3 y la fila que ya existía (en la fila 3) pasa a la fila 4 con el numero 2, y lo que yo quiero es que esa fila que se desplaza (a la fila 4) mantenga el numero 1. Como se resuelve esto??
Muchas gracias y saludos,
Miguel.
Hola, Miguel.
El problema es que estás asignando una fórmula, con lo que te queda un número dinámico y se actualizará cada vez que cambie de posición la fila.
Lo mejor, si lo que quieres es que sea estático, sería asignar el valor como texto en lugar de hacerlo como fórmula. Algo así:
ActiveCell.Value = ActiveCell.Row
De esta forma, el número se quedaría fijo y podrías hacer tu numeración en orden descendente como entiendo que quieres hacerla.
Un saludo
hola, excelente la forma de autonumerar las tablas. me ha resultado de mucha utilidad. Al mismo tiempo, al existir un numero en cada fila, los filtros funcionan perfectamnte a pesar de tener celdas vacias.
Mi consulta hoy se refiere a lo siguiente:
la ultima celda de cada columna tiene el texto “agregar item”que dispara una macro para agregar una fila, la nueva fila se autonumera según lo explicado y eso es genial, aunque me ocurre lo siguiente.
la fila agregada es dependencia de la anterior y copia el texto de la fila de origen aunque una de sus columnas indica el Nª de item. cada fila de la tabla tiene item 1, cuando agrego una fila el item debe incrementarse en uno (+1) asi la nueva fila sera igual a la anterior con Item 2, eso lo resolvi también con macros, aunque si agregue 6 filas y tengo los items 1,2,3,4,5,y 6 e intento agregar una fila debajo del item 3, la nueva fila tendrá unitem 4 y debajo continuaran las anteiorres:4,5 y 6 repitiéndose el item 4.
En la solución se me ocurre un bucle que renumere a todas las celdas de la tabla que cumplan con ese criterio
/Nº / Clase / puesto / fila / Casillero / año / ITEM / Detalle
/1 / Sombreros / 1 / 2 / 3 / 2016 / 1 / Galera
/2 / Sombreros / 1 / 2 / 3 / 2016 / 2 / boina
quiero contar las filas que tienen sombrero&1&2&3&2016 y renumerarlas. se podrá?
hola amigo como hago si quiero enumerar numeros discontinuos de una columna en otra columna
algo asi
1 en otra columna debe salir asi 1
2 1
3 1
1 2
2 2
3 2
1 3
2 3
3 3
favor de ayudar
hola espero que me puedas ayudar.
yo lleno diario una base de datos en la que necesito numerar los registros diariamente, es decir, cada día inicio con el numero 1. hasta ahora no he podido hacer algo para que se pueda autonumerar y que al día siguiente inicie en 1. es posible?. de antemano agradezco