En el artículo anterior usé el Relleno rápido para separar nombres y apellidos compuestos, puedes leerlo en este enlace:
Pero faltaba separar algunos tipos de nombres y apellidos que no estaban contemplados en dicho artículo, lo que se conseguirá con el archivo que adjunto más abajo, y se puede ver un anticipo en esta imagen animada:
Los nombres y apellidos compuestos, que no estaban contemplados en la versión anterior, contienen preposiciones, artículos y contracciones: De, de, de los, del, etc., como en estos 3 ejemplos:
Por lo que no hacia correctamente la separación con estos tipos de nombres compuestos.
3 trucos de Ismael Romero
En el blog ExcelForo de Ismael Romero, Microsoft MVP Excel, explica 3 trucos para separar un nombre compuesto o no, devolviéndolo como nombre y dos apellidos, mediante macros VBA, Power Query o solo con fórmulas recientes de Excel, que recomiendo leer encarecidamente:
- VBA: Descomponer Nombres y Apellidos compuestos
-
Power Query: Separar Nombres y Apellidos
-
Separar Nombres y Apellidos solo con fórmulas
Por suerte, existen una serie limitada de combinaciones de palabras que se emplean en los nombres y apellidos compuestos (ordenados en sentido ascendente): "de", "del", "el", "la", "las", "los", "san", "y". En estas combinaciones de palabras se basan las separaciones propuestas por Ismael Romero.
Vídeo de Sergio Alejandro Campos
En el blog EXCELeINFO de Sergio Alejandro Campos, Microsoft MVP Excel, se publicó este artículo:
En el que se puede descargar un archivo de ejemplo con los 3 trucos de Ismael Romero y se puede ver este vídeo explicándolos:
Análisis de los 3 trucos de Ismael Romero
Analizando los 3 trucos de Ismael Romero me planteé el reto de hacer lo mismo con la característica de Datos > Relleno rápido, sabiendo que iba a ser un reto difícil de resolver.
Uno de los trucos se resuelve con una función matricial definida por el usuario (UDF - User Defined Function) por lo que, para entender este truco, hay que ser un usuario de Excel experimentado con las macros VBA. Enlace aquí:
Otro truco se resuelve con Power Query, herramienta integrada en versiones recientes de Excel, por lo que, para entender este truco, hay que conocer Power Query, cosa que no está al alcance de todos los usuarios de Excel. Enlace aquí:
El tercer truco usa las funciones más recientes incluidas en las últimas versiones de Excel, como: la función web XMLFILTRO; UNIRCADENAS o las nuevas funciones LET y LAMBDA. Enlace aquí:
Ninguno de estos trucos son fáciles de comprender, ni siquiera para un usuario avanzado de Excel, y menos por un usuario que no conozca VBA, Power Query o las nuevas y más recientes funciones de Excel, que solamente están incluidas en las actualizaciones más recientes de las suscripciones de Excel para Microsoft 365. Por ejemplo, en mí suscripción aún no aparece la nueva función LAMBDA.
Nuevo truco para separar con Relleno rápido
Para el nuevo truco que separa nombres y apellidos compuestos uso el Relleno rápido, aunque me he encontrado con limitaciones para conseguirlo usando únicamente el Relleno rápido.
He probado a darle ejemplos a la Inteligencia Artificial del Relleno rápido de apellidos compuestos con la preposición "de", con artículos y contracciones, como este caso: María de Lourdes Espinoza de los Monteros, donde se incluyen: "de" y "de los", pero no he conseguido que el Relleno rápido separe correctamente esos tipos de nombres y apellidos compuestos.
Antes de atacar el problema he leído este artículo para saber:
Compruebo que es importante mantener las mayúsculas y minúsculas, por lo que tengo que usar funciones sensibles a mayúsculas y minúsculas y crear una tabla que las contenga, en un orden determinado para sustituir antes "de los" que "de", por ejemplo, como se comprende inmediatamente. O sea, el orden de la tabla de sustituciones es relevante.
En la hoja 'Sustituciones' he creado una tabla con las combinaciones siguientes de preposiciones, artículos y contracciones:
Explicación de las 5 columnas de la tabla:
A) Sustituciones: en esta columna se editan los textos a sustituir.
B) 1º Sustituir: se añade un espacio a la derecha e izquierda con la fórmula: =" "&A2&" "
C) 1º Por: se añade un espacio a la izquierda del valor de la columna D, con la fórmula: =" "&D2
D) 2º Sustituir: se quitan los espacios y se añaden guiones a derecha e izquierda con la fórmula: ="-"&SUSTITUIR(A2;" ";"")&"-"
E) 2º Por: se añade un espacio a la derecha con la fórmula: =A2&" "
¿Por qué hacen falta las 5 columnas? ¡Para que sean más simples las 44 sustituciones que hay que hacer!
¿Dónde se hace las 44 sustituciones? En la hoja 'Relleno rápido' ¡22 sustituciones en la columna C y otras 22 en la columna F!
Por ejemplo, en la celda C10 la mega-fórmula de la imagen transforma:
- María de Lourdes Espinoza de los Monteros en
- María -de-Lourdes Espinoza -delos-Monteros
donde " de los " se ha convertido en "-delos-" y " de " se ha convertido en "-de-", en ese orden, sin espacios en blanco y con guiones a derecha e izquierda.
Por ejemplo, en la celda F10 la mega-fórmula de la imagen transforma:
- María -de-Lourdes,Espinoza,-delos-Monteros en
- María de Lourdes,Espinoza,de los Monteros
donde "-de-" se ha convertido en "de " y "-delos-" se ha convertido en "de los ", sin guiones y con espacios. Aquí no importa el orden al estar separadas las abreviaturas por guiones.
Las fórmulas que realizan las sustituciones llaman a la función SUSTITUIR en bucle de 22 repeticiones, desde la fila 2 a la 23 de la hoja 'Sustituciones', siguiendo el orden de la tabla con las 22 sustituciones posibles, aunque siempre se puede editar la columna A e incluir más filas.
La primera sustitución en la columna C es:
SUSTITUIR(A2;Sustituciones!$B$2;Sustituciones!$C$2)
La primera sustitución en la columna F es:
SUSTITUIR(D2;Sustituciones!$D$2;Sustituciones!$E$2)
Ya se ha visto que las otras sustituciones se hacen con bucles anidados de 22 sustituciones en cada fórmula. A continuación explicaré para qué uso el Relleno rápido.
Cómo separar con Relleno rápido
El relleno rápido se debe hacer en 2 pasos:
- Para obtener en la columna D los nombres y apellidos separados por comas, partiendo de los nombres y apellidos separados por espacios de la columna C. Por ejemplo: Berenice Naranjo González se transforma en Berenice,Naranjo,González
- Para obtener en las columnas G (Nombre), H (Apellido1) e I (Apellido2) los nombres y apellidos separados, partiendo de los nombres y apellidos de la columna F. Por ejemplo: Berenice,Naranjo,González se transforma en 3 valores separados: Berenice Naranjo González
Para ejecutar los 2 pasos con el Relleno rápido ha sido necesario separar los pasos en 2 tablas separadas:
- TablaRellenoRápidoPaso1: en las columnas C:D
- TablaRellenoRápidoPaso2: en las columnas F:I
El motivo es que el Relleno rápido se hace desde la columna izquierda de esas tablas.
Para que el Relleno rápido sea capaz de rellenar automáticamente los valores de una columna, se deben escribir al menos un par de ejemplos con el resultado que se pretende obtener, y mantener la celda activa en la columna que se vaya a rellenar, presionando: Datos > Relleno rápido
Para el paso 1 han hecho falta escribir 3 ejemplos (en amarillo), con los que se consigue el Relleno rápido del resto de valores de la columna D:
Para el paso 2 sólo hace falta escribir un ejemplo (en amarillo) con lo que, ejecutando 3 veces el Relleno rápido, se consiguen el resto de valores de las columnas G, H e I:
He añadido una tabla más, para chequear el resultado de la separación de los nombres y apellidos, en las columnas K y L: TablaRellenoRápidoChequeo
En la columna K se concatenan los valores separados, con la fórmula: =G2&" "&H2&" "&I2
En la columna L se comprueba si los valores de las columnas A y K son iguales, con la fórmula: =IGUAL(A2;K2)
Se comprueba que todos los valores son iguales, pues su chequeo es VERDADERO, por lo que hemos conseguido separar todos los nombres y apellidos compuestos que se intentaban separar con los 3 trucos de Ismael Romero, como era el objetivo de este artículo.
Aunque no es del todo cierto que la separación con los 3 trucos anteriores sea correcta porque:
Con los trucos: Funciones LET y LAMBDA y VBA y Macros, se marca en naranja este error:
Con el truco: Lenguaje M con Power Query, se marca en naranja este error:
Cuando hay tres nombres en la parte del nombre, por ejemplo: Juan Carlos Evaristo, únicamente separa los dos primeros nombres: Juan Carlos, y pone incorrectamente como 1er Apellido el tercer nombre: Evaristo, y erróneamente como 2do Apellido: Peña, confundiendo los apellidos pues es: Gutierrez, que desaparece de los apellidos.
Con el 4º truco que he presentado en este artículo, gracias al Relleno rápido, la separación de nombres y apellidos es correcta para este caso:
Por lo que habría que depurar los otros 3 trucos de Ismael Romero para que contemplen ese caso, con hasta 3 nombres en un mismo nombre... El nombre de mi madre era Luisa Julia Joaquina, por lo que no es tan raro tener 3 nombres...
Descargar el 4º truco con Relleno rápido
El archivo con los 4 trucos se puede descargar desde cualquiera de estos enlaces:
- Microsoft OneDrive: Separar nombres y apellidos compuestos - ExcelForo - EXCELeINFO - PW3.xlsm
- Sites Google Drive: Separar nombres y apellidos compuestos - ExcelForo - EXCELeINFO - PW3.xlsm
Habilita la edición y las macros al abrir el archivo.
El archivo original con los 3 primeros trucos se puede descargar desde este artículo:
A este archivo es al que le he añadido el 4º truco con Relleno rápido, y lo comparto después de solicitar permiso al autor de los 3 primeros trucos, Ismael Romero, que me contestó muy amablemente lo siguiente:
Hola Pedro!
por supuesto que sí... muchas gracias por 'solicitarlo', a veces se echa de menos ;-)
Será interesante ver el comportamiento del relleno rápido con los casos de nombres 'más complejos'.
Espero esos artículos con interés!!
Un cordial saludo (y buen fin de semana)
Ismael
También solicité permiso al autor del vídeo que se ve al principio de este
artículo, Sergio Alejandro Campos, que contestó lo siguiente:
Hola Pedro, Adelante, solo haz referencia de dónde lo tomas, para beneficiarnos todos.
Descarga el 4º truco con Relleno rápido desde la nube
Si no quieres descargar el archivo anterior con los 4 trucos, puedes descargar únicamente el 4º truco, para separar nombres y apellidos compuestos con Relleno rápido, desde la nube de Microsoft:
En el último artículo de esta serie explico el 5º truco: Cómo separar nombres y apellidos compuestos únicamente con fórmulas y funciones corrientes, de las que sirven en cualquier versión de Excel. ¡Nada de usar las nuevas funciones LET y LAMBDA!
Enlaces a todos los artículos sobre el Relleno Rápido: