Dividir una columna única usando el primer espacio como delimitador para obtener PrimerNombre y Apellidos por separado.
Split a single full-name column using the first space as a delimiter to create separate FirstName and LastName fields.
Este ejercicio es solo para aprendizaje y pruebas. No ejecutes scripts contra datos reales, ambientes de producción, carpetas compartidas, sistemas críticos o repositorios empresariales sin autorización, respaldos, pruebas previas, permisos mínimos, control de cambios y cumplimiento de los protocolos de ciberseguridad de tu organización.
This exercise is for learning and testing only. Do not run scripts against real data, production environments, shared folders, critical systems, or enterprise repositories without authorization, backups, prior testing, least-privilege permissions, change control, and compliance with your organization's cybersecurity protocols.
Transformar una columna de nombre completo en columnas más útiles para reportes, cargas a sistemas, validaciones, búsquedas, correspondencia y segmentación.
Transform a full-name column into fields that are more useful for reporting, system imports, validation, search, correspondence, and segmentation.
| EmployeeID | NombreCompleto |
|---|---|
| 1001 | Juan Carballo |
| 1002 | Maria Gonzalez |
| 1003 | Pedro Martinez |
| 1004 | Ana Ruiz Lopez |
| 1005 | Carlos |
$datos | Select-Object *,
@{Name="PrimerNombre"; Expression={$_.NombreCompleto.Split(' ', 2)[0]}},
@{Name="Apellidos"; Expression={$_.NombreCompleto.Split(' ', 2)[1]}}
| EmployeeID | NombreCompleto | PrimerNombre | Apellidos |
|---|---|---|---|
| 1001 | Juan Carballo | Juan | Carballo |
| 1002 | Maria Gonzalez | Maria | Gonzalez |
| 1003 | Pedro Martinez | Pedro | Martinez |
| 1004 | Ana Ruiz Lopez | Ana | Ruiz Lopez |
| 1005 | Carlos | Carlos |
# ==========================================================
# PowerShell Advanced Topic 13
# Split Full Name Into Separate Columns
# ==========================================================
$inputFile = "C:\Data\Employees.csv"
$outputFile = "C:\Data\Employees_Name_Split.csv"
$datos = Import-Csv $inputFile
$resultado = $datos | Select-Object *,
@{
Name = "PrimerNombre"
Expression = {
if ($_.NombreCompleto -match "\s") {
$_.NombreCompleto.Split(' ', 2)[0]
}
else {
$_.NombreCompleto
}
}
},
@{
Name = "Apellidos"
Expression = {
if ($_.NombreCompleto -match "\s") {
$_.NombreCompleto.Split(' ', 2)[1]
}
else {
""
}
}
}
$resultado | Export-Csv $outputFile -NoTypeInformation -Encoding UTF8
Write-Host "Process completed."
Write-Host "Output file: $outputFile"
Este caso parece simple, pero es fundamental en procesos de limpieza de datos. Separar correctamente nombres permite mejorar reportes, integraciones, comunicaciones y procesos downstream.
This case looks simple, but it is fundamental in data-cleaning workflows. Properly splitting names improves reporting, integrations, communications, and downstream processes.