Resolveré en esta ocasión, empleando diferentes funciones básicas, una duda de una lectora:
Es importante plantear correctamente el ejercicio, ya que necesitaremos ir empleando distintas funciones sencillas para llegar finalmente al resultado buscado.
Usaremos las funciones
=ENCONTRAR(texto buscado; en el texto; [comenzando en la posición])
También emplearemos para resolver esta cuestión planteada la función ESERROR(valor), ya vista; y las funciones DERECHA(texto; caracteres), IZQUIERDA(texto; caracteres) y LARGO(texto).
Todas estas funciones que emplearemos están categorizadas dentro de Excel como funciones de texto.
Para nuestro ejemplo partimos del siguiente listado de códigos:
el resultado buscado consiste en cambiar la segunda parte del código por la que aparece en la columna B.
El trabajo a realizar es algo largo, pero sin duda muy sencillo, ya que sólo vamos a emplear funciones de texto. Por razones didácticas lo explicaré paso a paso en columnas auxiliares, aunque todas ellas se podrían resumir en una única fórmula.
Adjunto fichero para su mejor análisis.
...Tengo una serie de datos que debo completar de la siguiente manera DatoS /RESULTADO BUSCADO 300T-1 /T0001 300T-1A /T0001A 300T-33 /T0033 300T-33A/T0033A 300T33 /T0033 34T33 /T0033, Basica la data puede contener guion o no, y puede contener letras al final que deben ser mantenidas,lo que debo garantiza es que el numero de caracteres numericos despues de la primera letra debe ser 4 ,por lo que debo completar con en el caso que lo necesite.... |
Usaremos las funciones
=ENCONTRAR(texto buscado; en el texto; [comenzando en la posición])
- Texto_buscado: es el texto que queremos encontrar.
- en el texto: es el texto que a su vez contiene el texto que deseamos encontrar.
- comenazando en la posición: especifica el carácter a partir del cual comenzará la búsqueda, es decir, el primer carácter del argumento 'en el texto' será el carácter número 1; si lo omitimos se supone que es 1.
También emplearemos para resolver esta cuestión planteada la función ESERROR(valor), ya vista; y las funciones DERECHA(texto; caracteres), IZQUIERDA(texto; caracteres) y LARGO(texto).
Todas estas funciones que emplearemos están categorizadas dentro de Excel como funciones de texto.
Para nuestro ejemplo partimos del siguiente listado de códigos:
el resultado buscado consiste en cambiar la segunda parte del código por la que aparece en la columna B.
El trabajo a realizar es algo largo, pero sin duda muy sencillo, ya que sólo vamos a emplear funciones de texto. Por razones didácticas lo explicaré paso a paso en columnas auxiliares, aunque todas ellas se podrían resumir en una única fórmula.
- Nuestro primer paso es localizar la letra 'T' dentro de cada código. Esto lo haremos con la función ENCONTRAR:
=ENCONTRAR("T";código)
- Un segundo paso será determinar qué códigos tienen un guión '-' entre sus caracteres. Anidando la función ENCONTRAR en una función ESERROR obtendremos:
=ESERROR(ENCONTRAR("-";código))
- Ya podemos visualizar cómo sería la segunda parte de los códigos extraidos sin guiones ni la letra 'T'. Ejecutamos una funcion SI condicional en base a la prueba lógica 'tiene guión el código':
=SI(D2;DERECHA(A2;LARGO(A2)-C2);DERECHA(A2;LARGO(A2)-C2-1))
es decir, si el código contiene un guión entonces extrae por la derecha del 'Código' el número de caracteres hasta la 'T', determinado por LARGO(código)-C2. - La siguiente etapa sirve para descubrir cuales valores de los obtenidos en el paso anterior acaban en texto. Esta operación es muy fácil, ya que si multiplicamos por uno aquellos valores obtendremos un error para todos los que tengan texto:
=E2*1
Si lo convertimos en VERDADERO o FALSO anidándolo en una función ESERROR:
=ESERROR(F2)
podremos emplearlo posteriormente como prueba lógica de una función SI condicional. - Ya llegamos al final, no desespereis. Nos queda convertir los códigos obtenidos al formato definido en el planteamiento, es decir, que el número de caracteres numéricos después de la primera letra debe ser cuatro.
Para esto determinamos cuál es el número de caracteres del código obtenido anteriormente, es decir, del número que tenemos en cada código después de la 'T'. Aplicamos la siguiente función:
=SI(G2;LARGO(E2)-1;LARGO(E2))
donde al preguntar si la segunda parte del código tiene texto, nos quedaremos con una longitud de éste u otra.
Con este valor podemos visualizar ya el valor numérico a tratar, ya que en función de los dígitos que tengamos deberemos incrementarlo con ceros hasta alcanzar ese formato con cuatro dígitos. - Llegamos al final. Recopilamos todos esos cálculos intermedios. De la etapa anterior mediante un SI convierto el valor en uno de cuatro dígitos más el caracter tipo texto.
=SI(H2=1;"000"&E2;SI(H2=2;"00"&E2;SI(H2=3;"0"&E2;SI(H2=4;E2;"error"))))
si el número de caracteres numéricos es 1, añadiremos tres ceros hasta completar los cuatro dígitos, si tiene dos dígitos ñadiremos dos ceros para en total lograr ese formato buscado, etcétera.
Adjunto fichero para su mejor análisis.
encontrar.xlsx |
Hosted by eSnips |
Gracias, Excel foro. EXCELente tu solucion
ResponderEliminarPara los parametros que te di, esta excelente sin embargo, no fui explicita,
la letra puede ser cualquier letra del abecederia y puede ser hasta 4:
ejemplo
20T-29 / T0029
33AXH-300/ AXH0300
250MBXH-300A/ MBXH0300A
56LFV1 / LFV0001
disculpa, que no fui tan explicita, porque para tu solucion la formula busca una caracter especifico en ese caso "T",
pero existe alguna manera de que me busque el ultimo caracter tipo "alpha" no numerico desde la derecha antes de antes del guion en el caso que exista
Hola,
ResponderEliminarqueda subido una solución
http://excelforo.blogspot.com/2010/01/funcion-estexto-y-esnumero-en-excel.html
Un saludo
NO ENTENDI, ME LO PUEDEN PONER DE OTRA FORMA
ResponderEliminarHola...
ResponderEliminar¿que es exactamente lo que no entendiste???
Si fueras más explicito intentaría ayudarte...
Un saludo
hola buenos dias buscando una solucion a mi problema encontre esta pagina tngo un problema debo de encontrar el nombre de una ciudad con la funcion,encontrar y la funcion largo a partir de los datos de una persona le he hecho de muchas maneras y no me sale si me ayudas quedo agradecida, envio los datos y la funcion que estoy tratando de hacer =EXTRAE(A3;ENCONTRAR("/";A3;ENCONTRAR("/";A3;ENCONTRAR("/";A3;1)+1)+1)+1;ENCONTRAR("/";A3;ENCONTRAR("/";ENCONTRAR("/";A3;1)+1)+1)-ENCONTRAR("/";A3;1)-LARGO(A3;ENCONTRAR("/";A3;1)+)+1)+1)+1) y los datos de las personas son asi como estos.ADRIANALORENA / ADRIS556@HOTMAIL.COM / ADRIANA LORENA / ORTIZ ARBOLEDA / BOGOTA.
ResponderEliminarHola,
ResponderEliminaryo probaría primero aplicando la herramienta Texto en columnas
http://excelforo.blogspot.com/2010/02/texto-en-columnas.html
y luego sobre la celda donde se encuentra finalmente la ciudad aplicar la función ENCONTRAR pero centrándome en algo más concreto.
Si tienes dudas, envíame un correo a
excelforo@gmail.com
Slds
a la función TEXTO necesito darle un largo determinado y que complete con espacios los lugares no usados, ¿saben como hacer?
ResponderEliminarLa función TEXTO(valor; formato) convierte un valor numérico en texto; óptima cuando queremos dar formato a un número y combinarlo con texto.
ResponderEliminarNo entiendo a qué te refieres con darle un largo determinado a la función TEXTO...
¿Puedes ser más específico???
Ya lo solucioné, agregando espacios a la selda.
ResponderEliminarGracias!!