¿Cómo pegar datos de Excel como texto de ancho fijo?

16

Si copio datos en Excel y los pego en un archivo de texto, obtengo pestañas entre las celdas. Eso no es bueno, quiero espacios, y quiero que las columnas estén alineadas. ¿Cómo puedo lograr esto sin mucho esfuerzo (obviamente no quiero comenzar a ejecutar expresiones regulares a mano, etc.)

Usar 'Guardar como' (como en esta pregunta ) no es una solución para mí, necesito copiar y pegar.

einpoklum
fuente
Tengo una posible solución que implicaría pegar de un libro de trabajo a otro libro de trabajo (luego del otro libro de trabajo a donde sea que esté
pegando
@Pynner: Bueno, encaja mejor que ninguna solución, así que sí, adelante.
einpoklum

Respuestas:

14

Ciertamente, esto no es fácil de explicar ... pero después de configurarlo, funcionará con un mínimo esfuerzo. Además, esta es una ligera variación de lo que @pnuts ha esbozado

Sugiero usar una hoja de cálculo de plantilla en la que pueda copiar y pegar. la plantilla que he creado tiene 3 pestañas que se ven de la siguiente manera.

pestañas

  • Data pestaña es donde se pegan los datos
  • Length va a hacer algunos cálculos para determinar la columna más larga
  • Space insert va a insertar el número apropiado de espacios (editar) que puede copiar desde aquí y obtener el resultado correcto

la pestaña de longitud se ve como

longitud

La fila 1 tiene caracteres máximos de la columna a continuación es y contiene la fórmula

=MAX(A2:A101)+1

+1 crea el delimitador.

La fila 2 a la n (que he extendido a 100 para este ejemplo) contiene una fórmula para evaluar la longitud de cada cadena

=LEN('Data tab'!A1)

la pestaña de inserción de espacio se ve como

inserto espacial

Cada celda contiene una celda para evaluar su longitud en comparación con el valor máximo (+ delimitador) e inserta un número apropiado de espacios.

='Data tab'!A1&REPT(" ",length!A$1-length!A2)

Tenga en cuenta el $ que bloquea la fila 1 si copia y pega la fórmula

(editar) puede copiar desde la pestaña de inserción de espacio.

bloc

Pynner
fuente
1
Ingeniosamente ideado!
einpoklum
Pero ... ¿por qué necesito la última hoja, de verdad? Puedo copiar y pegar desde la tercera hoja. Además, no quiero usar ninguna fórmula larga replicada para cada columna.
einpoklum
Muy bien ... no se requiere la última pestaña ... Supuse que las celdas insertarían caracteres adicionales. Actualizaré mi respuesta para solucionarlo
Pynner
Excelente respuesta, muchas gracias. Personalmente, algunas de mis columnas salían muy largas, así que agregué una página con "= IZQUIERDA ('inserción de espacio'! A1, $ K $ 2) e IF (Longitud! A2> $ K $ 2," ... | ", "|") "donde $ K $ 2 se establece en un valor apropiado (el máximo de la columna más importante). Esto funciona bien para descripciones, etc., paso siguiente: p
chrispepper1989
el siguiente paso sería la alineación adecuada de los números
vlad_tepesch
3

La solución más fácil sería concatenar sus datos numéricos en una cadena "comunicada" que se pegue correctamente en un archivo de texto. Cree la fórmula de Excel para una fila y luego cópiela para todas las filas de la hoja de trabajo, y luego copie la columna de fórmula y péguela en el archivo de texto. Por ejemplo,

Datos

Celda A1: 247

Celda B1: 19

Celda C1: 1437

Fórmula en la celda D1

= A1 & "," & B1 & "," & C1

Resultado pegable de texto

247,19,1437

Hay otro enfoque que no se basa en fórmulas.

  • Primero, asegúrese de que sus columnas de datos tengan el mismo ancho.
  • Luego inserte otra columna entre cada par de columnas de datos, cada una con un ancho de 2.
  • Ingrese una coma individual en cada una de las columnas insertadas, copiándola a lo largo de la longitud de los datos.
  • Finalmente, guarde la hoja de trabajo como un archivo de texto formateado (delimitado por espacios) (* .prn).

Una ventaja de esta alternativa es que conserva el formato de sus datos. Si desea formatear los datos con coma o simplemente mostrar un decimal, su formato se conservará en el archivo prn.

bagazo
fuente
1
Las nueces sugirieron que el mejoramiento es exactamente correcto. He actualizado mi respuesta con otra alternativa que usa Guardar como.
chuff
Entonces, como dije en la pregunta, guardar como no es una opción. ¿Funcionará la solución REPT con copiar y pegar? Además, todavía no acepto, ya que me gustaría algo menos engorroso.
einpoklum
0

Puede copiar sus datos en Word y luego usar Buscar y reemplazar (Ctrl + H) para reemplazar las pestañas con espacios.

  1. Abrir y pegar datos en Word
  2. Presione Ctrl+H
  3. Más >>
  4. Especial
  5. Espacio en blanco
  6. Pon un espacio en el reemplazo con:
  7. Reemplaza todo
Miguel
fuente
Eso no hará lo que pedí, lo siento, los anchos de las columnas serán diferentes.
einpoklum