9 formas de separar nombres y apellidos en Microsoft Excel
¿Necesitas separar nombres en Excel?
Los conjuntos de datos con nombres de personas suelen tener el nombre y el apellido en una celda, designados por un carácter de espacio.
Aunque esto no es necesariamente malo, puede ser más útil tener el nombre y el apellido en columnas diferentes. De esta manera, puede realizar más fácilmente análisis adicionales de sus datos, como ordenar y filtrar según el apellido.
¡Esta publicación le mostrará todas las formas de extraer el nombre y el apellido en diferentes celdas en Excel!
- Separe los nombres y apellidos con texto en columnas
- Separar nombres y apellidos con fórmula de texto
- Separe los nombres y apellidos con la función FILTERXML
- Separe los nombres y apellidos con la función TEXTSPLIT
- Separe los nombres y apellidos con Flash Fill
- Separar nombres y apellidos con Power Query
- Separe los nombres y apellidos con Power Pivot
- Separar nombres y apellidos con VBA
- Separe los nombres y apellidos con scripts de Office
Separe los nombres y apellidos con texto en columnas
Cuando necesite dividir el nombre y el apellido en sus datos de forma única, Text to Columns debe ser su método de acceso.
La función Texto a columnas le permitirá dividir los nombres en un nuevo rango o reemplazar los datos actuales. El que tu prefieras.
Esto es mejor para casos de uso único, ya que deberá realizar la división de texto a columna nuevamente en cualquier nombre nuevo agregado a la lista.
Aquí se explica cómo usar texto en columna para separar el nombre y el apellido.
- Seleccione el rango de nombres que desea dividir.
Solo puede ser un rango de una sola columna. Si intenta continuar con una selección de más de una columna, recibirá una advertencia emergente que le indicará que Microsoft Excel puede convertir solo una columna a la vez.
- Vaya a la pestaña Datos .
- Haga clic en el comando Texto a columna en la sección Herramientas de datos .
Esto abrirá el Asistente para convertir texto en columnas , que lo guiará a través de los pasos para dividir sus nombres.
- Seleccione la opción Delimitado para dividir sus nombres.
- Pulse el botón Siguiente .
- Anule la selección de la opción de pestaña predeterminada.
- Seleccione la opción Espacio .
- Haga clic en el botón Siguiente .
Cuando seleccione la opción Espacio, debería ver aparecer una línea negra que separa sus nombres en la sección Vista previa de datos del menú.
- Seleccione una celda para el Destino .
- Haga clic en el botón Finalizar .
El destino es la ubicación en su hoja donde Excel colocará el nombre y el apellido, por lo que deberá estar vacío. Seleccione una sola celda que será la celda superior izquierda del rango donde Excel colocará todos los nombres.
Excel le advertirá si intenta usar un destino donde ya hay datos y le preguntará si desea reemplazarlo.
Excel dividirá los nombres según el carácter de espacio que los separa y colocará los resultados en la ubicación deseada.
Separar nombres y apellidos con fórmula de texto
Otra forma de obtener el nombre y el apellido de su conjunto de nombres completos es usar una combinación de funciones de texto para analizar cada nombre.
Puede utilizar las funciones IZQUIERDA y DERECHA para obtener el número deseado de caracteres desde el principio o el final de cualquier valor de texto.
Puede usarlos en combinación con la función FIND para obtener la ubicación del carácter de espacio y la función LEN para obtener el número total de caracteres en el nombre.
Obtener el primer nombre
= LEFT ( B3, FIND ( " ", B3 ) - 1 )
La fórmula anterior extraerá el primer nombre del nombre completo en la celda B3 .
La función FIND encontrará el lugar del primer carácter de espacio. Cuando resta 1 de este resultado, obtendrá el lugar del último carácter del primer nombre.
La función IZQUIERDA luego usa este valor para devolver estos primeros caracteres del nombre.
Obtener el apellido
= RIGHT ( B3, LEN ( B3 ) - FIND ( " ", B3 ) )
La fórmula anterior obtendrá el apellido del nombre completo en la celda B3 .
La función LEN obtiene el recuento total de caracteres del nombre completo. La función FIND obtiene el lugar del carácter de espacio que separa el nombre y el apellido.
Cuando resta la longitud total del nombre por el lugar del carácter de espacio, obtiene el número de caracteres del apellido.
Esto luego se usa en la función DERECHA para extraer el apellido.
Separe los nombres y apellidos con la función FILTERXML
Una forma astuta de dividir el texto en función del carácter de espacio es utilizar la función FILTERXML .
Esto está destinado a permitirle extraer ciertas partes de los datos XML en función del nombre del nodo.
Pero puede usarlo para extraer los nombres creando primero datos XML a partir de su nombre.
= TRANSPOSE ( FILTERXML ( "ts" SUBSTITUTE ( B3," ","/ss")"/s/t","//s"))
La fórmula anterior dividirá el nombre completo en la celda B3 en nombre y apellido.
FirstName/ssLastName
La función SUSTITUIR se usa para reemplazar el espacio con algún texto como el de arriba.
tsFirstName/ssLastName/s/t
Luego se usa para concatenar texto al principio y al final de los nombres para que resulte algo como lo anterior.
Esta es ahora una estructura de datos XML y puede usar la función FILTERXML para extraer cada uno de los nombres.
= FILTERXML ( "tsFirstName/ssLastName/s/t","//s")
El //s
filtro anterior extraerá cada uno de los elementos encerrados en las etiquetas s, que ahora son el nombre y el apellido.
Esto da como resultado una columna de nombres y puede usar la función TRANSPONER para convertir esto en una fila de nombres.
Obtener solo el nombre
El uso anterior de la función FILTERXML dividirá cada nombre y dará como resultado una matriz de dos celdas.
Pero puede modificar un poco esta fórmula para obtener solo el primer nombre.
= FILTERXML ( "ts" SUBSTITUTE ( B3, " ", "/ss" ) "/s/t", "//s[1]" )
La versión anterior de la fórmula FILTERXML solo devolverá el primer nombre. El //s[1]
filtro devolverá solo el primer elemento de una etiqueta S.
Obtener solo el apellido
= FILTERXML ( "ts" SUBSTITUTE ( B3, " ", "/ss" ) "/s/t", "//s[2]" )
De manera similar, la fórmula anterior usa el filtro //s[2]
para devolver el segundo elemento en una etiqueta s, que es el apellido.
Separe los nombres y apellidos con la función TEXTSPLIT
Si tiene una versión más reciente de Excel, puede evitar las soluciones de fórmulas complejas porque hay una función dedicada para dividir texto.
Puede utilizar la función TEXTSPLIT para dividir un valor de texto en función de un carácter delimitador.
Esto significa que puede usar el carácter de espacio como delimitador para separar el nombre y el apellido,
= TEXTSPLIT ( B3, " " )
La fórmula anterior dividirá el nombre en la celda B3 según el carácter de espacio.
¡Es lo más simple que puedes conseguir!
Separe los nombres y apellidos con Flash Fill
Flash Fill es una forma práctica de transformar sus datos basándose en ejemplos.
Proporcione algunos ejemplos de los resultados que desea en la columna adyacente y Flash Fill determinará el patrón y completará el resto.
Esto puede separar fácilmente sus nombres cuando proporciona los resultados del ejemplo.
Puede consultar esta guía para completar Flash en Excel para obtener más detalles sobre esta versátil herramienta de datos.
Escriba algunos nombres solos en las celdas a la derecha del nombre completo correspondiente.
Esto debería activar Flash Fill y verá en gris claro los resultados sugeridos. Presione Enterpara aceptar estos resultados y colocarlos en las celdas.
Si Flash Fill no se activa automáticamente después de las primeras entradas, es posible que deba activarlo manualmente.
Seleccione la primera celda vacía debajo de sus nombres de ejemplo.
Luego vaya a la pestaña Datos y haga clic en el comando Flash Fill que se encuentra en la sección Herramientas de datos .
Consejo : también puede usar el método abreviado de teclado Ctrl+ Epara usar el relleno flash.
Ahora puedes repetir el proceso en la siguiente columna para obtener los apellidos.
Nota : solo tenga en cuenta que estos valores son estáticos y no se actualizarán si actualiza la columna de nombre completo. Deberá volver a ejecutar el comando Flash Fill para actualizarlos.
Separar nombres y apellidos con Power Query
Power Query es una herramienta increíble para transformar sus datos de casi cualquier forma imaginable.
¡Dividir sus nombres es una tarea simple para Power Query!
Power Query definitivamente será el camino a seguir con su tarea de obtener nombres y apellidos en celdas separadas si desea un proceso repetible para importar y transformar sus datos en Excel.
Antes de usar Power Query, deberá agregar los datos de su nombre a una tabla de Excel .
Ahora puede usar Power Query para dividir los nombres en su tabla.
- Vaya a la pestaña Datos .
- Haga clic en el comando Desde tabla/rango .
Esto abrirá el editor de Power Query.
- Haga clic derecho en el encabezado de la columna que contiene los nombres para dividir.
- Elija Dividir columna de las opciones.
- Elija la opción Por delimitador en el submenú.
Esto abrirá el menú Dividir columna por delimitador donde puede seleccionar en qué delimitador dividir los datos.
- Seleccione Espacio en el menú desplegable Seleccionar o introducir delimitador .
- Pulse el botón Aceptar .
Eso es todo. Todos los nombres están divididos y debería tener dos columnas nuevas con el nombre y el apellido.
Consejo : haga doble clic en los nuevos encabezados de columna para cambiarles el nombre.
Ahora podrá volver a cargar los datos transformados en Excel.
- Vaya a la pestaña Inicio .
- Haga clic en Cerrar y cargar .
Esto abrirá el menú Importar datos donde puede elegir dónde desea cargar los datos.
- Selecciona la opción Mesa .
- Seleccione una hoja de trabajo existente o una hoja de trabajo nueva para que se carguen los datos.
- Pulse el botón Aceptar .
Sus nombres separados luego se cargarán en la ubicación seleccionada.
Consejo : si edita, agrega o elimina nombres de la lista de origen, puede actualizar los nombres separados fácilmente para reflejar los cambios. Vaya a la pestaña Datos y haga clic en el comando Actualizar todo .
Separe los nombres y apellidos con Power Pivot
Si está analizando datos que incluyen un nombre completo, es posible que desee dividir los nombres mediante Power Pivot.
El modelo de datos de Power Pivot puede contener una gran cantidad de filas en la memoria, por lo que es perfecto para trabajar con cualquier conjunto de datos enorme.
Después de cargar su conjunto de datos en el modelo de datos, puede agregar más columnas con cálculos mediante el lenguaje de fórmulas DAX.
El lenguaje de fórmulas DAX tiene muchas funciones comunes con Excel y, en este caso, las funciones utilizadas serán exactamente las mismas que las funciones de texto vistas anteriormente.
Puede agregar sus datos al modelo de datos. Seleccione una celda dentro de la tabla que contenga sus nombres y vaya a la pestaña Power Pivot , luego haga clic en la opción Agregar al modelo de datos .
Esto abrirá el editor de Power Pivot con la tabla cargada en el modelo.
Podrá agregar nuevas columnas haciendo clic en el encabezado Agregar columna a la derecha de sus datos.
= LEFT ( Names[Full Name], FIND ( " ", Names[Full Name] ) - 1 )
La fórmula anterior obtendrá el primer nombre de toda la columna.
= RIGHT ( Names[Full Name], LEN ( Names[Full Name] ) - FIND ( " ", Names[Full Name] ) )
La fórmula anterior devolverá el apellido de toda la columna.
Ahora podrá usar estas columnas calculadas en una tabla dinámica. Vaya a la pestaña Inicio del complemento Power Pivot y haga clic en el comando Tabla dinámica y elija la opción Tabla dinámica del menú.
Estas nuevas columnas calculadas de nombre y apellido estarán disponibles como campos en el menú Campos de la tabla dinámica .
Separar nombres y apellidos con VBA
Tal vez necesite separar los nombres con frecuencia y desee una solución de un solo clic para esto.
VBA podría ser la mejor solución para usted.
Puede agregar una macro a su libro de trabajo que dividirá los nombres en columnas adyacentes.
Esto se puede ejecutar agregando la macro a la barra de herramientas de acceso rápido para que siempre esté disponible para usar con un solo clic.
Vaya a la pestaña Desarrollador y haga clic en el comando Visual Basic .
Puede consultar esta publicación para obtener detalles sobre cómo habilitar la pestaña Desarrollador en la cinta . Alternativamente, puede presionar Alt+ F11para abrir el editor visual básico sin la pestaña Desarrollador .
Esto abrirá el editor visual básico. Ahora puede crear un nuevo módulo en el editor para agregar su código.
Vaya al menú Insertar del editor visual basic y seleccione la opción Módulo .
Sub SplitNames()Dim rng As RangeDim arrNames() As StringDim colCount As IntegercolCount = Selection.Columns.CountIf colCount 1 Then MsgBox ("Select a single column!") EndEnd IfFor Each rng In Selection arrNames = Split(rng.Value, " ") rng.Offset(0, 1).Value = arrNames(0) rng.Offset(0, 2).Value = arrNames(1)Next rngEnd Sub
Agregue el código anterior a su módulo en el editor visual básico.
Este código primero verifica que solo haya seleccionado un rango con una sola columna. Si ha seleccionado varias columnas, le advertirá que seleccione una sola columna y luego detenga la ejecución.
Cuando se selecciona una sola columna, el código recorrerá el rango seleccionado y dividirá cada celda según el carácter de espacio.
La primera y la segunda parte de los nombres divididos se ingresan en las celdas directamente a la derecha de su selección original.
Después de seleccionar sus nombres y ejecutar el código, tendrá los nombres y apellidos divididos en Excel.
Separe los nombres y apellidos con scripts de Office
Si usa principalmente Excel en línea, necesitará usar Office Scripts para crear un código personalizado para separar sus nombres.
Se puede crear un script de Office similar.
Vaya a la pestaña Automatizar y haga clic en el comando Nuevo script para abrir el Editor de código para Office Scripts.
function main(workbook: ExcelScript.Workbook) { //getselected range let rng = workbook.getSelectedRange(); let rows = rng.getRowCount(); let cols = rng.getColumnCount(); //loop through selected cells for (let i = 0; i rows; i++) { for (let j = 0; j cols; j++) { //split name based on space let txtName = rng.getCell(i, j).getValue().toString(); let arrName = txtName.split(" "); //enter names in adjacent cells rng.getCell(i, j + 1).setValue(arrName[0]);
Deja una respuesta