
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:
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:
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:
Como você tem no máximo 4 atendimentos por paciente, construa manualmente as linhas do primeiro paciente, assim:
Para a coluna data, aplique o PROCV, pesquisando a coluna de acordo com o tipo de visita:
Agora construa manualmente as linhas para o segundo paciente, mas agora com algumas fórmulas você poderá empurrar para baixo:
Para a coluna de data, basta pressionar o que você recebeu do paciente 1:
Agora, selecione todos os blocos do paciente 2 e pressione para baixo:
Mesmo quando não há data, vai funcionar
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.
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ê.