Generar identificadores únicos a partir de valores repetidos: 6 enfoques distintos

Problema clásico que genera una lluvia de soluciones: a partir de una columna con valores repetidos (10, 10, 20, 20...), crear un identificador único añadiendo un contador (101, 102, 201, 202...). La comunidad responde con 6 fórmulas distintas en cuestión de minutos.

Con MAP + CONTAR.SI expansivo (John):

``
=MAP(A2:A99; LAMBDA(x; 10x + CONTAR.SI(A2:x; x)))
`

El truco está en el rango expansivo A2:x: a medida que MAP avanza por cada fila, el rango crece y CONTAR.SI cuenta cuántas veces ha aparecido el valor hasta ese punto.

Con MAP + SUMA + rango expansivo (Gerson):

`
=MAP(A2:A10; LAMBDA(x; SUMA(N(x = x:A2)) + 10x))
`

Mismo concepto pero usando SUMA(N(...)) en lugar de CONTAR.SI, que algunos encuentran más intuitivo para rangos dinámicos.

Con MAP + concatenación de texto (+506):

`
=MAP(A2:A5; LAMBDA(x; x&TEXTO(CONTAR.SI(A2:x; x); "0")))
`

Variante que concatena el contador como texto en vez de usar aritmética.

Con SCAN acumulador (Hugo):

`
=A2:A13&SCAN(1; A2:A13; LAMBDA(a; b; CONTAR.SI(A2:b; b)))
`

Usa SCAN para construir el contador de forma secuencial. La diferencia con MAP es que SCAN mantiene un acumulador explícito entre iteraciones.

Con LET + FILA - COINCIDIRX (Bolivia):

`
=LET(d; A2:A13; d&FILA(d) - COINCIDIRX(d; d))
`

La solución más ingeniosa: la diferencia entre la fila actual y la primera aparición del valor (vía COINCIDIRX) da automáticamente el número de ocurrencia (0, 1, 2...). Sin MAP, sin LAMBDA`, sin rangos expansivos.

Un caso que demuestra que en Excel siempre hay más de una forma de llegar al mismo resultado, y que las soluciones más cortas no siempre son las más obvias.

Más contenido de Excel en InflueXcel