Manipule dados no Excel para ordenar os resultados por uma determinada coluna

Manipule dados no Excel para ordenar os resultados por uma determinada coluna

Quero fazer com que as informações de algumas colunas (mas não todas) sejam exibidas em linhas, veja abaixo um exemplo.

Isto é o que eu tenho (infelizmente isso não permite espaços extras então tudo fica desalinhado, por favor tente imaginar tudo alinhado):

Patient     Visit 1     Visit 2     Visit 3     Visit 4(…)

1           22Dec       12Jan       03Feb    
2           3Jan        03Feb       01Mar
3           10Dec       03Jan       23Jan   
(…)

(etc, longo banco de dados com centenas de pacientes)

É assim que eu quero que fique:

Patient     Visit type      Date

1           Visit 1         22Dec
1           Visit 2         12Jan    
1           Visit 3         03Feb   
2           Visit 1         23Jan   
2           Visit 2         (…)   
(…)

Não envolve nenhum cálculo, é apenas manipulação de dados, basicamente ordenando os atendimentos por paciente, mas não tenho certeza de nenhuma função que faça isso, tentei tabela dinâmica mas parece que não faz bem assim… Alguma sugestão? Se não houver fórmulas, botões, etc., talvez você possa sugerir uma macro?

Muito obrigado!

Responder1

Com dados como:

insira a descrição da imagem aqui

EmH2digitar:

=ROUNDUP(ROWS($1:1)/6,0)

e copie para baixo. Na célulaI2digitar:

=INDEX($B$1:$G$1,MOD(ROWS($1:1)-1,6)+1)

e copie para baixo. EmJ2digitar:

=INDEX($B$2:$G$10,ROUNDUP(ROWS($1:1)/6,0),MOD(ROWS($1:1)-1,5)+1)

e copie para baixo:

insira a descrição da imagem aqui

OBSERVAÇÃO:

O6nestas fórmulas corresponde ao número de visitas na tabela de origem. Ajuste para atender às suas necessidades.

Responder2

Não ficou claro se você deseja uma transformação contínua ou apenas transformar seus dados uma vez. Se você deseja transformar seus dados apenas uma vez, aqui vai uma sugestão: vamos imaginar que estes são seus dados agora:

insira a descrição da imagem aqui

Como você tem no máximo 4 atendimentos por paciente, construa manualmente as linhas do primeiro paciente, assim:

insira a descrição da imagem aqui

Para a coluna data, aplique o PROCV, pesquisando a coluna de acordo com o tipo de visita:

insira a descrição da imagem aqui

Agora construa manualmente as linhas para o segundo paciente, mas agora com algumas fórmulas você poderá empurrar para baixo:

insira a descrição da imagem aqui

Para a coluna de data, basta pressionar o que você recebeu do paciente 1:

insira a descrição da imagem aqui

Agora, selecione todos os blocos do paciente 2 e pressione para baixo:

insira a descrição da imagem aqui

Mesmo quando não há data, vai funcionar

insira a descrição da imagem aqui

Isso combina com você?

Responder3

Minha abordagem usa umPesquisa bidirecionaltécnica, assim como uma das respostas acima.

Veja as fotos abaixo, que mostram os dados da amostra na primeira tabela, depois a lista de pacientes, número da consulta e data, tudo na ordem desejada, na segunda tabela.

insira a descrição da imagem aqui

Aqui estão as fórmulas para obter:

Lista de pacientes:na célula A10,=INT((ROW(A1)-1)/5)+1

Lista de tipos de visita: na célula B10,="Visit"&INT(MOD(ROW(A1)-1,5))+1

Lista de datas na célula C10,=INDEX($B$2:$F$8,MATCH(A10,A$2:A$8,0),MATCH(B10,$B$1:$F$1,0))

Arraste todas as 3 fórmulas para baixo, tanto quanto necessário.

Espero que isso ajude você.

informação relacionada