Como colar dados do Excel como texto de largura fixa?

16

Se eu copiar dados no Excel e colá-los em um arquivo de texto, obtenho guias entre células. Isso não é bom, quero espaços - e quero que as colunas sejam alinhadas. Como conseguir isso sem muito esforço (obviamente, não quero começar a executar regexps manualmente, etc.)

Usar 'Salvar como' (como nesta pergunta ) não é uma solução para mim, preciso copiar e colar.

einpoklum
fonte
. Eu tenho uma possível solução que envolveria colar a partir de um livro para outro livro (depois do outro pasta de trabalho para onde quer que esteja colar isso se encaixa com o seu fluxo de trabalho?
Pynner
@ Synner: Bem, ele se encaixa melhor do que nenhuma solução, então sim, vá em frente.
Einpoklum

Respostas:

14

Certamente isso não é simples de explicar ... mas, após a instalação, ele funcionará com o mínimo de esforço. Também esta é uma pequena variação do que o @pnuts descreveu

Sugiro o uso de uma planilha de modelo na qual você pode copiar e colar. o modelo que eu criei tem 3 guias com a seguinte aparência.

separadores

  • Data guia é onde os dados são colados
  • Length vai fazer algumas contas para determinar a coluna mais longa
  • Space insert vai inserir o número apropriado de espaços (editar) que você pode copiar daqui e obter o resultado correto

a guia comprimento parece

comprimento

A linha 1 possui no máximo caracteres da coluna abaixo é e contém a fórmula

=MAX(A2:A101)+1

+1 cria o delimitador.

A linha 2 até n (que eu estendi para 100 neste exemplo) contém uma fórmula para avaliar o comprimento de cada sequência

=LEN('Data tab'!A1)

a guia de inserção de espaço se parece

inserção de espaço

Cada célula contém uma célula para avaliar o próprio comprimento em comparação com o valor máximo (delimitador +) e inserir um número apropriado de espaços.

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

Observe o $ que bloqueia a linha 1 se você copiar e colar a fórmula

(editar) você pode copiar da guia de inserção de espaço.

bloco de anotações

Pynner
fonte
1
Engenhosamente inventado!
Einpoklum
Mas ... por que eu preciso da última folha, realmente? Eu posso copiar e colar da terceira folha. Além disso, não quero usar nenhuma fórmula longa replicada para cada coluna.
Einpoklum
Muito bem .. última guia não é necessária ... eu tinha assumido que as células iria inserir caracteres adicionais. Vou atualizar a minha resposta para corrigi-lo
Pynner
Excelente resposta, muito obrigado. Pessoalmente, algumas das minhas colunas saíram por muito tempo, então adicionei uma página com "= ESQUERDA ('inserção de espaço'! A1, $ K $ 2) e IF (Comprimento! A2> $ K $ 2," ... | ", "|") "onde $ K $ 2 é definido com um valor apropriado (o máximo da coluna mais importante). Isso funciona bem para descrições etc, ao lado de embrulho passo: p
chrispepper1989
próximo passo seria o correcto posicionamento do numericals
vlad_tepesch
3

A solução mais fácil seria concatenar seus dados numéricos em uma sequência "confirmada" que cole corretamente em um arquivo de texto. Crie a fórmula do Excel para uma linha e copie-a para todas as linhas da planilha, copie a coluna da fórmula e cole-a no arquivo de texto. Por exemplo,

Dados

Célula A1: 247

Célula B1: 19

Célula C1: 1437

Fórmula na célula D1

= A1 e "," e B1 e "," e C1

Resultado passável de texto

247,19,1437

outra abordagem que não depende de fórmulas.

  • Primeiro, verifique se as colunas de dados têm a mesma largura.
  • Em seguida, insira outra coluna entre cada par de colunas de dados, cada uma com uma largura de 2.
  • Digite uma única vírgula em cada uma das colunas inseridas, copiando-a pelo comprimento dos dados.
  • Por fim, salve a planilha como um arquivo de texto formatado (delimitado por espaço) (* .prn).

Um benefício dessa alternativa é que ela preserva a formatação dos seus dados. Se você deseja formatar os dados por vírgula ou apenas mostrar uma casa decimal, sua formatação será preservada no arquivo prn.

chuff
fonte
1
porcas sugeridas melhorias são exatamente corretas. Atualizei minha resposta com outra alternativa que usa Salvar como.
chuff
Então, como eu disse na pergunta, salvar como não é uma opção. A solução REPT funcionará com cópia-colagem? Além disso, ainda não estou aceitando, pois gostaria de algo menos complicado.
Einpoklum
0

Você pode copiar seus dados no Word e usar Localizar e substituir (Ctrl + H) para substituir as guias por espaços.

  1. Abrir e colar dados no Word
  2. Pressione Ctrl+H
  3. Mais >>
  4. Especial
  5. Espaço em branco
  6. Coloque um espaço na substituição por:
  7. Substitua tudo
Michael
fonte
Isso não fará o que pedi, desculpe - as larguras das colunas serão diferentes.
Einpoklum 15/04