En la última formación impartida me encuentro con una pregunta a resolver dónde podemos aplicar la nueva función de Excel CAMBIAR.
Tenemos una columna con datos, éstos son numéricos y contienen valores entre uno y cinco dígitos, por ejemplo 1, 12, 423 … 52345. Necesitamos convertir estos números en un código de seis caracteres que comience por «L» y conste de 5 dígitos, según la longitud del numero necesitaremos añadir ceros, por ejemplo si tenemos el número 457 el resultado debe ser L00457.
Podemos resolver esta necesidad con la función SI, un anidado donde en función del LARGO(número de caracteres) del número, añadamos el resto del código. Por ejemplo cuando nos encontremos con un número 4, su largo es 1, luego con el condicional =SI(LARGO(celda)=1;»L0000″&celda … conseguiríamos el Código L00004. El resto escribimos tantas condiciones como necesitemos.
=SI(LARGO(B4)=1;»L0000″&B4;SI(LARGO(B4)=2;»L000″&B4;SI(LARGO(B4)=3;»L00″&B4;SI(LARGO(B4)=4;»L0″&B4;SI(LARGO(B4)=5;»L»&B4;»»)))))
Con la nueva función CAMBIAR, los anidados son más sencillos y más cortos. Es una función similar a la estructura Select Case que utilizamos en VBA. En este ejemplo evaluamos el largo de la celda B4, si éste es 1 (1 caracter) entonces concatenamos «L0000″&B4 y así sucesivamente.
=CAMBIAR(LARGO(B4);1;»L0000″&B4;2;»L000″&B4;3;»L00″&B4;4;»L0″&B4;5;»L»&B4;0;»»)
Muy útil esta función. Otra manera de resolver esto, aunque por supuesto no serviría como ejemplo didáctico de la función CAMBAR, sería: =»L» & DERECHA(«00000» & B4;5)
Muchas gracias David por el aporte 🙂
Muchas gracias por la aportación, muy interesante la función CAMBIAR «CASE» … además, por añadir algo, con otra función nueva (SI.CONJUNTO) podría ser:
=SI.CONJUNTO(LARGO(B4)=1;»L0000″&B4;LARGO(B4)=2;»L000″&B4;LARGO(B4)=3;»L00″&B4;LARGO(B4)=4;»L0″&B4;LARGO(B4)=5;»L»&B4;0;»»)
Un saludo!!!
Hola Cesar, gracias por el aporte.