Manipular dados no Excel para ordenar resultados por uma determinada coluna

1

Eu quero tornar as informações em algumas colunas (mas não todas) exibidas em linhas, por favor, veja abaixo um exemplo.

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

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

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

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

É assim que eu quero que pareça:

Patient     Visit type      Date

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

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

Muito obrigado!

    
por Ricardo C.B. 28.02.2018 / 17:05

3 respostas

1

Com dados como:

EmH2digite:

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

ecopieparabaixo.NacélulaI2digite:

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

ecopieparabaixo.EmJ2,digite:

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

ecopieparabaixo:

NOTA:

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

    
por 28.02.2018 / 18:24
0

Não ficou claro se você deseja uma transformação contínua ou apenas transformar seus dados uma vez. Se você quiser transformar seus dados apenas uma vez, veja uma sugestão: Vamos imaginar os seus dados agora:

Comovocêtemnomáximo4visitasporpaciente,criemanualmenteaslinhasdoprimeiropaciente,assim:

Paraacolunadedata,apliqueoVLOOKUP,pesquisandoacolunadeacordocomotipodevisita:

Agoraconstruamanualmenteaslinhasparaosegundopaciente,masagoracomalgumasfórmulasvocêserácapazdeempurrarparabaixo:

Paraacolunadedata,bastapressionaroquevocêtemdopaciente1:

Agora,selecioneoblocotododopaciente2epressione:

Mesmoquandonãohádata,funcionará

Isso combina com você?

    
por 28.02.2018 / 18:17
0

Minha abordagem usa uma técnica Pesquisa bidirecional , assim como uma das respostas acima.

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

Aquiestãoasfórmulasparaobtero:

Listadepacientes:nacélulaA10,=INT((ROW(A1)-1)/5)+1

Listadetiposdevisita:nacélulaB10,="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, na medida do necessário.

Espero que isso ajude você.

    
por 02.03.2018 / 07:45