병합된 행을 사용하여 열 데이터 재구성

병합된 행을 사용하여 열 데이터 재구성

나는 다음과 같은 데이터를 가지고 있습니다

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

여기에 이미지 설명을 입력하세요

각 환자의 행은 최대 10개입니다. 환자당 단일 행으로 병합하고 싶습니다.

예를 들어 위의 데이터는 다음과 같습니다.

patient-id  last name   first name  date of birth   value1  date of measurement1    value2  date of measurement2    value3  date of measurement3    value4  date of measurement4    value5  date of measurement5    value6  date of measurement6    value7  date of measurement7    value8  date of measurement8    value9  date of measurement9    value10 date of measurement10
A1          A           BC          1900-01-01      1       1900-01-03 0:00 2   1900-01-04 0:00 3   1900-01-03 0:00 2   1900-01-02 0:00 1   1900-01-05 0:00                                     
D5          D           EF          1900-01-02      4       1900-01-04 0:00 5   1900-01-03 0:00 4   1900-01-02 0:00                                                     
F2          G           HI          1900-01-03      6       1900-01-04 0:00 5   1900-01-01 0:00 6   1900-01-05 0:00                                                     

여기에 이미지 설명을 입력하세요

누군가 이 작업을 수행하는 방법을 알고 있습니까?

답변1

도우미 열과 피벗 테이블을 사용하여 수행할 수 있습니다.

  1. 도우미 열: 수식을 사용하여 표에 새 열을 추가합니다.
    =COUNTIF($A$1:A2,A2)
    이렇게 하면 환자 ID별로 각 측정 날짜에 숫자가 할당됩니다.

여기에 이미지 설명을 입력하세요

  1. 피벗 테이블:
    • 상수 열(한 번만 필요함)을 "행"으로 추가합니다.
    • 새로 생성된 열을 "열"로 추가
    • 복제할 열을 "값"으로 추가
    • 각각에 대해 "값 필드 요약 기준"이 "합계" 또는 "평균"으로 설정되어 있는지 확인하세요.
    • 날짜에 대한 올바른 숫자 형식 설정
    • 이는 숫자 정보만 포함된(= 텍스트 없음) 데이터에만 작동합니다.

여기에 이미지 설명을 입력하세요

답변2

피벗 테이블보다 덜 우아하고 약간 더 많은 작업이 필요한 대체 솔루션입니다.

현재 데이터가 라는 시트에 있다고 가정해 보겠습니다 Old.

  1. 에서 Old데이터가 환자 ID별로 정렬되어 있는지 확인하세요.
  2. Máté의 솔루션과 마찬가지로 수식을 사용하여 도우미 열을 추가합니다.=COUNTIF($A$1:A2;A2)

다음과 같은 것이 있어야 합니다.

여기에 이미지 설명을 입력하세요


  1. 새 시트 만들기(예 New: )
  2. A부터 D까지의 열을 from에서 Oldto로 복사합니다.New
  3. 에서 NewA~D 열을 선택하고데이터 > 중복 제거 > 확인
  4. 이제 환자별로 고유한 라인이 있어야 합니다(아래 녹색 영역 참조).

아래 스크린샷을 사용하여 시트의 나머지 부분을 만듭니다.

  1. 회색 영역은 동적 헤더입니다. 오른쪽에 9번 복사/붙여넣기 하면 1부터 10까지 자동으로 업데이트됩니다.
  2. 흰색 영역에는 2개의 공식이 있습니다. 하나는 "값"을 가져오는 수식이고 다른 하나는 "측정 날짜"를 가져오는 수식입니다. 오른쪽에 복사/붙여넣기할 수도 있으며 자동으로 업데이트됩니다.

여기에 이미지 설명을 입력하세요

다음은 다음과 같습니다 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)              

메모:이는 숫자 값에서만 작동합니다. 각 측정값과 환자마다 고유한 비숫자 값의 경우 유일한 해결책은 VBA 매크로라고 생각합니다.

관련 정보