miércoles, 11 de noviembre de 2009

Funciones de texto

En un posteo anterior escribí acerca de la función de información =CELDA() y cómo se podía combinar con funciones de texto como =EXTRAER(), =IZQUIERDA() o =ENCONTRAR() para hacer fórmulas complejas pero muy útiles. En esta entrada escribo sobre estas funciones de texto y explico con un ejemplo más complicado.


Algunas de las funciones de texto que más se usan son:
  • IZQUIERDA (en inglés LEFT)
  • DERECHA (RIGHT)
  • EXTRAER (MID)
  • ENCONTRAR (FIND)
=IZQUIERDA(texto;n)
Extrae los primeros n caracteres de un texto. Por ejemplo, si en la celda B2 tenemos un código de producto que se compone del nombre del producto (primeros cinco caracteres) concatenado con un código númérico y sólo nos interesa el nombre sin el código numérico...

Celda B2 contiene: Desto33876
En la celda C2 escribimos =IZQUIERDA(B2;5)
El resultado en la celda C2 es: Desto

Lo mismo se puede hacer con la función =DERECHA(texto;n) que extrae el texto contando desde la derecha, es decir, los últimos n caracteres.

=EXTRAE(texto; posición inicial;n)
Más versatil es esta función, ya que permite especificar desde donde empezar a contar para extraer el texto. Si la posición inicial es 1, entonces es equivalente con IZQUIERDA.

=ENCONTRAR(texto buscado; dentro del texto; [posición inicial])
Busca una cadena de texto dentro de otra, partiendo desde una posición inicial en el texto en que se busca (puede ser omitida en cuyo caso se toma como el primer carácter) y entrega como resultado la posición en que se encuentra el texto buscado. ENCONTRAR distingue entre mayúsculas y minúsculas. Si no interesa la distinción entre mayúsculas y minúsculas es mejor usar la función alternativa HALLAR (en inglés SEARCH) que tiene la misma sintáxis.

Por ejemplo, =ENCONTRAR("d";"Neruda") da como resultado el número 5 que es la posición de la letra "d" dentro de la cadena de texto "Neruda". Lo mismo se puede hacer con texto contenido en celdas de una planilla.

En un posteo anterior escribí acerca de las funciones de información y las mezclé con funciones de texto. Aquí explico la más compleja de las fórmulas usadas en ese posteo:

=EXTRAE(IZQUIERDA(CELDA("filename";$A$1); ENCONTRAR("]"; CELDA("filename"; $A$1))- 1); ENCONTRAR("[";CELDA("filename"; $A$1))+1; 255)

Esta fórmula resulta en el nombre de la planilla a partir de la función =CELDA("filename") que informa sobre la ruta completa de una hoja. Por ejemplo, si la ruta es "C:\Mis documentos\[ejemplo.xls]Hoja1", queremos que nos entregue "ejemplo.xls" (sin las comillas).

Como Excel encierra entre paréntesis cuadrados el nombre de una planilla, el truco es extraer la cadena de texto que está entre estos paréntesis.

En esta fórmula la función =EXTRAE() se compone de tres partes:

1) La cadena de texto de la cual se va a extraer una parte, en este caso la fórmula:

IZQUIERDA(CELDA("filename";$A$1); ENCONTRAR("]"; CELDA("filename"; $A$1))- 1)

que entrega como resultado del ejemplo:

C:\Mis documentos\[ejemplo.xls

y es la parte izquierda de la ruta del archivo hasta la posición en que encuentra el paréntesis cuadrado derecho menos uno (ya que no queremos que aparezca el paréntesis cuadrado derecho).

2) La segunda parte,

ENCONTRAR("[";CELDA("filename"; $A$1))+1

busca la posición en que se encuentra el paréntesis cuadrado izquierdo y le agrega uno, ya que no queremos que apareza el paréntesis. En este caso es el número 20.

3) La tercera parte es el número 255 que simplemente indica cuantos caracteres considerar en la función principal EXTRAE. Se usan 255 ya que es el máximo que puede tener el nombre de un archivo. Si el nombre tiene menos caracteres, considera el número real y no 255.

Finalmente todo se junta en la función EXTRAE

=EXTRAE("C:\Mis documentos\[ejemplo.xls";20;255)

Resultado: ejemplo.xls

No hay comentarios:

Publicar un comentario