Separar contenido de texto de una celda en dos.

Tengo una columna (A) donde cada celda contiene una serie de palabras de diferente longitud. Como máximo estas celdas tienen una longitud de 50 caracteres. Necesito separar el contenido de esta celda en dos celdas (de 25 caracteres de longitud) situadas en otra pestania, con la condición de que al truncar el contenido de la celda de origen, no se corte la palabra que queda entre la primera y segunda celda de destino.
Por ejemplo:
El coche es rojo y su propietario es Luis.
Celda 1: El coche es rojo y su (21 caract)
Celda 2: propietario es Luis. (20 caract)
¿Hay alguna macro que pueda utilizar?´

1 Respuesta

Respuesta
A ver si te sirve esto:
En A1 pon la frase que quieres cortar.
En b1 pon =largo(a1)
en c1 pon =IZQUIERDA(A1;25)
en d1 pon =DERECHA(A1;B1-25)
en e1 pon =ENCONTRAR(" ";D1)
en f1 pon =IZQUIERDA(A1;25+E1)
en g1 pon =DERECHA(A1;LARGO(A1)-LARGO(F1))
Ahora ya tienes la frase partida y ajusada a los espacios. Puedes arrastrar la fórmula y ocultar las columnas que no necesites, pero no te recomiendo crear una macro para esto.
La solución que propones sólo es válida cuando tengo más de 25 caracteres y en esos segundos 25 caracteres hay al menos un espacio. Sino me aparece la palabra VALOR#
Si sólo tengo una palabra la fórmula =ENCONTRAR(" ";D1) no es válida.
Saludos
Ok. Entiendo que se pueden dar varios supuestos:
1º Que la frase tenga menos de 25 caracteres. En tal caso, todo el contenido se queda en el primer campo. Puedes condicionar el primer texto así:
=si(b1<26;a1;IZQUIERDA(A1;25+E1))     Esto lo deberías poner en la celda F1
2º Que la frase tenga más de 25 caracteres pero después del 25 no tengas espacios. Si esto sucede, y tal y como te he puesto la fórmula, te pondrá todo el texto en la primera celda.
A ver si con esto lo solucionamos.
Buenas,
parece que funciona salvo un pequeño matiz. Si tengo dos palabras, es decir un sólo espacio en blanco, y este se encuentra dentro de los 25 primeros caracteres, la fórmula de la columna E me da ´#VALOR, ya que no encuentra ningún espacio dentro de los segundos 25 caracteres.
¿Se puede solucionar?
Muchas gracias y un saludo.
Vale. Cambia el contenido de la celda E1 por
=SI(ESERROR(ENCONTRAR(" ";D1))=VERDADERO;"";ENCONTRAR(" ";D1))
Sigue sin funcionar...
Creo que el problema está en que si la última palabra de la frase contiene el carácter número 25, no es capaz de asignarla al contenido de la segunda celda objetivo...
Gracias
El problema de hacer las cosas de cabeza es que muchas veces te pueden inducir a error y además, como no tengo datos con los que probar, muchas veces es difícil averiguar todos los escenarios posibles, pero creo que he dado con la respuesta.
Suponiendo que tu frase está en A1 pon lo siguiente:
En la celda B1:
=si(largo(a1)<26;a1;izquierda(a1;25+si(eserror(encontrar(" ";derecha(a1;largo(a1)-25)))=verdadero;largo(derecha(a1;largo(a1)-25));encontrar(" ";derecha(a1;largo(a1)-25)))))
En la celda C1:
=derecha(a1;largo(a1)-largo(si(largo(a1)<26;a1;izquierda(a1;25+si(eserror(encontrar(" ";derecha(a1;largo(a1)-25)))=verdadero;largo(derecha(a1;largo(a1)-25));encontrar(" ";derecha(a1;largo(a1)-25)))))))
Creo que así te funcionará.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas