Reconstruir dados em colunas com linhas mescladas

1

Eu tenho os seguintes dados

patient-id  last name   first name  date of birth   value   date of measurement
A1          A           BC          1900-01-01      1       1900-01-03 0:00
A1          A           BC          1900-01-01      2       1900-01-04 0:00
A1          A           BC          1900-01-01      3       1900-01-03 0:00
A1          A           BC          1900-01-01      2       1900-01-02 0:00
A1          A           BC          1900-01-01      1       1900-01-05 0:00
D5          D           EF          1900-01-02      4       1900-01-04 0:00
D5          D           EF          1900-01-02      5       1900-01-03 0:00
D5          D           EF          1900-01-02      4       1900-01-02 0:00
F2          G           HI          1900-01-03      6       1900-01-04 0:00
F2          G           HI          1900-01-03      5       1900-01-01 0:00
F2          G           HI          1900-01-03      6       1900-01-05 0:00

Cadapacientetemummáximode10linhas.Queromesclaremumaúnicalinhaporpaciente.

Porexemplo,osdadosacimasetornam:

patient-idlastnamefirstnamedateofbirthvalue1dateofmeasurement1value2dateofmeasurement2value3dateofmeasurement3value4dateofmeasurement4value5dateofmeasurement5value6dateofmeasurement6value7dateofmeasurement7value8dateofmeasurement8value9dateofmeasurement9value10dateofmeasurement10A1ABC1900-01-0111900-01-030:0021900-01-040:0031900-01-030:0021900-01-020:0011900-01-050:00D5DEF1900-01-0241900-01-040:0051900-01-030:0041900-01-020:00F2GHI1900-01-0361900-01-040:0051900-01-010:0061900-01-050:00

Alguém sabe como fazer isso?

    
por user3330881 29.03.2018 / 10:05

2 respostas

2

Você pode fazer isso com uma coluna auxiliar e uma tabela dinâmica

  1. coluna auxiliar: adicione uma nova coluna à sua tabela com a fórmula:
    =COUNTIF($A$1:A2,A2)
    Isso atribuirá números para cada data de medição por ID de paciente

tabela dinâmica:

  • adicione colunas constantes (que você precisa apenas uma vez) como "linhas"
  • adicione a coluna recém-criada como "colunas"
  • adicione colunas para replicar como "valores"
  • certifique-se de que "resumir campo de valor por" esteja definido como "soma" ou "média" para cada um deles
  • defina o formato numérico correto para datas
  • isso funciona apenas para dados que contêm apenas informações numéricas (= sem texto)

    
por 29.03.2018 / 11:05
1

Uma solução alternativa, menos elegante que uma Tabela Dinâmica e exigindo um pouco mais de trabalho, talvez.

Vamos supor que seus dados atuais estejam em uma planilha chamada Old .

  1. Em Old , verifique se os dados estão classificados por ID do paciente
  2. Semelhantemente à solução da Máté, adicione uma coluna auxiliar com a fórmula =COUNTIF($A$1:A2;A2)

Você deve ter algo assim:

  1. Crieumanovaplanilha(porexemplo,New)
  2. CopieascolunasAparaDdeOldparaNew
  3. EmNew,selecioneascolunasAaD,cliqueemDados>Removerduplicados>Ok
  4. Agoravocêdeveterumalinhaexclusivaporpaciente(vejaaáreaverde,abaixo)

Useacapturadetelaabaixoparacriarorestantedaplanilha:

  1. Aáreacinzasãooscabeçalhosdinâmicos.Sevocêcopiá-los/colá-los9vezesàdireita,elesserãoatualizadosautomaticamentede1a10.
  2. Naáreabranca,existemduasfórmulas:umaparabuscaro"valor" e outra para buscar a "data da medição". Você também pode copiá-los / colá-los à direita e eles serão atualizados automaticamente.

Aqui estão os SUMIFS :

=SUMIFS(Old!$E:$E,Old!$G:$G,E$2,Old!$A:$A,$A4)              
=SUMIFS(Old!$F:$F,Old!$G:$G,F$2,Old!$A:$A,$A4)              

Observação: isso também funciona apenas com valores numéricos. Para valores não numéricos, exclusivos para cada medida e paciente, acredito que a única solução seria uma macro VBA.

    
por 29.03.2018 / 11:46