Como transformar uma relação baseada em várias linhas em um layout baseado em uma coluna

2

Perdoe meu inglês. Eu estou procurando um método de transformação de dados para um conjunto de produtos. O conjunto de dados que tenho é um relacionamento em que os atributos são listados em linhas e quero que esses atributos sejam os títulos das colunas, fazendo referência aos valores e que correspondam a esses atributos e aos produtos aos quais estão associados. Meu melhor exemplo seria o seguinte (para um produto):

Devesertransformadoem:

Existemmilharesde"números de peça" individuais, então uma transposição simples não está cortando ...

    
por jolesexcel 10.03.2015 / 18:41

1 resposta

1

Isso é um pouco hacky, mas deve funcionar se minhas "suposições e interpretações" estiverem corretas.

Suposições & Interpretação

Suposição 1 : seus números de peça são todos exclusivos e seus Identificadores de atributos são exatamente os mesmos para os atributos que você deseja representar em cada coluna, em todas as partes.

Suposição 2 : os AttributeIdentifiers são únicos dentro de cada parte - ou seja, nunca haverá duas linhas com o mesmo AttributeIdentifier e o mesmo número de peça.

Suposição 3 : os dados originais têm cabeçalhos na linha 1 e os dados são preenchidos continuamente, começando na linha 2.

Suposição 4 : os dados originais são exibidos de forma similar às capturas de tela fornecidas. "Part Numbers" estão na coluna A e "AttributeIdentifiers" estão na coluna B, "Values" estão na coluna C e não há outros dados na planilha relevantes para este problema.

Interpretação: você deseja que os números de peça permaneçam na coluna A e todos os atributos dessa parte listados em uma linha em títulos de acordo com seu AttributeIdentifier.

Solução

  1. Crie uma nova planilha na mesma pasta de trabalho.
  2. Nomeie a primeira folha Old Data e a segunda folha New Report .
  3. Copie 'Old Data'!A:A para 'New Report'!A:A .
  4. Executar "Remover duplicados em 'New Report'!A:A .
  5. Copie 'Old Data'!B:B para 'New Report'!B:B .
  6. Execute "Remover duplicatas" em 'New Report'!B:B .
    • Certifique-se de que não expanda a seleção além desta coluna para esta operação.
  7. Exclua 'New Report'!B1 e mova as células restantes da coluna para cima.
  8. Selecione todas as células que possuem dados em 'New Report'!B:B . COPIE essas células e use "Colar especial" e "Transpor" para colá-las a partir de 'New Report'!C1 .
  9. Excluir 'New Report'!B:B . Certifique-se de que 'New Report'!C:C muda para ocupar o seu lugar.
  10. Adicione uma nova coluna à esquerda de 'Old Data'!A:A .
    • Observação: isso deslocará todas as colunas para a direita, para que "Número da peça" esteja na coluna B e assim por diante.
    • (Opcional) Defina 'Old Data'!A1 para UID .
  11. Defina 'Old Data'!A2 para =CONCATENATE(B2,C2) .
  12. Copie 'Old Data'!A2 para baixo da coluna inteira, até o final do conjunto de dados.
  13. Defina 'New Report'!B2 para: =IFERROR(VLOOKUP(CONCATENATE($A2,B$1),'Old Data'!$A:$D,4,FALSE),"") .
  14. Copie 'New Report'!B2 no restante da coluna até o final do conjunto de dados.
  15. Copie todas as células em 'New Report'!B:B , começando com 'New Report'!B2 e terminando na parte inferior do conjunto de dados, até as colunas restantes à direita.
  16. Selecione a folha 'New Report' inteira. Copie e cole no local "As Values", para bloquear os dados.
  17. (Opcional) Excluir 'Old Data'!A:A .

Explicação do passo 14

A fórmula, em resumo, pesquisa 'Old Data' para um valor apropriado para colocar na célula de acordo com o "Part Number" e "AttributeIdentifier" correspondentes. Se nenhum for encontrado, ele deixará a célula em branco.

Observação: eu não testei pessoalmente esta solução para o seu caso de uso. No entanto, estou familiarizado o suficiente com as etapas envolvidas para estar razoavelmente confiante de que deve funcionar para você com pouca necessidade de modificação. Por favor, deixe-me saber se você encontrar algum erro.

    
por 10.03.2015 / 20:36