Dividir dados de uma única célula em vários registros

2

Eu tenho uma tabela com um campo Invoice que contém valores e datas. Pode haver mais de uma fatura por registro. Nesse caso, as faturas são listadas separadas por quebras de linha dentro de uma única célula . Um exemplo é mostrado abaixo.

 PO #   PO Date   PO Amt        Invoice
  1     05/19/15   100        100 06/01/15
                              500 07/1/15
                              1000 08/1/15
  2     05/20/15   101        100 06/01/15
                              500 07/1/15
                              1000 08/1/15
  3     05/21/15   102        100 06/01/15
                              500 07/1/15
                              1000 08/1/15

Eu quero dividir esses registros com mais de uma fatura listada. Eu gostaria de criar novas linhas para cada fatura. As novas linhas devem ter os mesmos dados nos outros campos. Veja como os dados de amostra devem aparecer quando isso for feito:

PO #    PO Date   PO Amt     Invoice
1       05/19/15   100     100 06/01/15
1       05/19/15   100     500 07/1/15
1       05/19/15   100     1000 08/1/15
2       05/20/15   101     100 06/01/15
2       05/20/15   101     500 07/1/15
2       05/20/15   101     1000 08/1/15
3       05/21/15   102     100 06/01/15
3       05/21/15   102     500 07/1/15
3       05/21/15   102     1000 08/1/15

Fazer isso manualmente levaria uma eternidade. Como posso dividir esses registros dessa maneira no Excel?

    
por Phi Bach 05.11.2015 / 20:13

1 resposta

0

Eu ainda quero dar uma chance: D

  • em A:D são seus dados
  • eu suponho que E:Z está vazio

Começamos em:
agora em E2

=SUBSTITUTE(D2,"
",";")

(Alt + Enter para quebra de linha dentro da célula)
Agora nós puxamos para baixo até o final da mesa. Destaque coluna E
 - copiar
 - colar (somente valores)
 - em "Dados" -Tab use "Texto para Colunas" - > separado - >
  Desmarque todos, exceto ponto-e-vírgula - > terminar

nossa tabela agora deve ficar assim:
agora vem a parte divertida: fórmulas: D
Eu vou começar em M2 (ajuste se for necessário)

=IFERROR(INDEX($E$2:$I$999,(ROW()-MOD(ROW()-2,5)-2)/5+1,MOD(ROW()-2,5)+1),"")

e puxe-o conforme necessário ... nota: ajuste $E$2:$I$999 como você gosta ... mas não se esqueça do $
Agora para J2 :

=IFERROR(INDEX(A$2:A$999,(ROW()-MOD(ROW()-2,5)-2)/5+1),"") (note: NO $ in front of the A!)

arraste-o para L2 e depois para baixo para todas as 3 colunas

Agora vem a mágica: selecione a coluna M e clique em filtro - > desmarque 0 e empty

selecione toda a lista agora e copie-a - > cole-o em outra folha (valores apenas como na última vez)

Agora copie / cole os cabeçalhos e pronto:)

    
por 06.11.2015 / 05:56