Convertir texto en columnas

Convertir texto en columnas

Recibo un paquete de datos en forma de archivo .csv de nuestro administrador de base de datos. Importo estos datos a Excel para formatear y ordenar. Sin embargo, una columna contiene tres datos que quiero analizar y ordenar. Una sola celda en esta columna consta de un número de identificación de usuario y un nombre de usuario (por ejemplo: "83920 - johndavis"). Quiero poder ordenar esta columna según cada uno de estos términos. ¿Es esto posible usar macros en Excel o debería usar VBA? Si es así, ¿cómo sugiere abordar este problema?

Tengo experiencia en C y Python, por lo que, a pesar de tener un conocimiento limitado de VBA, tengo experiencia en informática.

Aquí hay información que recopilé mientras experimentaba con soluciones. Esta página fue mi punto de partida:https://www.cedarville.edu/insights/blog/excel-how-to-parse-data-split-column-into-multiple.aspx Sin embargo, cuando intenté utilizar este método, la división de columnas encontró errores y no se dividió correctamente (ver imágenes). Creo que esto se debe a que los datos de la columna son datos reales manipulados en VBA desde otra página de la hoja de Excel. ¿Cómo harías para resolver esa idiosincrasia?

Datos vistos desde la barra de funciones.

Página 1 del asistente de división de columnas

Página 2 del asistente de división de columnas

Página 3 del asistente de división de columnas

Salida incorrecta del asistente de división de columnas

Respuesta1

Es un CSV bastante extraño ya que contiene fórmulas de Excel. No se espera que un CSV contenga nada más que datos.

Actualmente la celda no solo tiene el valor de los datos B09 - Theater, sino que tiene la fórmula:

=IFERROR(@__xludf.DUMMYFUNCTION("""COMPUTED_VALUE"""), "B09 - Theater")

ElSI ERRORLa fórmula evalúa la función (ficticia) @__xludf.DUMMYFUNCTION("""COMPUTED_VALUE""")y si eso devuelve un error, escribe el valor B09 - Theater.

Si no necesita mantener esas fórmulas (no sé si tienen algún propósito) y solo necesita los datos, lo más fácil sería seleccionar todas las celdas ypegarlos en una hoja nueva comovalores.

Después de eso puedes usarla respuesta de iskyfire.

Respuesta2

Según mi comentario a tu publicación, puedes hacer esto en su lugar:

ingrese la descripción de la imagen aquí

También me gustaría señalar que su imagen que muestra una referencia a una función de VBA con el prefijo @__xludf.probablemente significa que la función no está disponible para el libro de trabajo actual. Puede estar en un módulo diferente en otro libro o en una biblioteca no disponible.

Independientemente, en casos simples con part1delimitadorparte 2, puedes usar las fórmulas anteriores.

En casos más complejos, puede seleccionar cualquier celda de sus datos y usar Datos>Obtener y transformar datos>De tabla/rango para iniciar un PowerQuery.

Dentro del Editor de Power Query, puede seleccionar la columna que desea dividir y usar Inicio> Transformar>Dividir columna>Por delimitador y configurarla así (por ejemplo):

ingrese la descripción de la imagen aquí

La salida se ve así: ingrese la descripción de la imagen aquí

Luego puede usar Inicio>Cerrar y cargar para cargar los resultados nuevamente en el libro de trabajo.

Respuesta3

Convertir texto en columnas

Si tiene una celda que contiene varios valores de datos, puede separarlos usando el Asistente para convertir texto en columnas integrado. Esto creará una tabla con 1 valor de datos por columna que le permitirá utilizar todos los filtros y métodos de clasificación disponibles con Excel.

Nota:Si tiene varios delimitadores únicos que separan cada valor de datos, por ejemplo, 83920/johndavis - new york citypuede usar buscar y reemplazar para cambiar todos los -caracteres /o viceversa. Debe tener el mismo delimitador que separe cada valor de datos o deberá ejecutar el asistente varias veces.

Verhttps://support.microsoft.com/en-us/office/split-text-into- Different-columns-with-the-convert-text-to-columns-wizard-30b14928-5550-41f5-97ca-7a3e9c363ed7para informacion adicional.

Eliminar funciones extrañas

Si los datos que tiene están encapsulados, puede usar Buscar y reemplazar con Match entire cell contentsmarcado y Look in: Formulasseleccionado.

Seleccione el rango, vaya a Buscar y reemplazar, realice sus entradas y Reemplace todo. Por ejemplo, =IFERROR(@__xludf.DUMMYFUNCTION("""COMPUTED_VALUE"""),"a una cadena vacía.

Luego puede ejecutarlo nuevamente para eliminar la parte final ")de una cadena vacía.

Asegúrese de haber realizado una copia de seguridad de la copia original de la hoja de trabajo antes de realizar operaciones de búsqueda y reemplazo a gran escala.

información relacionada