Dividir en columnas una columna

21/02/2008 - 17:20 por Tony | Informe spam
Hola de nuevo...

En una hoja de Excel tengo una columna que especifica el nombre y apellidos
de una persona... Lo que quiero hacer es dividir esta columna en otras dos,
de forma que en una columna tenga el nombre, en otra columna tenga el primer
apellido y en la tercera columna tenga el segundo apellido...

El nombre y apellidos están divididos por un espacio en blanco pero el
problema está en que hay apellidos compuestos por varios espacios (por
ejemplo: Eduardo Hernández de la Rosa)...

¿Cómo podría realizarlo con una macro?...

Gracias por anticipado...

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
22/02/2008 - 01:25 | Informe spam
hola, Tony !

... tengo una columna... nombre y apellidos de una persona.
... quiero... dividir esta columna en otras dos, de forma que
en una columna tenga el nombre en otra... el primer apellido y en la tercera... el segundo apellido...
El nombre y apellidos estan divididos por un espacio en blanco pero el problema esta en que
hay apellidos compuestos por varios espacios (por ejemplo: Eduardo Hernandez de la Rosa)...
Como podria realizarlo con una macro?...



1) que pasa si existen dos (o mas) nombres "de pila" ? (p.e. Carlos Eduardo, o Jose Carlos Eduardo, o ??????)

2) como dejarias los apellidos compuestos (uno en cada columna) de tu ejemplo en estas dos variantes ?
a) Hernandez de la Rosa
b) de la Rosa Hernandez

3) algun caso "especial" o algun detalle "en en tintero" ?

saludos,
hector.
Respuesta Responder a este mensaje
#2 Tony
23/02/2008 - 00:25 | Informe spam
Gracias Hector por tu respuesta... Te comento...

1) Si existen nombres compuestos deberían de ir en el campo nombre, pero no
me preocupa que fuesen en el apellido 1
2) De la misma forma en apellidos compuestos debería de coger el primer
apellido (hernandez) en la columna de apellido 1 y el resto (de la rosa) en
la columna del apellido 2
3) No se me ocurre ningún caso especial...

En definitiva me gustaría que sólo existiesen 3 columnas (nombre, apellido 1
y apellido 2) y que en cada una de las 3 recogiese al menos una palabra... Si
se pueden tratar los compuestos mejor, pero si no es posible me vale con que
vaya en la columna... Lo realmente importante es que no se generen más de 3
columnas...

Gracias por anticipado...

"Héctor Miguel" wrote:

hola, Tony !

> ... tengo una columna... nombre y apellidos de una persona.
> ... quiero... dividir esta columna en otras dos, de forma que
> en una columna tenga el nombre en otra... el primer apellido y en la tercera... el segundo apellido...
> El nombre y apellidos estan divididos por un espacio en blanco pero el problema esta en que
> hay apellidos compuestos por varios espacios (por ejemplo: Eduardo Hernandez de la Rosa)...
> Como podria realizarlo con una macro?...

1) que pasa si existen dos (o mas) nombres "de pila" ? (p.e. Carlos Eduardo, o Jose Carlos Eduardo, o ??????)

2) como dejarias los apellidos compuestos (uno en cada columna) de tu ejemplo en estas dos variantes ?
a) Hernandez de la Rosa
b) de la Rosa Hernandez

3) algun caso "especial" o algun detalle "en en tintero" ?

saludos,
hector.



Respuesta Responder a este mensaje
#3 Héctor Miguel
23/02/2008 - 01:57 | Informe spam
hola, Tony !

1) Si existen nombres compuestos deberian de ir en el campo nombre, pero no me preocupa que fuesen en el apellido 1
2) De la misma forma en apellidos compuestos deberà­a de coger el primer apellido (hernandez) en la columna de apellido 1
y el resto (de la rosa) en la columna del apellido 2
3) No se me ocurre ningun caso especial...
En definitiva me gustaria que solo existiesen 3 columnas (nombre, apellido 1 y apellido 2)
y que en cada una de las 3 recogiese al menos una palabra...
Si se pueden tratar los compuestos mejor, pero si no es posible me vale con que vaya en la columna...
Lo realmente importante es que no se generen mas de 3 columnas...



partiendo del supuesto que cada celda en la columna A (iniciando en la fila 2) contendra...
- al menos 3 palabras (de las cuales)
- la primera sera el nombre
- la ultima sera el apellido materno
- las que "sobren" (o sea las del medio) seran... el apellido paterno mas lo que se hubiera quedado...
- importante: tu te encargas de los apellidos compuestos (de la Cruz, del Toro, etc.) :D

- en la columna B obtendras el (o los) nombre(s)
- en la columna C obtendras el apellido paterno (la penultima palabra)
- en la columna D obtendras el apellido materno (la ultima palabra)

1) iniciamos obteniendo el primer nombre (la primera palabra)
[B2] =izquierda(a2,hallar(" ",a2)-1)

2) ahora obtenemos la ultima palabra...
[D2] =derecha(a2,largo(a2)-hallar("|",sustituir(a2," ","|",largo(a2)-largo(sustituir(a2," ","")))))

3) finalmente construimos la celda del medio...
[C2] =sustituir(extrae(a2,hallar(" ",a2)+1,50)," "&d2,"")

si el nombre fuera: Eduardo Hernandez de la Rosa, obtienes:
Eduardo | Hernandez | de la Rosa

si el nombre fuera: Eduardo de la Rosa Hernandez, obtienes:
Eduardo | de la Rosa | Hernandez

toma en cuenta que mi sistema usa como separador de argumentos a la coma ',' NO al punto y coma ';' :D
y toma nota de que si por casualidad existen separaciones de mas de un espacio entre cada palabra -?-
va a ser necesario sustituir toda referencia a la celda (en el ejemplo A2) por la funcion espacios...
de: -> a2
a: -> espacios(a2)

la otra alternativa sera desarrollar macros -?-

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ las consultas anteriores __
> ... tengo una columna... nombre y apellidos de una persona.
> ... quiero... dividir esta columna en otras dos, de forma que
> en una columna tenga el nombre en otra... el primer apellido y en la tercera... el segundo apellido...
> El nombre y apellidos estan divididos por un espacio en blanco pero el problema esta en que
> hay apellidos compuestos por varios espacios (por ejemplo: Eduardo Hernandez de la Rosa)...
> Como podria realizarlo con una macro?...

1) que pasa si existen dos (o mas) nombres "de pila" ? (p.e. Carlos Eduardo, o Jose Carlos Eduardo, o ??????)

2) como dejarias los apellidos compuestos (uno en cada columna) de tu ejemplo en estas dos variantes ?
a) Hernandez de la Rosa
b) de la Rosa Hernandez

3) algun caso "especial" o algun detalle "en en tintero" ?
Respuesta Responder a este mensaje
#4 Tony
23/02/2008 - 10:03 | Informe spam
Pues muchísimas gracias Hector lo probaré en cuanto pueda para decir qué tal
me ha ido...

La idea sí que es incorporar eso que me has puesto en una macro que hace más
operaciones, asi es que imagino que mientras grabe la macro tendré que
introducir las formulas que me has dicho, ¿no?

Gracias...

"Héctor Miguel" wrote:

hola, Tony !

> 1) Si existen nombres compuestos deberian de ir en el campo nombre, pero no me preocupa que fuesen en el apellido 1
> 2) De la misma forma en apellidos compuestos deberà­a de coger el primer apellido (hernandez) en la columna de apellido 1
> y el resto (de la rosa) en la columna del apellido 2
> 3) No se me ocurre ningun caso especial...
> En definitiva me gustaria que solo existiesen 3 columnas (nombre, apellido 1 y apellido 2)
> y que en cada una de las 3 recogiese al menos una palabra...
> Si se pueden tratar los compuestos mejor, pero si no es posible me vale con que vaya en la columna...
> Lo realmente importante es que no se generen mas de 3 columnas...

partiendo del supuesto que cada celda en la columna A (iniciando en la fila 2) contendra...
- al menos 3 palabras (de las cuales)
- la primera sera el nombre
- la ultima sera el apellido materno
- las que "sobren" (o sea las del medio) seran... el apellido paterno mas lo que se hubiera quedado...
- importante: tu te encargas de los apellidos compuestos (de la Cruz, del Toro, etc.) :D

- en la columna B obtendras el (o los) nombre(s)
- en la columna C obtendras el apellido paterno (la penultima palabra)
- en la columna D obtendras el apellido materno (la ultima palabra)

1) iniciamos obteniendo el primer nombre (la primera palabra)
[B2] =izquierda(a2,hallar(" ",a2)-1)

2) ahora obtenemos la ultima palabra...
[D2] =derecha(a2,largo(a2)-hallar("|",sustituir(a2," ","|",largo(a2)-largo(sustituir(a2," ","")))))

3) finalmente construimos la celda del medio...
[C2] =sustituir(extrae(a2,hallar(" ",a2)+1,50)," "&d2,"")

si el nombre fuera: Eduardo Hernandez de la Rosa, obtienes:
Eduardo | Hernandez | de la Rosa

si el nombre fuera: Eduardo de la Rosa Hernandez, obtienes:
Eduardo | de la Rosa | Hernandez

toma en cuenta que mi sistema usa como separador de argumentos a la coma ',' NO al punto y coma ';' :D
y toma nota de que si por casualidad existen separaciones de mas de un espacio entre cada palabra -?-
va a ser necesario sustituir toda referencia a la celda (en el ejemplo A2) por la funcion espacios...
de: -> a2
a: -> espacios(a2)

la otra alternativa sera desarrollar macros -?-

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ las consultas anteriores __
>> > ... tengo una columna... nombre y apellidos de una persona.
>> > ... quiero... dividir esta columna en otras dos, de forma que
>> > en una columna tenga el nombre en otra... el primer apellido y en la tercera... el segundo apellido...
>> > El nombre y apellidos estan divididos por un espacio en blanco pero el problema esta en que
>> > hay apellidos compuestos por varios espacios (por ejemplo: Eduardo Hernandez de la Rosa)...
>> > Como podria realizarlo con una macro?...
>>
>> 1) que pasa si existen dos (o mas) nombres "de pila" ? (p.e. Carlos Eduardo, o Jose Carlos Eduardo, o ??????)
>>
>> 2) como dejarias los apellidos compuestos (uno en cada columna) de tu ejemplo en estas dos variantes ?
>> a) Hernandez de la Rosa
>> b) de la Rosa Hernandez
>>
>> 3) algun caso "especial" o algun detalle "en en tintero" ?



Respuesta Responder a este mensaje
#5 Héctor Miguel
23/02/2008 - 20:44 | Informe spam
hola, Tony !

... lo probare en cuanto pueda para decir que tal me ha ido...
La idea si que es incorporar eso que me has puesto en una macro que hace mas operaciones
asi es que imagino que mientras grabe la macro tendre que introducir las formulas que me has dicho, no?



el asunto es que me gustaria saber como (te) funciona la propuesta con formulas
ya que desarrollar algun codigo (+/- "decente" o aceptable para ti) pudiera depender de lo que no te funcione en las formulas :D

saludos,
hector.

__ la consulta anterior __
1) Si existen nombres compuestos deberian de ir en el campo nombre, pero no me preocupa que fuesen en el apellido 1
2) De la misma forma en apellidos compuestos deberi­a de coger el primer apellido (hernandez) en la columna de apellido 1
y el resto (de la rosa) en la columna del apellido 2
3) No se me ocurre ningun caso especial...
En definitiva me gustaria que solo existiesen 3 columnas (nombre, apellido 1 y apellido 2)
y que en cada una de las 3 recogiese al menos una palabra...
Si se pueden tratar los compuestos mejor, pero si no es posible me vale con que vaya en la columna...
Lo realmente importante es que no se generen mas de 3 columnas...



partiendo del supuesto que cada celda en la columna A (iniciando en la fila 2) contendra...
- al menos 3 palabras (de las cuales)
- la primera sera el nombre
- la ultima sera el apellido materno
- las que "sobren" (o sea las del medio) seran... el apellido paterno mas lo que se hubiera quedado...
- importante: tu te encargas de los apellidos compuestos (de la Cruz, del Toro, etc.) :D

- en la columna B obtendras el (o los) nombre(s)
- en la columna C obtendras el apellido paterno (la penultima palabra)
- en la columna D obtendras el apellido materno (la ultima palabra)

1) iniciamos obteniendo el primer nombre (la primera palabra)
[B2] =izquierda(a2,hallar(" ",a2)-1)

2) ahora obtenemos la ultima palabra...
[D2] =derecha(a2,largo(a2)-hallar("|",sustituir(a2," ","|",largo(a2)-largo(sustituir(a2," ","")))))

3) finalmente construimos la celda del medio...
[C2] =sustituir(extrae(a2,hallar(" ",a2)+1,50)," "&d2,"")

si el nombre fuera: Eduardo Hernandez de la Rosa, obtienes:
Eduardo | Hernandez | de la Rosa

si el nombre fuera: Eduardo de la Rosa Hernandez, obtienes:
Eduardo | de la Rosa | Hernandez

toma en cuenta que mi sistema usa como separador de argumentos a la coma ',' NO al punto y coma ';' :D
y toma nota de que si por casualidad existen separaciones de mas de un espacio entre cada palabra -?-
va a ser necesario sustituir toda referencia a la celda (en el ejemplo A2) por la funcion espacios...
de: -> a2
a: -> espacios(a2)

la otra alternativa sera desarrollar macros -?-
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida