엑셀 조건별 세로 데이터 가로 변환 공식 사용법 및 예제

엑셀에서 세로로 입력된 데이터에서 각 조건별 값을 가로방향으로 나열하는 공식의 사용법 및 동작원리를 살펴봅니다.

홈페이지 » 엑셀 조건별 세로 데이터를 가로로 변환 공식

작성자 :
오빠두엑셀
최종 수정일 : 2022. 06. 29. 01:30
URL 복사
메모 남기기 : (10)

엑셀 조건별 세로 데이터 가로 변환 공식

엑셀 조건별 세로 데이터 가로 변환 목차 바로가기
함수 공식
{ =IFERROR(INDEX($출력범위, MATCH(0, COUNTIF($참조셀:참조셀,$출력범위)+IF($참조범위<>INDIRECT("R"&ROW(참조셀)&"C"&COLUMN($참조셀),0), 1, 0), 0)), "") }
'본 공식은 배열수식이므로 365 이전버전 사용자는 Ctrl + Shift + Enter 로 입력합니다.
인수 설명
엑셀 조건별 세로 데이터 가로 변환 공식 설명
조건별 세로 데이터 가로 변환 공식에 사용된 인수
인수 설명
$출력범위 출력할 값이 입력된 세로 방향의 범위입니다. 절대참조로 입력합니다.
$참조범위 참조셀의 값을 참조할 범위입니다. 절대참조로 입력합니다.
$참조셀 참조셀입니다. 절대참조로 입력합니다.
참조셀 참조셀입니다. 상대참조로 입력합니다.

예제파일 다운로드

오빠두엑셀의 강의 예제파일은 여러분을 위해 자유롭게 제공하고 있습니다.

  • [엑셀공식] 엑셀 조건별 세로 데이터 가로 변환 공식
    예제파일

호환성
운영체제 호환성
Windows 버전 모든 엑셀 버전에서 사용 가능합니다.
Mac 버전 모든 엑셀 버전에서 사용 가능합니다.
사용된 기초 함수

엑셀 조건별 세로 데이터 가로 변환 공식 알아보기

공식 설명

이번 포스트의 공식을 사용하면 세로로 나열된 데이터에서 조건을 참고하여 각 조건을 만족하는 경우의 값을 가로방향으로 나열할 수 있습니다. 공식을 응용하면 여러 조건을 만족하는 경우에 값을 가로 방향으로도 나열할 수 있는데요. 두 조건을 병합한 별도의 열을 만든 뒤, 두 조건이 병합된 열과 조건을 참고하여 공식을 사용합니다.

본 공식은 VLOOKUP 여러개 값 불러오기 함수의 응용 버전입니다. 기존의 VLOOKUP 함수 공식은 고정된 셀을 참고하여 여러개 값을 불러오는 반면, 본 공식은 자동채우기가 되며 변하는 참조셀을 INDIRECT 함수로 참조하여 동적으로 여러개의 값을 반환합니다. VLOOKUP 여러개 값 불러오기 공식에 대한 자세한 설명은 아래 관련 포스트를 참고하세요.

공식의 동작원리
  1. 참조셀을 기준으로 공식을 한칸씩 오른쪽, 아래로 자동채우기 하면서, 이전에 출력된 값 중에 출력범위의 값이 존재하는 지 확인합니다. 출력범위의 값이 이미 존재할 경우 1을 반환합니다.
    =COUNTIF($참조셀:참조셀,$출력범위)
  2. 현재 참조하는 셀과 참조범위의 값이 같을 경우 0, 그렇지 않으면 1을 반환합니다.
    =IF($참조범위<>INDIRECT("R"&ROW(참조셀)&"C"&COLUMN($참조셀),0), 1, 0)
  3. [1]과 [2]의 계산결과를 더합니다. 참조셀의 조건과 같으면서 기존에 값이 없을 경우에만 계산결과로 0이 반환됩니다.
    =COUNTIF($참조셀:참조셀,$출력범위)+IF($참조범위<>INDIRECT("R"&ROW(참조셀)&"C"&COLUMN($참조셀),0), 1, 0)
  4. MATCH 함수로 범위에서 첫번째로 0이 존재하는 순번을 찾습니다. (첫번째 0의 순번 = 조건이 같으면서 기존 값이 없는 경우)
    =MATCH(0, COUNTIF($참조셀:참조셀,$출력범위)+IF($참조범위<>INDIRECT("R"&ROW(참조셀)&"C"&COLUMN($참조셀),0), 1, 0), 0)
  5. MATCH 함수로 구한 순번의 값을 출력범위에서 반환합니다.
    =INDEX($출력범위, MATCH(0, COUNTIF($참조셀:참조셀,$출력범위)+IF($참조범위<>INDIRECT("R"&ROW(참조셀)&"C"&COLUMN($참조셀),0), 1, 0), 0))
  6. 오류가 출력될 경우, IFERROR 함수를 사용하여 오류 대신 빈칸을 반환합니다.
    =IFERROR(INDEX($출력범위, MATCH(0, COUNTIF($참조셀:참조셀,$출력범위)+IF($참조범위<>INDIRECT("R"&ROW(참조셀)&"C"&COLUMN($참조셀),0), 1, 0), 0)), "")
4.8 5 투표
게시글평점
10 댓글
Inline Feedbacks
모든 댓글 보기
10
0
여러분의 생각을 댓글로 남겨주세요.x